diff options
author | Tom Stellard <[email protected]> | 2013-02-10 00:15:10 -0500 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2013-02-21 22:07:27 -0500 |
commit | bcf2e157caeb2ee607a1398de9fd68f315dd4d6e (patch) | |
tree | e30cf8e4bad94a05986977872dea6650e2d2b171 /src/gallium | |
parent | 5355fc1e8743dd776b86a15a16a1bc597da7d0f1 (diff) |
r300g/tests: Exit test runner with a valid status code
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 <[email protected]>
Diffstat (limited to 'src/gallium')
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 <stdlib.h> + 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); |