about summary refs log tree commit diff
path: root/src/libcore/sys.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcore/sys.rs')
-rw-r--r--src/libcore/sys.rs47
1 files changed, 27 insertions, 20 deletions
diff --git a/src/libcore/sys.rs b/src/libcore/sys.rs
index bbcbd73aabd..d4db61f4519 100644
--- a/src/libcore/sys.rs
+++ b/src/libcore/sys.rs
@@ -156,6 +156,13 @@ pub pure fn begin_unwind_(msg: *c_char, file: *c_char, line: size_t) -> ! {
     }
 }
 
+pub pure fn fail_assert(msg: &str, file: &str, line: uint) -> ! {
+    unsafe {
+        let (msg, file) = (msg.to_owned(), file.to_owned());
+        begin_unwind(~"assertion failed: " + msg, file, line)
+    }
+}
+
 #[cfg(test)]
 pub mod tests {
     use cast;
@@ -163,10 +170,10 @@ pub mod tests {
 
     #[test]
     pub fn size_of_basic() {
-        assert size_of::<u8>() == 1u;
-        assert size_of::<u16>() == 2u;
-        assert size_of::<u32>() == 4u;
-        assert size_of::<u64>() == 8u;
+        fail_unless!(size_of::<u8>() == 1u);
+        fail_unless!(size_of::<u16>() == 2u);
+        fail_unless!(size_of::<u32>() == 4u);
+        fail_unless!(size_of::<u64>() == 8u);
     }
 
     #[test]
@@ -174,30 +181,30 @@ pub mod tests {
     #[cfg(target_arch = "arm")]
     #[cfg(target_arch = "mips")]
     pub fn size_of_32() {
-        assert size_of::<uint>() == 4u;
-        assert size_of::<*uint>() == 4u;
+        fail_unless!(size_of::<uint>() == 4u);
+        fail_unless!(size_of::<*uint>() == 4u);
     }
 
     #[test]
     #[cfg(target_arch = "x86_64")]
     pub fn size_of_64() {
-        assert size_of::<uint>() == 8u;
-        assert size_of::<*uint>() == 8u;
+        fail_unless!(size_of::<uint>() == 8u);
+        fail_unless!(size_of::<*uint>() == 8u);
     }
 
     #[test]
     pub fn nonzero_size_of_basic() {
         type Z = [i8 * 0];
-        assert size_of::<Z>() == 0u;
-        assert nonzero_size_of::<Z>() == 1u;
-        assert nonzero_size_of::<uint>() == size_of::<uint>();
+        fail_unless!(size_of::<Z>() == 0u);
+        fail_unless!(nonzero_size_of::<Z>() == 1u);
+        fail_unless!(nonzero_size_of::<uint>() == size_of::<uint>());
     }
 
     #[test]
     pub fn align_of_basic() {
-        assert pref_align_of::<u8>() == 1u;
-        assert pref_align_of::<u16>() == 2u;
-        assert pref_align_of::<u32>() == 4u;
+        fail_unless!(pref_align_of::<u8>() == 1u);
+        fail_unless!(pref_align_of::<u16>() == 2u);
+        fail_unless!(pref_align_of::<u32>() == 4u);
     }
 
     #[test]
@@ -205,15 +212,15 @@ pub mod tests {
     #[cfg(target_arch = "arm")]
     #[cfg(target_arch = "mips")]
     pub fn align_of_32() {
-        assert pref_align_of::<uint>() == 4u;
-        assert pref_align_of::<*uint>() == 4u;
+        fail_unless!(pref_align_of::<uint>() == 4u);
+        fail_unless!(pref_align_of::<*uint>() == 4u);
     }
 
     #[test]
     #[cfg(target_arch = "x86_64")]
     pub fn align_of_64() {
-        assert pref_align_of::<uint>() == 8u;
-        assert pref_align_of::<*uint>() == 8u;
+        fail_unless!(pref_align_of::<uint>() == 8u);
+        fail_unless!(pref_align_of::<*uint>() == 8u);
     }
 
     #[test]
@@ -222,7 +229,7 @@ pub mod tests {
             let x = 10;
             let f: fn(int) -> int = |y| x + y;
 
-            assert f(20) == 30;
+            fail_unless!(f(20) == 30);
 
             let original_closure: Closure = cast::transmute(f);
 
@@ -235,7 +242,7 @@ pub mod tests {
             };
 
             let new_f: fn(int) -> int = cast::transmute(new_closure);
-            assert new_f(20) == 30;
+            fail_unless!(new_f(20) == 30);
         }
     }
 }