]> git.lizzy.rs Git - rust.git/commitdiff
improve the run-pass test
authorJorge Aparicio <jorge@japaric.io>
Thu, 23 Aug 2018 14:49:00 +0000 (16:49 +0200)
committerRalf Jung <post@ralfj.de>
Sun, 30 Sep 2018 15:27:06 +0000 (17:27 +0200)
src/test/run-pass/panic-uninitialized-zeroed.rs

index a4115f8fa1d65c7a8dd1fe479da080d98990fa4c..fd88bba49c4846e8fb2a853ce0d6af6928a691d2 100644 (file)
@@ -22,10 +22,40 @@ struct Foo {
 
 fn main() {
     unsafe {
-        panic::catch_unwind(|| mem::uninitialized::<!>()).is_err();
-        panic::catch_unwind(|| mem::zeroed::<!>()).is_err();
+        assert_eq!(
+            panic::catch_unwind(|| {
+                mem::uninitialized::<!>()
+            }).err().and_then(|a| a.downcast_ref::<String>().map(|s| {
+                s == "Attempted to instantiate uninhabited type ! using mem::uninitialized"
+            })),
+            Some(true)
+        );
 
-        panic::catch_unwind(|| mem::uninitialized::<Foo>()).is_err();
-        panic::catch_unwind(|| mem::zeroed::<Foo>()).is_err();
+        assert_eq!(
+            panic::catch_unwind(|| {
+                mem::zeroed::<!>()
+            }).err().and_then(|a| a.downcast_ref::<String>().map(|s| {
+                s == "Attempted to instantiate uninhabited type ! using mem::zeroed"
+            })),
+            Some(true)
+        );
+
+        assert_eq!(
+            panic::catch_unwind(|| {
+                mem::uninitialized::<Foo>()
+            }).err().and_then(|a| a.downcast_ref::<String>().map(|s| {
+                s == "Attempted to instantiate uninhabited type Foo using mem::uninitialized"
+            })),
+            Some(true)
+        );
+
+        assert_eq!(
+            panic::catch_unwind(|| {
+                mem::zeroed::<Foo>()
+            }).err().and_then(|a| a.downcast_ref::<String>().map(|s| {
+                s == "Attempted to instantiate uninhabited type Foo using mem::zeroed"
+            })),
+            Some(true)
+        );
     }
 }