summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/igt_core.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/lib/igt_core.c b/lib/igt_core.c
index 41f84bb9..0ae6918c 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -591,6 +591,9 @@ out:
/* install exit handler, to ensure we clean up */
igt_install_exit_handler(common_exit_handler);
+ if (!test_with_subtests)
+ gettime(&subtest_time);
+
return ret;
}
@@ -975,8 +978,33 @@ void igt_exit(void)
kmsg(KERN_INFO "%s: exiting, ret=%d\n", command_str, igt_exitcode);
igt_debug("Exiting with status code %d\n", igt_exitcode);
- if (!test_with_subtests)
+ if (!test_with_subtests) {
+ struct timespec now;
+ double elapsed;
+ const char *result;
+
+ gettime(&now);
+ elapsed = now.tv_sec - subtest_time.tv_sec;
+ elapsed += (now.tv_nsec - subtest_time.tv_nsec) * 1e-9;
+
+ switch (igt_exitcode) {
+ case IGT_EXIT_SUCCESS:
+ result = "SUCCESS";
+ break;
+ case IGT_EXIT_TIMEOUT:
+ result = "TIMEOUT";
+ break;
+ case IGT_EXIT_SKIP:
+ result = "SKIP";
+ break;
+ default:
+ result = "FAIL";
+ }
+
+
+ printf("%s (%.3fs)\n", result, elapsed);
exit(igt_exitcode);
+ }
/* Calling this without calling one of the above is a failure */
assert(skipped_one || succeeded_one || failed_one);