diff options
Diffstat (limited to 'src/libcore/sys.rs')
| -rw-r--r-- | src/libcore/sys.rs | 47 |
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); } } } |
