summaryrefslogtreecommitdiffstats
path: root/tools/slang-unit-test
diff options
context:
space:
mode:
authorkaizhangNV <149626564+kaizhangNV@users.noreply.github.com>2024-08-28 19:36:31 -0500
committerGitHub <noreply@github.com>2024-08-28 17:36:31 -0700
commitefda04f3cc784dde42bd15fd1d33edeea0f3cd92 (patch)
tree25f9785309efbe97cd1ba2384411e1b332159c89 /tools/slang-unit-test
parentd3a5a4723e0ba0f90ac3a0df3dd841d1f0c69782 (diff)
Migrate 3 more examples to slang-unit-test (#4927)
* Convert 'ray-tracing-pipeline' example into slang-test * Convert model-view and 'autodiff-texture' examples to slang-test * Add more error message in RecordReplay test * Fix a shader issue in autodiff-texture
Diffstat (limited to 'tools/slang-unit-test')
-rw-r--r--tools/slang-unit-test/unit-test-record-replay.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/tools/slang-unit-test/unit-test-record-replay.cpp b/tools/slang-unit-test/unit-test-record-replay.cpp
index 654fb6823..81e74a407 100644
--- a/tools/slang-unit-test/unit-test-record-replay.cpp
+++ b/tools/slang-unit-test/unit-test-record-replay.cpp
@@ -189,6 +189,16 @@ static SlangResult launchProcessAndReadStdout(UnitTestContext* context, const Li
return res;
}
+ if (exeRes.resultCode != 0)
+ {
+ msgBuilder << "'" << exampleName << "' exits with failure\n";
+ msgBuilder << "Process ret code: " << exeRes.resultCode << "\n";
+ msgBuilder << "Standard output:\n" << exeRes.standardOutput;
+ msgBuilder << "Standard error:\n" << exeRes.standardError;
+ getTestReporter()->message(TestMessageType::TestFailure, msgBuilder.toString().getBuffer());
+ return SLANG_FAIL;
+ }
+
if (exeRes.standardOutput.getLength() == 0)
{
msgBuilder << "No stdout found in '" << exampleName << "'\n";
@@ -300,12 +310,20 @@ static SlangResult replayExample(UnitTestContext* context, List<entryHashInfo>&
static SlangResult resultCompare(List<entryHashInfo> const& expectHashes, List<entryHashInfo> const& resultHashes)
{
- if (expectHashes.getCount() != resultHashes.getCount())
+ if (expectHashes.getCount() == 0)
{
+ getTestReporter()->message(TestMessageType::TestFailure, "No hash found\n");
return SLANG_FAIL;
}
StringBuilder msgBuilder;
+ if (expectHashes.getCount() != resultHashes.getCount())
+ {
+ msgBuilder << "The number of hashes doesn't match, expect: " << expectHashes.getCount() << ", actual: " << resultHashes.getCount() << "\n";
+ getTestReporter()->message(TestMessageType::TestFailure, msgBuilder.toString().getBuffer());
+ return SLANG_FAIL;
+ }
+
for (Index i = 0; i < expectHashes.getCount(); i++)
{
if (expectHashes[i].targetIndex != resultHashes[i].targetIndex)
@@ -419,7 +437,10 @@ static SlangResult runTests(UnitTestContext* context)
"cpu-hello-world",
"triangle",
"shader-object",
- "ray-tracing"
+ "ray-tracing",
+ "ray-tracing-pipeline",
+ "model-viewer",
+ "autodiff-texture"
};
SlangResult finalRes = SLANG_OK;
@@ -435,7 +456,7 @@ static SlangResult runTests(UnitTestContext* context)
}
}
- return SLANG_OK;
+ return finalRes;
}
// Those examples all depend on the Vulkan, so we only run them on non-Apple platforms.