freepdfeditor/test/CMakeLists.txt

27 lines
1.5 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 (L1L6), 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")