summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/compiler
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2013-02-10 00:15:10 -0500
committerTom Stellard <[email protected]>2013-02-21 22:07:27 -0500
commitbcf2e157caeb2ee607a1398de9fd68f315dd4d6e (patch)
treee30cf8e4bad94a05986977872dea6650e2d2b171 /src/gallium/drivers/r300/compiler
parent5355fc1e8743dd776b86a15a16a1bc597da7d0f1 (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/drivers/r300/compiler')
-rw-r--r--src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.c12
-rw-r--r--src/gallium/drivers/r300/compiler/tests/r300_compiler_tests.h3
-rw-r--r--src/gallium/drivers/r300/compiler/tests/radeon_compiler_util_tests.c4
-rw-r--r--src/gallium/drivers/r300/compiler/tests/unit_test.c7
-rw-r--r--src/gallium/drivers/r300/compiler/tests/unit_test.h2
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);