Excellent. Your confirmation helped me focus on the right thing. I
had build type as Asan and had -DLEAKS=ON.
The tests themselves were passing, but there were many leaks that were
causing the tests to fail in that configuration. Is that expected?
My next issue is with coverage. Some [5 and 7 of 28] of the "ninja
lcov-collect" commands fail.
The full output is:
$ ninja lcov-collect
[1/28] cd /home/sk/gnucash/build-debug/libgnucash/backend/xml && lcov
--quiet ...ml.dir -o
/home/sk/gnucash/build-debug/Coverage/gncmod-backend-xml_result.inf
Message summary:
7 ignore messages:
unused: 7
[2/28] cd /home/sk/gnucash/build-debug/libgnucash/gnc-module && lcov
--quiet -...gnc-module.dir -o
/home/sk/gnucash/build-debug/Coverage/gnc-module_result.inf
Message summary:
7 ignore messages:
unused: 7
[3/28] cd /home/sk/gnucash/build-debug/libgnucash/core-utils && lcov
--quiet -...-utils.dir -o
/home/sk/gnucash/build-debug/Coverage/gnc-core-utils_result.inf
Message summary:
7 ignore messages:
unused: 7
[4/28] cd /home/sk/gnucash/build-debug/libgnucash/backend/dbi && lcov
--quiet ...bi.dir -o
/home/sk/gnucash/build-debug/Coverage/gncmod-backend-dbi_result.inf
Message summary:
7 ignore messages:
unused: 7
[5/28] cd /home/sk/gnucash/build-debug/gnucash && lcov --quiet
--exclude "/usr...Files/gnucash.dir -o
/home/sk/gnucash/build-debug/Coverage/gnucash_result.inf
FAILED: gnucash/CMakeFiles/lcov-collect-gnucash
/home/sk/gnucash/build-debug/gnucash/CMakeFiles/lcov-collect-gnucash
cd /home/sk/gnucash/build-debug/gnucash && lcov --quiet --exclude
"/usr/local/*" --exclude "/usr/*" --exclude "//*" --exclude "/usr/*"
--exclude "/home/sk/gnc-dev-install/*" --exclude "/usr/X11R6/*"
--exclude "/usr/pkg/*" --exclude "/opt/*" --ignore-errors
unused,unused --ignore-errors mismatch,mismatch --ignore-errors
empty,empty --rc geninfo_unexecuted_blocks=1 --branch-coverage
--demangle-cpp c++filt -c --directory
/home/sk/gnucash/build-debug/gnucash/CMakeFiles/gnucash.dir -o
/home/sk/gnucash/build-debug/Coverage/gnucash_result.info
Message summary:
10 ignore messages:
empty: 2
unused: 8
[6/28] cd /home/sk/gnucash/build-debug/libgnucash/tax && lcov --quiet
--exclud...le-tax.dir -o
/home/sk/gnucash/build-debug/Coverage/gnc-locale-tax_result.inf
Message summary:
7 ignore messages:
unused: 7
[7/28] cd /home/sk/gnucash/build-debug/gnucash && lcov --quiet
--exclude "/usr...ucash-cli.dir -o
/home/sk/gnucash/build-debug/Coverage/gnucash-cli_result.inf
FAILED: gnucash/CMakeFiles/lcov-collect-gnucash-cli
/home/sk/gnucash/build-debug/gnucash/CMakeFiles/lcov-collect-gnucash-cli
cd /home/sk/gnucash/build-debug/gnucash && lcov --quiet --exclude
"/usr/local/*" --exclude "/usr/*" --exclude "//*" --exclude "/usr/*"
--exclude "/home/sk/gnc-dev-install/*" --exclude "/usr/X11R6/*"
--exclude "/usr/pkg/*" --exclude "/opt/*" --ignore-errors
unused,unused --ignore-errors mismatch,mismatch --ignore-errors
empty,empty --rc geninfo_unexecuted_blocks=1 --branch-coverage
--demangle-cpp c++filt -c --directory
/home/sk/gnucash/build-debug/gnucash/CMakeFiles/gnucash-cli.dir -o
/home/sk/gnucash/build-debug/Coverage/gnucash-cli_result.info
Message summary:
10 ignore messages:
empty: 2
unused: 8
[8/28] cd /home/sk/gnucash/build-debug/libgnucash/backend/xml && lcov
--quiet ...dir -o
/home/sk/gnucash/build-debug/Coverage/gnc-backend-xml-utils_result.inf
Message summary:
7 ignore messages:
unused: 7
[9/28] cd /home/sk/gnucash/build-debug/libgnucash/app-utils && lcov
--quiet --...p-utils.dir -o
/home/sk/gnucash/build-debug/Coverage/gnc-app-utils_result.inf
Message summary:
7 ignore messages:
unused: 7
[10/28] cd /home/sk/gnucash/build-debug/libgnucash/backend/sql && lcov
--quiet...d-sql.dir -o
/home/sk/gnucash/build-debug/Coverage/gnc-backend-sql_result.inf
Message summary:
7 ignore messages:
unused: 7
[11/28] cd /home/sk/gnucash/build-debug/gnucash/gnome && lcov --quiet
--exclud...s/gnc-gnome.dir -o
/home/sk/gnucash/build-debug/Coverage/gnc-gnome_result.inf
Message summary:
7 ignore messages:
unused: 7
[12/28] cd /home/sk/gnucash/build-debug/libgnucash/engine && lcov
--quiet --ex...gnc-engine.dir -o
/home/sk/gnucash/build-debug/Coverage/gnc-engine_result.inf
Message summary:
17 ignore messages:
mismatch: 10
unused: 7
ninja: build stopped: subcommand failed.
When I ran the first command that failed with --verbose instead of
--quiet I got the below. Nothing in there jumps out at me that there
was a problem. I did vefivy that the lcov call returned 1 (not 0) on
the command line.
cd /home/sk/gnucash/build-debug/gnucash && lcov --verbose --exclude
"/usr/local/*" --exclude "/usr/*" --exclude "//*" --exclude "/usr/*"
--exclude "/home/sk/gnc-dev-install/*" --exclude "/usr/X11R6/*"
--exclude "/usr/pkg/*" --exclude "/opt/*" --ignore-errors
unused,unused --ignore-errors mismatch,mismatch --ignore-errors
empty,empty --rc geninfo_unexecuted_blocks=1 --branch-coverage
--demangle-cpp c++filt -c --directory
/home/sk/gnucash/build-debug/gnucash/CMakeFiles/gnucash-cli.dir -o
/home/sk/gnucash/build-debug/Coverage/gnucash-cli_result.info
apply --rc overrides
Capturing coverage data from
/home/sk/gnucash/build-debug/gnucash/CMakeFiles/gnucash-cli.dir
geninfo cmd: '/usr/bin/geninfo
/home/sk/gnucash/build-debug/gnucash/CMakeFiles/gnucash-cli.dir
--toolname lcov --output-filename
/home/sk/gnucash/build-debug/Coverage/gnucash-cli_result.info
--verbose --ignore-errors unused --ignore-errors unused
--ignore-errors mismatch --ignore-errors mismatch --ignore-errors
empty --ignore-errors empty --branch-coverage --rc
geninfo_unexecuted_blocks=1 --demangle-cpp c++filt --exclude
/usr/local/* --exclude /usr/* --exclude //* --exclude /usr/* --exclude
/home/sk/gnc-dev-install/* --exclude /usr/X11R6/* --exclude /usr/pkg/*
--exclude /opt/*'
apply --rc overrides
gcov is '/usr/bin/gcov'
Found gcov version: 14.2.0
Using intermediate gcov format
lcov: applying '--filter region,branch_region' by default - see the
'--no-markers' section in the man page for more information.
Recording 'internal' directories:
/home/sk/gnucash/build-debug/gnucash/CMakeFiles/gnucash-cli.dir
Writing temporary data to /tmp/geninfo_datO8RV
Scanning /home/sk/gnucash/build-debug/gnucash/CMakeFiles/gnucash-cli.dir
for .gcda files ...
using: chunkSize: 1, nchunks:0, intervalLength:0
Finished processing 0 GCDA files
Message summary:
10 ignore messages:
empty: 2
unused: 8
On Sat, Jan 10, 2026 at 11:55 AM John Ralls <[email protected]> wrote:
>
> Stefan,
>
> Something is wrong with your build environment then. The tests should all
> pass. Check the CI on the latest build. We have CI on the Github repo. You
> can see the results by clicking the green check (when they all pass) or red X
> (when something fails) next to commits in history and the latest commit on
> the front page https://github.com/gnucash/gnucash.
>
> What is the output of the first failure, test-exp-parser?
>
> Look at
> https://gnucash.github.io/gnucash/Coverage-HTML/libgnucash/engine/index.html
> instead of
> https://gnucash.github.io/gnucash/Coverage-HTML/build/libgnucash/engine/index.html
> : The difference is that the latter contains those files that are created as
> part of the build process. iso-4217-currencies.c is created from
> iso-4217-currencies.xml
> (https://github.com/Gnucash/gnucash/blob/stable/libgnucash/engine/iso-4217-currencies.xml)
> using the XSLT stylesheet
> https://github.com/Gnucash/gnucash/blob/stable/libgnucash/engine/iso-currencies-to-c.xsl.
>
> Regards,
> John Ralls
>
> On Jan 10, 2026, at 05:53, Stefan Koch <[email protected]> wrote:
>
> Thanks for the reply.
>
> So, I have made a clean debian 13 vm and still have much the same
> errors as I did before.
>
> I am happy to drill down into the issues. I just wanted to make sure
> that my build system is setup properly.
>
> Do people that have been doing ongoing development get the same many
> failures that I do. If so I can get to work on fixing them. If not,
> then I still have an issue with my build setup.
>
> The reason that I think I may not is that if you drill down on the
> coverage page https://gnucash.github.io/gnucash/Coverage-HTML/ into
> the html engine page here:
> https://gnucash.github.io/gnucash/Coverage-HTML/build/libgnucash/engine/index.html,
> the only file that looks to be checked is the iso-4217-currencies.c
> file. That is why I thought there may be a problem. If there was at
> least some coverage on more files in libgnucash/engine I would have
> expected to see them there. I know there are more tests for it.
> Maybe they all fail and therefore are not shown in the coverage
> report.
>
> Drilling down looks confusing. Specifically, the test-cashobject.c
> test does not show up as a failed test, but the
> libgnucash/engine/cashobject.cpp does not show up in the coverage
> summary.
>
> These are the errors I still get on a clean VM:
> The following tests FAILED:
> 1 - test-exp-parser (Failed)
> 3 - test-sx (Failed)
> 4 - test-gnc-quotes (Failed)
> 5 - test-autoclear (Failed)
> 7 - test-kvp-frames (Failed)
> 9 - test-load-xml2 (Failed)
> 10 - test-load-example-account (Failed)
> 11 - test-load-save-files (Failed)
> 12 - test-xml-contents (Failed)
> 14 - test-xml-account (Failed)
> 15 - test-xml-commodity (Failed)
> 16 - test-xml-pricedb (Failed)
> 17 - test-xml-transaction (Failed)
> 19 - test-backend-dbi (Failed)
> 21 - test-sqlbe (Failed)
> 22 - test-gnc-glib-utils (Failed)
> 33 - test-engine (Failed)
> 40 - test-transaction-reversal (Failed)
> 41 - test-transaction-voiding (Failed)
> 51 - test-kvp-value (Failed)
> 59 - test-import-map (Failed)
> 63 - test-load-c (Failed)
> 68 - test-link-module-tax-us (Failed)
> 69 - test-invoice-report-builtin-default (Failed)
> 70 - test-assistant-stock-transaction (Failed)
> 71 - test-load-gnome-utils-module (Failed)
> 72 - test-import-parse (Failed)
> 73 - test-import-pending-matches (Failed)
> 76 - test-aqb (Failed)
> 81 - test-qif-imp (Failed)
> 82 - test-qif-parse (Failed)
> 83 - test-qif-merge-groups (Failed)
> 84 - test-split-register-copy-ops (Failed)
> 85 - test-standard-category-report (Failed)
> 86 - test-standard-net-linechart (Failed)
> 87 - test-standard-net-barchart (Failed)
> 88 - test-cashflow-barchart (Failed)
> 89 - test-charts (Failed)
> 90 - test-transaction (Failed)
> 91 - test-account-summary (Failed)
> 92 - test-balsheet-pnl (Failed)
> 93 - test-income-gst (Failed)
> 94 - test-budget (Failed)
> 95 - test-register (Failed)
> 96 - test-trial-balance (Failed)
> 97 - test-equity-statement (Failed)
> 98 - test-average-balance (Failed)
> 99 - test-ifrs-cost-basis (Failed)
> 100 - test-invoice (Failed)
> 101 - test-new-owner-report (Failed)
> 102 - test-owner-report (Failed)
> 103 - test-portfolios (Failed)
> 104 - test-stress-options (Failed)
> 105 - test-cash-flow (Failed)
> 106 - test-load-report-module (Failed)
> 107 - test-test-extras (Failed)
> 108 - test-commodity-utils (Failed)
> 109 - test-report-utilities (Failed)
> 110 - test-html-utilities-srfi64 (Failed)
> 111 - test-html-fonts (Failed)
> 112 - test-html-chart (Failed)
> 113 - test-report-html (Failed)
> 114 - test-report (Failed)
> 115 - test-scm-query (Failed)
> 116 - test-create-account (Failed)
> 117 - test-core-utils (Failed)
> 118 - test-business-core (Failed)
> 119 - test-scm-engine (Failed)
> 120 - test-scm-kvpvalue (Failed)
> 121 - test-options (Failed)
> 122 - test-scm-utilities (Failed)
> 123 - test-module-deprecation (Failed)
> 124 - test-c-interface (Failed)
> 125 - test-load-app-utils-module (Failed)
> 126 - test-gnc-optiondb (Failed)
> 127 - test-gnc-option-scheme-output (Failed)
> 128 - test-date-utilities (Failed)
> 129 - test-print-queries (Failed)
> 130 - test-scm-query-string (Failed)
> 132 - python-bindings (Failed)
> Errors while running CTest
>
> On Fri, Jan 9, 2026 at 11:32 PM John Ralls <[email protected]> wrote:
>
>
>
>
> On Jan 9, 2026, at 12:54, Stefan Koch <[email protected]> wrote:
> [Removed a bunch of my stuff.]
>
> Working with unit tests would be a great way to learn the code base.
>
> Perhaps you misunderstand how the aggregate for libgnucash/engine is
> computed. 75% doesn’t mean that every file is at 75% coverage or that 75%
> coverage is the worst file. It means that there are 26572 lines and 5301
> functions in all of the files in libgnucash/engine and that 17661 lines and
> 2775 functions are covered. (And yes, that’s not 75% it’s 66.5% of lines and
> 52.3% of functions, the score in this afternoon’s coverage run.
>
> Note that in https://gnucash.github.io/gnucash/Coverage-HTML/ you can drill
> right down to the file to see which functions and lines need attention.
>
> But before you start work you need to get a clean build. All of the tests
> should pass,
>
> Note that Linux has a linkage problem if you have GnuCash installed in a way
> that ld.so.conf can see it: The linux linker isn’t very smart and it will
> link the installed libraries in preference to the just-built ones. That’s
> also true for Guile, which is even less bright. That means that you need to
> construct a build environment that’s isolated from where GnuCash is
> installed. I think the easiest way to do that is to use a flatpak GnuCash for
> your accounting work and develop on the system. More difficult possibilities
> are to set up a build environment in a flatpak sandbox or construct a chroot
> jail to develop in.
>
> One other thing: ninja check is *supposed* to build everything, but I never
> trust it. I always run ninja && ninja check.
>
> If that’s not the problem or if you still can’t get tests to pass after
> isolating your build then you’ll need to dig into the test failures—the
> detailed test output is in ${topbuilddir}//Testing/Temporary/LastTest.log and
> you can run individual tests wth `ctest -R test-name`. Add `-V` and it will
> print the output to stdout as well as to LastTest.log.
>
> Regards,
> John Ralls
>
>
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel