Merge pull request #24 from Xenopathic/kill-tests

Signal handling for run_tests.py
pull/18/merge
jpakkane 10 years ago
commit 605b9d8ad1
  1. 20
      run_tests.py

@ -15,7 +15,7 @@
# limitations under the License.
from glob import glob
import os, subprocess, shutil, sys, platform
import os, subprocess, shutil, sys, platform, signal
import environment
from environment import is_windows
@ -27,6 +27,17 @@ test_build_dir = 'work area'
install_dir = os.path.join(os.path.split(os.path.abspath(__file__))[0], 'install dir')
meson_command = './meson.py'
class StopException(Exception):
def __init__(self):
super(Exception, self).__init__('Stopped by user')
stop = False
def stop_handler(signal, frame):
global stop
stop = True
signal.signal(signal.SIGINT, stop_handler)
signal.signal(signal.SIGTERM, stop_handler)
#unity_flags = ['--unity']
unity_flags = []
msbuild_exe = shutil.which('msbuild')
@ -93,7 +104,7 @@ def validate_install(srcdir, installdir):
return ''
def run_and_log(logfile, testdir, should_succeed=True):
global passing_tests, failing_tests
global passing_tests, failing_tests, stop
(msg, stdo, stde) = run_test(testdir, should_succeed)
if msg != '':
print('Fail:', msg)
@ -109,6 +120,8 @@ def run_and_log(logfile, testdir, should_succeed=True):
if print_debug:
print(stdo)
print(stde, file=sys.stderr)
if stop:
raise StopException()
def run_test(testdir, should_succeed):
global compile_commands
@ -309,7 +322,10 @@ if __name__ == '__main__':
os.chdir(script_dir)
check_format()
pbfile = generate_prebuilt_object()
try:
run_tests()
except StopException:
pass
os.unlink(pbfile)
print('\nTotal passed tests:', passing_tests)
print('Total failed tests:', failing_tests)

Loading…
Cancel
Save