mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-07 10:33:24 -08:00
Rename doc/ to docs/ so GitHub picks up docs/CONTRIBUTING.md and Doxygen keeps including it, and update all references to the old layout: - Doxygen output now goes to docs-output/, exposed by .gitignore - docs workflow triggers on docs/** and publishes docs-output/html - theme submodule moved to docs/doxygen/theme - schema URLs in both XML parsers point at docs/xsd/ - README, developer docs, desktop workflow filters, .dockerignore and gcovr config updated for the new paths The v3 card database schema is kept as docs/xsd/cards_v3.xsd.
63 lines
3 KiB
INI
63 lines
3 KiB
INI
# gcovr configuration for Cockatrice line coverage.
|
|
#
|
|
# Used by .ci/compile.sh --coverage and by hand:
|
|
#
|
|
# cmake -S . -B build/cover -DCMAKE_BUILD_TYPE=Debug -DWITH_SERVER=1 -DTEST=1 -DENABLE_COVERAGE=ON
|
|
# cmake --build build/cover -j 24
|
|
# ctest --test-dir build/cover -LE bench -j 24
|
|
# gcovr build/cover --root . --object-directory build/cover --txt --decisions
|
|
#
|
|
# The point of most of this file is subtraction. A raw report is dominated by code no test can
|
|
# reach: vendored third-party trees, build directories left over from earlier experiments, and
|
|
# the client's main() and window classes, which have no headless test. Those all dilute the one
|
|
# number worth watching, so they are filtered out here rather than in every invocation.
|
|
|
|
# root is deliberately not set here. This file is normally invoked from the build directory
|
|
# (compile.sh runs there, because it configures with `cmake ..`), so a `root` of `.` would
|
|
# resolve to the build tree and every filter below would exclude everything. compile.sh passes
|
|
# --root explicitly instead.
|
|
|
|
# Our own code only. This keeps generated Qt MOC output, protobuf output and anything CMake
|
|
# built under the source tree out of the report.
|
|
filter = ^cockatrice/
|
|
filter = ^libcockatrice_[^/]+/
|
|
filter = ^servatrice/
|
|
filter = ^oracle/
|
|
|
|
# The tests are the vehicle, not the subject. They are compiled with the same instrumentation,
|
|
# so leaving them in would add their near-perfect coverage to the numerator and quietly report a
|
|
# healthier project than we have: test code is only ever executed by the run that is measuring
|
|
# it. Helpers under tests/ are excluded on the same grounds.
|
|
exclude = ^tests/
|
|
|
|
# Vendored third-party code is not ours to cover and is never going to move the number.
|
|
exclude = ^vcpkg/
|
|
exclude = ^docs/doxygen/theme/
|
|
exclude = ^libcockatrice_rng/libcockatrice/rng/sfmt/
|
|
exclude = ^libcockatrice_utility/libcockatrice/utility/peglib\.h$
|
|
exclude = ^oracle/src/lzma/
|
|
exclude = ^oracle/src/qt-json/
|
|
exclude = ^oracle/src/zip/
|
|
exclude = ^servatrice/src/smtp/
|
|
|
|
# Qt's own moc/pch/uic output is generated into the build tree, not the source tree, so the
|
|
# filters above already keep it out. These cover CLion's directories, which sit in-tree and are
|
|
# picked up by the object-directory walk.
|
|
exclude = .*cmake-build-.*
|
|
exclude = .*\.cache/
|
|
|
|
# Process entry points and the client's window chrome. Each of these needs a display, an
|
|
# interactive terminal, or a live database before it does anything a test could observe, so no
|
|
# headless run will ever move them. Left in, they contribute thousands of lines at 0% and drag
|
|
# the total down by a fixed amount that hides movement in the code we can actually test. The
|
|
# window header is excluded with its .cpp because gcovr attributes its inline template code
|
|
# there, which is where most of its line count lives.
|
|
exclude = ^cockatrice/src/main\.cpp$
|
|
exclude = ^cockatrice/src/interface/window_main\.
|
|
exclude = ^oracle/src/main\.cpp$
|
|
exclude = ^servatrice/src/main\.cpp$
|
|
|
|
exclude-throw-branches = yes
|
|
exclude-function-lines = yes
|
|
|
|
print-summary = yes
|