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
diff --git a/selftest/process_test.ok b/selftest/process_test.ok
index f168ee3..e40a461 100644
--- a/selftest/process_test.ok
+++ b/selftest/process_test.ok
@@ -13,21 +13,18 @@
 
 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.
diff --git a/selftest/process_test/foo.py b/selftest/process_test/foo.py
index 4abe887..0931c9b 100755
--- a/selftest/process_test/foo.py
+++ b/selftest/process_test/foo.py
@@ -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')