diff options
| author | Yong He <yonghe@outlook.com> | 2017-10-24 19:14:14 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-10-24 19:14:14 -0400 |
| commit | 3043171dae37d18015d6cd26287d492c576f4f1a (patch) | |
| tree | 1037732c1e90afd36b588851ce5755d64188bcdb /tools/slang-test/main.cpp | |
| parent | ab64cf2ec05980d72cb2bad45e629d10ebbefdc1 (diff) | |
| parent | 434d3428932ccaa0f6834d03c37adcab37d17a01 (diff) | |
Merge pull request #227 from csyonghe/master
Extending render-test to support various resource inputs
Diffstat (limited to 'tools/slang-test/main.cpp')
| -rw-r--r-- | tools/slang-test/main.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/tools/slang-test/main.cpp b/tools/slang-test/main.cpp index d85a3856b..cdea6b4dc 100644 --- a/tools/slang-test/main.cpp +++ b/tools/slang-test/main.cpp @@ -1,6 +1,7 @@ // main.cpp #include "../../source/core/slang-io.h" +#include "../../source/core/token-reader.h" using namespace Slang; @@ -20,7 +21,6 @@ using namespace Slang; #include <stdio.h> #include <stdlib.h> #include <stdarg.h> - enum OutputMode { // Default mode is to write test results to the console @@ -1164,12 +1164,20 @@ TestResult doComputeComparisonTestRunImpl(TestInput& input, const char * langOpt auto referenceProgramOutput = Split(File::ReadAllText(referenceOutput), '\n'); if (actualProgramOutput.Count() < referenceProgramOutput.Count()) return kTestResult_Fail; - for (int i = 0; i < referenceProgramOutput.Count(); i++) + for (int i = 0; i < (int)referenceProgramOutput.Count(); i++) { - auto reference = StringToFloat(referenceProgramOutput[i]); - auto actual = StringToFloat(actualProgramOutput[i]); - if (abs(actual - reference) > 1e-7f) - return kTestResult_Fail; + auto reference = referenceProgramOutput[i]; + auto actual = actualProgramOutput[i]; + if (actual != reference) + { + // try to parse reference as float, and compare again + auto val = StringToFloat(reference); + auto uval = String((unsigned int)FloatAsInt(val), 16).ToUpper(); + if (actual != uval) + return kTestResult_Fail; + else + return kTestResult_Pass; + } } return kTestResult_Pass; } |
