Cancel test run on SIGINT/SIGTERM
In addition to canceling test run is master tells us to do so, also cancel the run if interrupted or terminated.
With the following sample .nxdtest
TestCase('sleep', ['sleep', '10'])
before the patch it does not react to CTRL+C:
$ nxdtest
...
>>> sleep
$ sleep 10
^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C# ran 0 test cases. <-- no reaction to CTRL+C, finishes after 10 seconds
Traceback (most recent call last):
File "/home/kirr/src/tools/go/py3.venv2/bin/nxdtest", line 33, in <module>
sys.exit(load_entry_point('nxdtest', 'console_scripts', 'nxdtest')())
File "/home/kirr/src/tools/go/py3.venv2/lib/python3.9/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "/home/kirr/src/tools/go/pygolang-master/golang/__init__.py", line 103, in _
return f(*argv, **kw)
File "/home/kirr/src/wendelin/nxdtest/nxdtest/__init__.py", line 339, in main
wg.wait()
KeyboardInterrupt
after the patch:
$ nxdtest
...
>>> sleep
$ sleep 10
^C# Interrupt <-- prompt reaction to CTRL+C
# stopping due to cancel
# leaked pid=188877 'sleep' ['sleep', '10']
error sleep 1.030s # 1t 1e 0f 0s
# test run canceled
# ran 1 test case: 1·error
Needs pygolang!17 (merged) to work.
/cc @jerome