From: Giovanni Mascellani gmascellani@codeweavers.com
--- tests/driver.c | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-)
diff --git a/tests/driver.c b/tests/driver.c index 907f321b7..cdd449744 100644 --- a/tests/driver.c +++ b/tests/driver.c @@ -94,9 +94,9 @@ out:
static bool run_tests_for_directory(const char *commit_dir) { + char cmdline[1024], log_filename[1024], hlsl_dir[1024]; 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; @@ -136,6 +136,42 @@ static bool run_tests_for_directory(const char *commit_dir) FindClose(find_handle); }
+ sprintf(hlsl_dir, "artifacts\%s\tests\hlsl", commit_dir); + if (!CreateDirectoryA(hlsl_dir, NULL)) + { + fprintf(stderr, "Cannot create directory %s, last error %ld.\n", hlsl_dir, GetLastError()); + ret = false; + } + + find_handle = FindFirstFileA("tests/hlsl/*.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/hlsl/%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/hlsl/%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;