diff options
Diffstat (limited to 'tests/system/tsigexitcode.nim')
-rw-r--r-- | tests/system/tsigexitcode.nim | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/system/tsigexitcode.nim b/tests/system/tsigexitcode.nim new file mode 100644 index 000000000..249256b40 --- /dev/null +++ b/tests/system/tsigexitcode.nim @@ -0,0 +1,23 @@ +discard """ + joinable: false + disabled: windows +""" + +import os, osproc, posix, strutils + +proc main() = + if paramCount() > 0: + let signal = cint parseInt paramStr(1) + discard posix.raise(signal) + else: + # synchronize this list with lib/system/except.nim:registerSignalHandler() + let sigs = [SIGINT, SIGSEGV, SIGABRT, SIGFPE, SIGILL, SIGBUS, SIGPIPE] + for s in sigs: + let (_, exitCode) = execCmdEx(quoteShellCommand [getAppFilename(), $s]) + if s == SIGPIPE: + # SIGPIPE should be ignored + doAssert exitCode == 0, $(exitCode, s) + else: + doAssert exitCode == 128+s, $(exitCode, s) + +main() |