From efda04f3cc784dde42bd15fd1d33edeea0f3cd92 Mon Sep 17 00:00:00 2001 From: kaizhangNV <149626564+kaizhangNV@users.noreply.github.com> Date: Wed, 28 Aug 2024 19:36:31 -0500 Subject: 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 --- tools/slang-unit-test/unit-test-record-replay.cpp | 27 ++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'tools') 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& static SlangResult resultCompare(List const& expectHashes, List 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. -- cgit v1.2.3