Before we print the exitcode to the debug/kmsg logs, we should inspect
what it's final value will be. For example, in the case of running
multiple subtests which all happen to be skipped, igt_exitcode is 0, but
the final exit code will be 77.

Signed-off-by: Chris Wilson <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
---
 lib/igt_core.c | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index b0bc60c..8c4bbc4 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1258,10 +1258,22 @@ void igt_exit(void)
                exit(IGT_EXIT_INVALID);
        }
 
-
        if (igt_only_list_subtests())
                exit(IGT_EXIT_SUCCESS);
 
+       /* Calling this without calling one of the above is a failure */
+       assert(!tests_with_subtests ||
+              skipped_one ||
+              succeeded_one ||
+              failed_one);
+
+       if (test_with_subtests && !failed_one) {
+               if (succeeded_one)
+                       igt_exitcode = IGT_EXIT_SUCCESS;
+               else
+                       igt_exitcode = IGT_EXIT_SKIP;
+       }
+
        kmsg(KMSG_INFO "%s: exiting, ret=%d\n", command_str, igt_exitcode);
        igt_debug("Exiting with status code %d\n", igt_exitcode);
 
@@ -1288,19 +1300,11 @@ void igt_exit(void)
                                result = "FAIL";
                }
 
-               printf("%s (%.3fs)\n", result, time_elapsed(&subtest_time, 
&now));
-               exit(igt_exitcode);
+               printf("%s (%.3fs)\n",
+                      result, time_elapsed(&subtest_time, &now));
        }
 
-       /* Calling this without calling one of the above is a failure */
-       assert(skipped_one || succeeded_one || failed_one);
-
-       if (failed_one)
-               exit(igt_exitcode);
-       else if (succeeded_one)
-               exit(IGT_EXIT_SUCCESS);
-       else
-               exit(IGT_EXIT_SKIP);
+       exit(igt_exitcode);
 }
 
 /* fork support code */
-- 
2.8.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to