27 lines
1.5 KiB
CMake
27 lines
1.5 KiB
CMake
# SPDX-License-Identifier: GPL-3.0-or-later
|
||
# SPDX-FileCopyrightText: 2025 ai-ad4 and the FreePDFEditor contributors
|
||
# test/CMakeLists.txt
|
||
#
|
||
# Unit and gate tests. The M0 scaffold ships a single smoke test that proves
|
||
# the build produces a runnable artefact and the spike runner emits the
|
||
# contract JSON the CI pipeline parses. As the layers land (L1–L6), each gets
|
||
# its own test executable under here, all registered with CTest.
|
||
|
||
# We do not pull GoogleTest yet — the first tests are plain freestanding mains
|
||
# returning non-zero on failure, which keeps the M0 scaffold dependency-free
|
||
# and lets CI on all three platforms run ctest without a vcpkg build of gtest.
|
||
# A later milestone swaps in GTest once there is real C++ logic to assert on.
|
||
|
||
add_executable(test_spike_runner_contract test_spike_runner_contract.cpp)
|
||
target_compile_features(test_spike_runner_contract PRIVATE cxx_std_20)
|
||
freepdfeditor_apply_warnings(test_spike_runner_contract)
|
||
freepdfeditor_apply_hardening(test_spike_runner_contract)
|
||
add_test(NAME spike_runner_contract COMMAND test_spike_runner_contract)
|
||
|
||
# Pixel-diff harness scaffolding (§8.2 gate: render vs Ghostscript+PDFium
|
||
# reference). The actual comparison runs against a corpus that lives in the
|
||
# separate freepdfeditor-corpus repo (§13.2 rule 5); this scaffold is a
|
||
# self-contained Python script that CI invokes with paths to the corpus and
|
||
# the reference binaries.
|
||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../ci/pixel-diff/run_pixel_diff.py"
|
||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/freepdfeditor/ci") |