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]): DBG: Cleanup
|
||||
run foo(pid=[PID]): Terminated {rc=1}
|
||||
result: 1
|
||||
run foo(pid=[PID]): Terminated {rc=42}
|
||||
result: 42
|
||||
stdout:
|
||||
(launched: [DATETIME])
|
||||
foo stdout
|
||||
[[$0], 'arg1', 'arg2']
|
||||
SIGINT received
|
||||
Exiting (stdout)
|
||||
|
||||
stderr:
|
||||
(launched: [DATETIME])
|
||||
foo stderr
|
||||
Traceback (most recent call last):
|
||||
File [$0], line [LINE], in <module>
|
||||
time.sleep(1)
|
||||
KeyboardInterrupt
|
||||
Exiting (stderr)
|
||||
|
||||
done.
|
||||
|
|
|
@ -3,7 +3,13 @@
|
|||
import sys
|
||||
import atexit
|
||||
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.stderr.write('foo stderr\n')
|
||||
|
|
Loading…
Reference in New Issue