From 1cbbd197b2b1461ea8c96a2d6223ea3a99700d16 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Thu, 20 Jan 2022 20:53:38 -0800 Subject: [PATCH] Headless: Return an exit code on test failure. --- headless/Headless.cpp | 2 ++ test.py | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/headless/Headless.cpp b/headless/Headless.cpp index cc9201310c..ba27526e0d 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -502,5 +502,7 @@ int main(int argc, const char* argv[]) LogManager::Shutdown(); delete printfLogger; + if (!failedTests.empty() && !teamCityMode) + return 1; return 0; } diff --git a/test.py b/test.py index 0cad0dccdc..d93c3e306c 100755 --- a/test.py +++ b/test.py @@ -60,6 +60,8 @@ class Command(object): self.process.terminate() thread.join() + return self.process.returncode + # Test names are the C files without the .c extension. # These have worked and should keep working always - regression tests. tests_good = [ @@ -499,8 +501,7 @@ def init(): def run_tests(test_list, args): global PPSSPP_EXE, TIMEOUT - tests_passed = [] - tests_failed = [] + returncode = 0 test_filenames = [] for test in test_list: @@ -518,18 +519,21 @@ def run_tests(test_list, args): cmdline.extend([i for i in args if i not in ['-g', '-m']]) c = Command(cmdline, '\n'.join(test_filenames)) - c.run(TIMEOUT * len(test_filenames)) + returncode = c.run(TIMEOUT * len(test_filenames)) print("Ran " + ' '.join(cmdline)) + return returncode def main(): init() tests = [] args = [] + teamcity = False for arg in sys.argv[1:]: if arg == '--teamcity': args.append(arg) + teamcity = True elif arg[0] == '-': args.append(arg) else: @@ -545,6 +549,9 @@ def main(): elif '-m' in args: tests = [i for i in tests_next + tests_good if i.startswith(tests[0])] - run_tests(tests, args) + returncode = run_tests(tests, args) + if teamcity: + return 0 + return returncode -main() +exit(main())