summaryrefslogtreecommitdiff
path: root/tools/slang-test/main.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2017-10-24 19:14:14 -0400
committerGitHub <noreply@github.com>2017-10-24 19:14:14 -0400
commit3043171dae37d18015d6cd26287d492c576f4f1a (patch)
tree1037732c1e90afd36b588851ce5755d64188bcdb /tools/slang-test/main.cpp
parentab64cf2ec05980d72cb2bad45e629d10ebbefdc1 (diff)
parent434d3428932ccaa0f6834d03c37adcab37d17a01 (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.cpp20
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;
}