about summary refs log tree commit diff
path: root/tests/run-make/coverage/drop_trait.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-make/coverage/drop_trait.rs')
-rw-r--r--tests/run-make/coverage/drop_trait.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/run-make/coverage/drop_trait.rs b/tests/run-make/coverage/drop_trait.rs
new file mode 100644
index 00000000000..d15bfc0f877
--- /dev/null
+++ b/tests/run-make/coverage/drop_trait.rs
@@ -0,0 +1,33 @@
+#![allow(unused_assignments)]
+// expect-exit-status-1
+
+struct Firework {
+    strength: i32,
+}
+
+impl Drop for Firework {
+    fn drop(&mut self) {
+        println!("BOOM times {}!!!", self.strength);
+    }
+}
+
+fn main() -> Result<(),u8> {
+    let _firecracker = Firework { strength: 1 };
+
+    let _tnt = Firework { strength: 100 };
+
+    if true {
+        println!("Exiting with error...");
+        return Err(1);
+    }
+
+    let _ = Firework { strength: 1000 };
+
+    Ok(())
+}
+
+// Expected program output:
+//   Exiting with error...
+//   BOOM times 100!!!
+//   BOOM times 1!!!
+//   Error: 1