summaryrefslogtreecommitdiff
path: root/tests/memory/test_drop.zc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/memory/test_drop.zc')
-rw-r--r--tests/memory/test_drop.zc26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/memory/test_drop.zc b/tests/memory/test_drop.zc
new file mode 100644
index 0000000..6b1ccdf
--- /dev/null
+++ b/tests/memory/test_drop.zc
@@ -0,0 +1,26 @@
+import "../../std/mem.zc"
+
+let DROP_CALLED = 0;
+
+struct MyResource {
+ id: int;
+}
+
+impl Drop for MyResource {
+ fn drop(self) {
+ println "Dropping MyResource {self.id}";
+ DROP_CALLED = 1;
+ }
+}
+
+test "drop_trait" {
+ {
+ let res = MyResource { id: 1 };
+ // Scope ends here, drop should be called
+ }
+
+ if (DROP_CALLED != 1) {
+ println "Error: Drop was not called!";
+ exit(1);
+ }
+}