sparkengine-validation-and-qa

Guides test registration, execution, and CI gate validation for the SparkEngine C++ test suite.

31|3|Updated Jul 26, 2025
One-click install
npx skills add https://github.com/Krilliac/SparkEngine --skill sparkengine-validation-and-qa-krilliac
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sparkengine-validation-and-qa
Source: https://github.com/Krilliac/SparkEngine/tree/main/.claude/skills/sparkengine-validation-and-qa
Command: npx skills add https://github.com/Krilliac/SparkEngine --skill sparkengine-validation-and-qa-krilliac

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? SparkEngine's custom test framework makes it easy for tests to silently never run — unregistered files, empty filter selections, and waived flaky tests can all produce green runs that prove nothing. This Skill provides the verified runbook for registering tests, selecting and running them, interpreting results honestly, and knowing which CI checks actually block a PR. ## Core Features & Use Cases - Test registration and execution: Explains the single-executable SparkTests model, the Tests/CMakeLists.txt registry, the check-test-registration.sh guard, and SPARK_TEST_NAME/FILE/EXCLUDE/LIMIT selectors plus CLI flags like --junit-xml, --shuffle, and --empty-is-error. - Sanitizer and coverage lanes: Documents how to reproduce ASan/UBSan/LSan, TSan, and MSan CI runs locally, including suppression files, presets, and which lanes are blocking versus advisory. - CI gate truth table: Distinguishes required versus advisory checks in build.yml, including verified cases where advertised thresholds (coverage, annotation counts, clang-tidy scope) are not actually enforced. - Use Case: You add Tests/TestNavMesh.cpp but it never runs in CI. This Skill tells you to register it in Tests/CMakeLists.txt, run bash tools/check-test-registration.sh, filter with SPARK_TEST_FILE=TestNavMesh.cpp, and RED-proof the test by watching it fail before trusting the pass. ## Quick Start Ask the assistant to register a new SparkEngine test file and run only that test with the SparkTests selectors, then verify it appears in the run summary count.

Frequently Asked Questions about sparkengine-validation-and-qa

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a single test in SparkEngine's SparkTests suite?

Set SPARK_TEST_NAME to a test-name substring or SPARK_TEST_FILE to the source filename, then run the SparkTests binary directly. Always confirm the summary line shows the expected test count, because a filter matching nothing exits 0 with zero tests run.

Why is my new C++ test file not running in CI?

SparkTests has no discovery step: a test runs only if its .cpp is listed in Tests/CMakeLists.txt. Run bash tools/check-test-registration.sh to find orphaned files, noting it only globs top-level Tests/Test*.cpp and is not wired into CI.

Does SparkEngine use Google Test or Catch2 for testing?

No. SparkEngine uses a custom zero-dependency framework in Tests/TestFramework.h with one-argument TEST(name) macros and EXPECT_/ASSERT_ assertions, all compiled into a single SparkTests executable. Two-argument TEST forms and SPARK_TEST macros do not exist.

How do I reproduce ASan or TSan sanitizer failures locally?

Configure a Debug build with -DBUILD_TESTS=ON and the same flags CI uses, such as -fsanitize=address,undefined or -fsanitize=thread, then run ./bin/SparkTests. Presets ci-linux-asan and ci-linux-tsan exist in CMakePresets.json, with suppressions in Tests/lsan_suppressions.txt and tsan_suppressions.txt.

Which CI checks actually block a SparkEngine pull request?

Blocking jobs include check-format, the ASan/TSan builds, Windows VS2022, GCC and Clang Linux builds, coverage, clang-tidy, and build-installer. MSan, VS2026, MinGW-wine, and macOS are advisory, and coverage per-subsystem thresholds never fail the job due to a || true in the workflow.

When should I not use this validation runbook?

Do not use it for CMake configure or build failures, launching built engine binaries, debugging engine runtime behavior, or researching past regressions. Those belong to the sibling build-ci, run-package, debugging, and failure-archaeology skills respectively.