# Newer versions of gcovr have strict function merging by default, which
# can cause issues with header-only functions or macros (like in jsontest.h).
# 'separate' mode keeps them distinct, fixing the GcovrMergeAssertionError.
merge-mode-functions = separate

# --- Filtering ---
# Only include the library sources in the coverage report.
# This ensures coverage stats reflect the library quality and ignores test code.
filter = src/lib_json/
filter = include/json/

# --- Noise Reduction ---
# Ignore branches that are generated by the compiler (e.g., exception handling)
# This drastically reduces "false positives" for missing branch coverage.
exclude-throw-branches = yes

# --- CI Visibility ---
# Print a small summary table to the console logs.
print-summary = yes
