# Wires the conformance suite into ctest, so `ctest -L conformance` — the check
# .github/workflows/ci.yml's `conformance` job runs, and the one BRANCH_PROTECTION.md
# names as required "when tests/conformance/ lands" — actually runs it. Without this file
# that job's presence-check finds neither a CMakeLists.txt nor a package.json here and
# silently no-ops to a green "skipped", forever: the M0 exit gate would never actually
# gate anything. Owned by lane PROTO.
#
# One ctest entry shells out to run.sh — the exact command tests/conformance/README.md
# tells a human to run locally. That is deliberate: there is exactly one definition of
# "the suite passed", not a CMake-flavoured near-duplicate of it that can drift from the
# real one. The native (C++) half also gets its own finer-grained test via add_subdirectory
# below, for a lane iterating on core/generated/ who doesn't want npm's cost every run.

add_subdirectory(cpp)

add_test(
    NAME conformance
    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/run.sh
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
set_tests_properties(conformance PROPERTIES
    LABELS "conformance"
    # Installs two npm trees and runs a ten-minute-capable suite end to end; generous but
    # not unbounded, so a genuinely hung mockd fails the job instead of the runner.
    TIMEOUT 600
)
