PR #983 added a hard SQLite3 system dependency to CMakeLists.txt, but
the workflow only installed libqt6sql6-sqlite (Qt's runtime driver
plugin), not the C headers/library find_package(SQLite3) needs. Every
PR based on current master has been failing CI with "Could NOT find
SQLite3" since #983 merged.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
draw-bezier-curves only exists as SVG in the qet icon theme; on
Debian/Ubuntu the SVG icon engine lives in qt6-svg-plugins, which
--no-install-recommends leaves out. breeze-icon-theme is not needed:
the test uses the qet theme compiled into the binary.
The ubuntu:26.04 container has no icon theme, so
QIcon::fromTheme() returns null icons and tst_qeticons fails
on first CI run. Install breeze-icon-theme so the test runs
against a real theme, as it does on developer machines.
Nothing currently builds QElectroTech on Linux in CI, and nothing runs tests/
at all -- the existing workflows build Windows and generate documentation.
Adds one job: configure and build with Qt 6 Debug, run ctest, then run the
IPC open-forwarding regression test.
Verified by running the job's exact step sequence in a clean ubuntu:26.04
container, in both directions:
with the #868 fix 5/5 unit tests pass, gate passes, job green
with the fix reverted 5/5 unit tests pass, gate fails, job red
The unit tests passing in both arms is the point: the existing suite cannot
see this class of bug, which is what the gate is for.
Three choices that are not cosmetic:
- Runs in an ubuntu:26.04 container rather than on the runner. ubuntu-latest
ships Qt 6.4; the gate needs 6.10.2, and whether the crash reproduces on
6.4 has never been checked. A job that cannot go red is worse than none.
- Debug, not Release. The pre-fix commit survives every attempt built
-O3 -DNDEBUG, so a Release job would never catch a regression here.
- An inconclusive gate run warns rather than fails. It means the crash path
was not exercised, which proves nothing and is not the same as a
regression; failing on it would make the job flaky rather than useful.
extra-cmake-modules and the KF6 libraries are installed rather than left to
FetchContent, which otherwise builds ECM from source and fails the configure
demanding Qt6 documentation tools.
Depends on the regression test added in #871.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>