selftest/process_test: Fix output changing in new python version
On older versions apparently upon child termination due to SIGINT subprocess.poll() returned 1. On new python versions (such as 3.8.2), -2 is returned, according to documentation: A negative value -N indicates that the child was terminated by signal N (Unix only). Let's catch the SIGINT in the child process and exit with a known 42 value to fix different behavior. Change-Id: I7949ff2b435e91e890061e6840b0f411f8b0a817
This commit is contained in:
parent
afa2fc3aa6
commit
fa653e4136
|
@ -13,21 +13,18 @@ foo stderr
|
||||||
|
|
||||||
run foo(pid=[PID]): Terminating (SIGINT)
|
run foo(pid=[PID]): Terminating (SIGINT)
|
||||||
run foo(pid=[PID]): DBG: Cleanup
|
run foo(pid=[PID]): DBG: Cleanup
|
||||||
run foo(pid=[PID]): Terminated {rc=1}
|
run foo(pid=[PID]): Terminated {rc=42}
|
||||||
result: 1
|
result: 42
|
||||||
stdout:
|
stdout:
|
||||||
(launched: [DATETIME])
|
(launched: [DATETIME])
|
||||||
foo stdout
|
foo stdout
|
||||||
[[$0], 'arg1', 'arg2']
|
[[$0], 'arg1', 'arg2']
|
||||||
|
SIGINT received
|
||||||
Exiting (stdout)
|
Exiting (stdout)
|
||||||
|
|
||||||
stderr:
|
stderr:
|
||||||
(launched: [DATETIME])
|
(launched: [DATETIME])
|
||||||
foo stderr
|
foo stderr
|
||||||
Traceback (most recent call last):
|
|
||||||
File [$0], line [LINE], in <module>
|
|
||||||
time.sleep(1)
|
|
||||||
KeyboardInterrupt
|
|
||||||
Exiting (stderr)
|
Exiting (stderr)
|
||||||
|
|
||||||
done.
|
done.
|
||||||
|
|
|
@ -3,7 +3,13 @@
|
||||||
import sys
|
import sys
|
||||||
import atexit
|
import atexit
|
||||||
import time
|
import time
|
||||||
|
import signal
|
||||||
|
|
||||||
|
def signal_handler(sig, frame):
|
||||||
|
print('SIGINT received')
|
||||||
|
sys.exit(42)
|
||||||
|
|
||||||
|
signal.signal(signal.SIGINT, signal_handler)
|
||||||
|
|
||||||
sys.stdout.write('foo stdout\n')
|
sys.stdout.write('foo stdout\n')
|
||||||
sys.stderr.write('foo stderr\n')
|
sys.stderr.write('foo stderr\n')
|
||||||
|
|
Loading…
Reference in New Issue