From: Giovanni Mascellani gmascellani@codeweavers.com
--- tests/driver.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
diff --git a/tests/driver.c b/tests/driver.c index bfc1ae864..907f321b7 100644 --- a/tests/driver.c +++ b/tests/driver.c @@ -97,6 +97,8 @@ static bool run_tests_for_directory(const char *commit_dir) unsigned int success_count = 0, test_count = 0; const char *test_arch = getenv("TEST_ARCH"); char cmdline[1024], log_filename[1024]; + WIN32_FIND_DATAA find_data; + HANDLE find_handle; bool ret = true;
if (!test_arch) @@ -105,6 +107,35 @@ static bool run_tests_for_directory(const char *commit_dir) printf("Building %s\n", commit_dir); printf("---\n");
+ find_handle = FindFirstFileA("tests/*.shader_test", &find_data); + if (find_handle == INVALID_HANDLE_VALUE) + { + fprintf(stderr, "Cannot list tests, last error %ld.\n", GetLastError()); + ret = false; + } + else + { + do + { + sprintf(cmdline, "artifacts/%s/tests/shader_runner.cross%s.exe tests/%s", commit_dir, test_arch, find_data.cFileName); + + /* Remove the .shader_test suffix. */ + find_data.cFileName[strlen(find_data.cFileName) - 12] = '\0'; + sprintf(log_filename, "artifacts/%s/tests/%s.log", commit_dir, find_data.cFileName); + + ++test_count; + success_count += !!run_program(cmdline, log_filename); + } while (FindNextFileA(find_handle, &find_data)); + + if (GetLastError() != ERROR_NO_MORE_FILES) + { + fprintf(stderr, "Cannot list tests, last error %ld.\n", GetLastError()); + ret = false; + } + + FindClose(find_handle); + } + sprintf(cmdline, "artifacts/%s/tests/hlsl_d3d12.cross%s.exe", commit_dir, test_arch); sprintf(log_filename, "artifacts/%s/tests/hlsl_d3d12.log", commit_dir); ++test_count;