diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2023-04-03 11:46:03 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-02 20:46:03 -0700 |
| commit | 271ae7165915cf9910e2de0224159ea0fdd8ce72 (patch) | |
| tree | 9b4db47ec7c4ee59af46ea2ccc1c1caa074d618d /tools/slang-test | |
| parent | d7ba60c993366b4aaf6ef8ee7d8eab940d61eac8 (diff) | |
Fix several silently failing tests (#2767)
* Add missing expected.txt for test
* Diagnostics -> StdWriters in render test
* Allow specifying several test prefixes to run
`slang-test -- tests/foo tests/bar`
* Squash warnings in some tests
* Enable gfx debug layer in gfx test util
Makes this issue present consistently: https://github.com/shader-slang/slang/issues/2766
* Allow DebugDevice to return interfaces instantiated by the debugged object
* Check that we actaully have a shader cache for shader cache tests
---------
Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'tools/slang-test')
| -rw-r--r-- | tools/slang-test/options.cpp | 13 | ||||
| -rw-r--r-- | tools/slang-test/options.h | 4 | ||||
| -rw-r--r-- | tools/slang-test/slang-test-main.cpp | 15 |
3 files changed, 13 insertions, 19 deletions
diff --git a/tools/slang-test/options.cpp b/tools/slang-test/options.cpp index 11188d766..ab0d3a01e 100644 --- a/tools/slang-test/options.cpp +++ b/tools/slang-test/options.cpp @@ -310,18 +310,7 @@ static bool _isSubCommand(const char* arg) // first positional argument is source shader path - if (positionalArgs.getCount()) - { - optionsOut->testPrefix = positionalArgs[0]; - positionalArgs.removeAt(0); - } - - // any remaining arguments represent an error - if (positionalArgs.getCount() != 0) - { - stdError.print("unexpected arguments\n"); - return SLANG_FAIL; - } + optionsOut->testPrefixes = std::move(positionalArgs); if (optionsOut->binDir.getLength() == 0) { diff --git a/tools/slang-test/options.h b/tools/slang-test/options.h index 26b8e7500..e786a0a74 100644 --- a/tools/slang-test/options.h +++ b/tools/slang-test/options.h @@ -52,8 +52,8 @@ struct Options // Directory to use when looking for binaries to run. If empty it's not set. Slang::String binDir; - // only run test cases with names that have this prefix. - char const* testPrefix = nullptr; + // only run test cases with names have one of these prefixes. + Slang::List<const char *> testPrefixes; // generate extra output (notably: command lines we run) bool shouldBeVerbose = false; diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp index 71f5c04bd..51c618187 100644 --- a/tools/slang-test/slang-test-main.cpp +++ b/tools/slang-test/slang-test-main.cpp @@ -3900,15 +3900,20 @@ static bool shouldRunTest( if(!endsWithAllowedExtension(context, filePath)) return false; - if( context->options.testPrefix ) + if(!context->options.testPrefixes.getCount()) { - if( strncmp(context->options.testPrefix, filePath.begin(), strlen(context->options.testPrefix)) != 0 ) + return true; + } + + // If we have prefixes, it has to match one of them + for(auto& p : context->options.testPrefixes) + { + if(filePath.startsWith(p)) { - return false; + return true; } } - - return true; + return false; } void getFilesInDirectory(String directoryPath, List<String>& files) |
