diff options
| author | Yong He <yonghe@outlook.com> | 2017-10-23 10:44:08 -0400 |
|---|---|---|
| committer | Yong He <yonghe@outlook.com> | 2017-10-23 10:44:08 -0400 |
| commit | 4d6be3588ac5b5b62e19900b12de90ce1e1ff744 (patch) | |
| tree | 43fb004d9283849c670dfd869d75b8f621036b9e /tools | |
| parent | cc6184ebc4d0611be892eaff119de99f8b9e1ca6 (diff) | |
| parent | 624d122a3a110922cd54aab7bbf13f1cac8fbbff (diff) | |
Merge https://github.com/shader-slang/slang
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/slang-test/main.cpp | 56 |
1 files changed, 38 insertions, 18 deletions
diff --git a/tools/slang-test/main.cpp b/tools/slang-test/main.cpp index 272c1b618..676cb6875 100644 --- a/tools/slang-test/main.cpp +++ b/tools/slang-test/main.cpp @@ -752,6 +752,28 @@ TestResult runReflectionTest(TestInput& input) return result; } +String getExpectedOutput(String const& outputStem) +{ + String expectedOutputPath = outputStem + ".expected"; + String expectedOutput; + try + { + expectedOutput = Slang::File::ReadAllText(expectedOutputPath); + } + catch (Slang::IOException) + { + } + + // If no expected output file was found, then we + // expect everything to be empty + if (expectedOutput.Length() == 0) + { + expectedOutput = "result code = 0\nstandard error = {\n}\nstandard output = {\n}\n"; + } + + return expectedOutput; +} + TestResult runEvalTest(TestInput& input) { // We are going to load and evaluate the code @@ -775,23 +797,7 @@ TestResult runEvalTest(TestInput& input) } String actualOutput = getOutput(spawner); - - String expectedOutputPath = outputStem + ".expected"; - String expectedOutput; - try - { - expectedOutput = Slang::File::ReadAllText(expectedOutputPath); - } - catch (Slang::IOException) - { - } - - // If no expected output file was found, then we - // expect everything to be empty - if (expectedOutput.Length() == 0) - { - expectedOutput = "result code = 0\nstandard error = {\n}\nstandard output = {\n}\n"; - } + String expectedOutput = getExpectedOutput(outputStem); TestResult result = kTestResult_Pass; @@ -1135,6 +1141,19 @@ TestResult doComputeComparisonTestRunImpl(TestInput& input, const char * langOpt return kTestResult_Fail; } + auto actualOutput = getOutput(spawner); + auto expectedOutput = getExpectedOutput(outputStem); + if(actualOutput != expectedOutput) + { + String actualOutputPath = outputStem + ".actual"; + Slang::File::WriteAllText(actualOutputPath, actualOutput); + + maybeDumpOutput(expectedOutput, actualOutput); + + return kTestResult_Fail; + } + + // check against reference output if (!File::Exists(outputStem + ".actual.txt")) return kTestResult_Fail; @@ -1358,14 +1377,15 @@ TestResult runTest( { "COMPARE_HLSL_RENDER", &runHLSLRenderComparisonTest }, { "COMPARE_HLSL_CROSS_COMPILE_RENDER", &runHLSLCrossCompileRenderComparisonTest}, { "COMPARE_HLSL_GLSL_RENDER", &runHLSLAndGLSLComparisonTest }, + { "COMPARE_COMPUTE", &doSlangComputeComparisonTest}, #else { "COMPARE_HLSL", &skipTest }, { "COMPARE_HLSL_RENDER", &skipTest }, { "COMPARE_HLSL_CROSS_COMPILE_RENDER", &skipTest}, { "COMPARE_HLSL_GLSL_RENDER", &skipTest }, + { "COMPARE_COMPUTE", &skipTest}, #endif { "COMPARE_GLSL", &runGLSLComparisonTest }, - { "COMPARE_COMPUTE", &doSlangComputeComparisonTest}, { "CROSS_COMPILE", &runCrossCompilerTest }, { "EVAL", &runEvalTest }, |
