summary refs log tree commit diff stats
path: root/tests/destructor
diff options
context:
space:
mode:
Diffstat (limited to 'tests/destructor')
-rw-r--r--tests/destructor/tv2_raise.nim38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/destructor/tv2_raise.nim b/tests/destructor/tv2_raise.nim
new file mode 100644
index 000000000..75ccadd49
--- /dev/null
+++ b/tests/destructor/tv2_raise.nim
@@ -0,0 +1,38 @@
+discard """
+  cmd: '''nim c --newruntime $file'''
+  output: '''OK 2
+4 1'''
+"""
+
+import strutils, math
+import system / ansi_c
+import core / allocators
+
+proc mainA =
+  var e: owned(ref ValueError)
+  new(e)
+  e.msg = "message"
+  raise e
+
+proc main =
+  raise newException(ValueError, "argh")
+
+var ok = 0
+try:
+  mainA()
+except ValueError:
+  inc ok
+except:
+  discard
+
+try:
+  main()
+except ValueError:
+  inc ok
+except:
+  discard
+
+echo "OK ", ok
+
+let (a, d) = allocCounters()
+discard cprintf("%ld %ld\n", a, d)