test: broaden self-test coverage beyond the compile smoke test
All checks were successful
CI / build-test-release (pull_request) Successful in 7m26s
All checks were successful
CI / build-test-release (pull_request) Successful in 7m26s
The suite had only HelloWorld, which built and exited an empty exe. Add in-process tests covering each public surface area users actually touch: - StaticLib / ModuleInterface / DependencyLink — Build() against fixtures for libraries, project-local module interfaces, and cross-config module deps with link verification (runs the built exe). - ShaderCompile — drives Shader::Compile directly, validates SPIR-V magic + Check() idempotency. - StandardArgs — covers --debug, --target=, --march=, --mtune=, --lib/--shared promotions, and ArgQuery::Has / Get. - TestRunnerSpec — FromSpec parse rules, ForTarget routing for host, wasm32-wasip1, aarch64-linux-gnu (+ sysroot QEMU_LD_PREFIX), i686 → qemu-i386 rewrite, mingw → wine on Linux hosts, FromEnv. - VariantId — confirms type / debug / sysroot / defines / compileFlags / target / march all perturb the cache key, plus PcmDir routing. - WasiBrowserRuntime — calls EnableWasiBrowserRuntime, asserts the three cfg.files entries get registered and index.html had its template placeholder substituted. - RunSingleTestExit — drives RunSingleTest against tiny sh scripts and pins the documented exit-code mapping (0/77/non-zero) and the Cmd-prefix runner path. Closes #12. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
603840879d
commit
124c2285f9
16 changed files with 794 additions and 0 deletions
|
|
@ -98,6 +98,15 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
// Mirrors how downstream consumers link their own libraries into tests.
|
||||
if (cfg.target == "x86_64-pc-linux-gnu") {
|
||||
cfg.AddTest("HelloWorld").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("StaticLib").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("ModuleInterface").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("DependencyLink").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("ShaderCompile").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("StandardArgs").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("TestRunnerSpec").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("VariantId").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("WasiBrowserRuntime").Dependencies({ crafterBuildLib.get() });
|
||||
cfg.AddTest("RunSingleTestExit").Dependencies({ crafterBuildLib.get() });
|
||||
}
|
||||
|
||||
return cfg;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue