From bcf2e157caeb2ee607a1398de9fd68f315dd4d6e Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Sun, 10 Feb 2013 00:15:10 -0500 Subject: [PATCH] r300g/tests: Exit test runner with a valid status code MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This way make check can report whether or not the tests pass. NOTE: This is a candidate for the stable branches. Reviewed-by: Marek Olšák --- .../r300/compiler/tests/r300_compiler_tests.c | 12 +++++++++++- .../r300/compiler/tests/r300_compiler_tests.h | 3 ++- .../r300/compiler/tests/radeon_compiler_util_tests.c | 4 ++-- src/gallium/drivers/r300/compiler/tests/unit_test.c | 7 ++++++- src/gallium/drivers/r300/compiler/tests/unit_test.h | 2 +- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.c b/src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.c index 4b98e38105c..cc4725ab06d 100644 --- a/src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.c +++ b/src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.c @@ -27,7 +27,17 @@ #include "r300_compiler_tests.h" +#include + int main(int argc, char ** argv) { - radeon_compiler_util_run_tests(); + unsigned pass = 1; + pass &= radeon_compiler_optimize_run_tests(); + pass &= radeon_compiler_util_run_tests(); + + if (pass) { + return EXIT_SUCCESS; + } else { + return EXIT_FAILURE; + } } diff --git a/src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.h b/src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.h index b6719552d84..266addf66d9 100644 --- a/src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.h +++ b/src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.h @@ -25,4 +25,5 @@ * */ -void radeon_compiler_util_run_tests(void); +unsigned radeon_compiler_optimize_run_tests(void); +unsigned radeon_compiler_util_run_tests(void); diff --git a/src/gallium/drivers/r300/compiler/tests/radeon_compiler_util_tests.c b/src/gallium/drivers/r300/compiler/tests/radeon_compiler_util_tests.c index 25220ec9999..33b27fcdca4 100644 --- a/src/gallium/drivers/r300/compiler/tests/radeon_compiler_util_tests.c +++ b/src/gallium/drivers/r300/compiler/tests/radeon_compiler_util_tests.c @@ -94,11 +94,11 @@ static void test_runner_rc_inst_can_use_presub(struct test_result * result) "MAD temp[0].xyz, temp[2].xyz_, -temp[3].xxx_, input[5].xyz_;"); } -void radeon_compiler_util_run_tests() +unsigned radeon_compiler_util_run_tests() { struct test tests[] = { {"rc_inst_can_use_presub()", test_runner_rc_inst_can_use_presub}, {NULL, NULL} }; - run_tests(tests); + return run_tests(tests); } diff --git a/src/gallium/drivers/r300/compiler/tests/unit_test.c b/src/gallium/drivers/r300/compiler/tests/unit_test.c index ac6bdedc62d..a014d78cd25 100644 --- a/src/gallium/drivers/r300/compiler/tests/unit_test.c +++ b/src/gallium/drivers/r300/compiler/tests/unit_test.c @@ -31,16 +31,21 @@ #include "unit_test.h" -void run_tests(struct test tests[]) +unsigned run_tests(struct test tests[]) { int i; + unsigned pass = 1; for (i = 0; tests[i].name; i++) { printf("Test %s\n", tests[i].name); memset(&tests[i].result, 0, sizeof(tests[i].result)); tests[i].test_func(&tests[i].result); printf("Test %s (%d/%d) pass\n", tests[i].name, tests[i].result.pass, tests[i].result.test_count); + if (tests[i].result.pass != tests[i].result.test_count) { + pass = 0; + } } + return pass; } void test_begin(struct test_result * result) diff --git a/src/gallium/drivers/r300/compiler/tests/unit_test.h b/src/gallium/drivers/r300/compiler/tests/unit_test.h index 9a69fd7f5f0..4a9584385d8 100644 --- a/src/gallium/drivers/r300/compiler/tests/unit_test.h +++ b/src/gallium/drivers/r300/compiler/tests/unit_test.h @@ -37,7 +37,7 @@ struct test { struct test_result result; }; -void run_tests(struct test tests[]); +unsigned run_tests(struct test tests[]); void test_begin(struct test_result * result); void test_check(struct test_result * result, int cond); -- 2.30.2