summary refs log tree commit diff stats
path: root/testament/tests/shouldfail/tvalgrind.nim
diff options
context:
space:
mode:
authorn5m <72841454+n5m@users.noreply.github.com>2020-10-22 09:25:11 +0000
committerGitHub <noreply@github.com>2020-10-22 11:25:11 +0200
commit8da0e01769231d795300c7ce6894178cf6025e19 (patch)
treee303635af8994b74dc2ecc1b22b315ec9df918d9 /testament/tests/shouldfail/tvalgrind.nim
parente47c3987c1a9004eb346b3ae64997b33c85ea046 (diff)
downloadNim-8da0e01769231d795300c7ce6894178cf6025e19.tar.gz
expect valgrind test failure on memory leak (#15669)
* expect valgrind test failure on memory leak

* alloc 1 instead of 0
Diffstat (limited to 'testament/tests/shouldfail/tvalgrind.nim')
-rw-r--r--testament/tests/shouldfail/tvalgrind.nim17
1 files changed, 17 insertions, 0 deletions
diff --git a/testament/tests/shouldfail/tvalgrind.nim b/testament/tests/shouldfail/tvalgrind.nim
new file mode 100644
index 000000000..4f699fd3b
--- /dev/null
+++ b/testament/tests/shouldfail/tvalgrind.nim
@@ -0,0 +1,17 @@
+discard """
+valgrind: true
+cmd: "nim $target --gc:arc -d:useMalloc $options $file"
+"""
+
+# this is the same check used by testament/specs.nim whether or not valgrind
+# tests are supported
+when defined(linux) and sizeof(int) == 8:
+  # discarding this allocation will cause valgrind to fail (which is what we
+  # want), but valgrind only runs on 64-bit Linux machines...
+  discard alloc(1)
+else:
+  # ...so on all other OS/architectures, simulate any non-zero exit code to
+  # mimic how valgrind would have failed on this test. We cannot use things like
+  # `disabled: "freebsd"` in the Testament configs above or else the tests will
+  # be SKIP-ed rather than FAIL-ed
+  quit(1) # choose 1 to match valgrind's `--error-exit=1`, but could be anything