From 30bf2c806fc07146451eb13f156e8125c4ab6f30 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Wed, 5 Mar 2014 03:25:19 +0000 Subject: [PATCH] [Scons/Test] Allow test suite to continue if gtest crashes If a gtest program crashes, register that as a single test failure. Previously, the entire test suite would be aborted because the attempt to open the test results file (gtest-foo.xml) would fail. --- test/SConscript | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/test/SConscript b/test/SConscript index 84fe9d4d1..4e98f4ce6 100644 --- a/test/SConscript +++ b/test/SConscript @@ -42,16 +42,20 @@ def addTestProgram(subdir, progName, env_vars={}): if not code: # Test was successful open(passedFile.path, 'w').write(time.asctime()+'\n') - else: - testResults.failed[passedFile.name] = program - results = ElementTree.parse(resultsFile) - for test in results.findall('.//testcase'): - testName = ': '.join((progName, test.get('name'))) - if test.findall('failure'): - testResults.failed[testName] = 1 - else: - testResults.passed[testName] = 1 + if os.path.exists(resultsFile): + # Determine individual test status + results = ElementTree.parse(resultsFile) + for test in results.findall('.//testcase'): + testName = ': '.join((progName, test.get('name'))) + if test.findall('failure'): + testResults.failed[testName] = 1 + else: + testResults.passed[testName] = 1 + else: + # Total failure of the test program - unable to determine status + # of individual tests + testResults.failed[passedFile.name] = program testenv = localenv.Clone() testenv['ENV'].update(env_vars)