gnucash stable: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Fri Dec 8 18:07:31 EST 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/e22a57ad (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d92d97ae (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1e85d0b1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6834cb50 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a3f14759 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/dd0b72cd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/087f1350 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6940488d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f67b53a4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fa119f8d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b9b7a9e0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e17ba3cc (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2234fa43 (commit)
	from  https://github.com/Gnucash/gnucash/commit/6bc12898 (commit)



commit e22a57ad26b856f6db52cc0b6cc0450cb263b8f1
Merge: 6bc12898a8 d92d97aef6
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Dec 8 14:56:29 2023 -0800

    Merge John Ralls's 'asan' into stable.

commit d92d97aef618679b1f0309d648c507d5913c63d6
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Dec 5 17:00:52 2023 -0800

    Add Scheme coverage collection with option GUILE_COVERAGE.
    
    This can be used with or without COVERAGE, though if without the
    results will reflect only the Scheme code exercised by the tests.

commit 1e85d0b1158ecfd186fa898f5878efe60f0df708
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Dec 4 11:34:10 2023 -0800

    Add workflow job to generate a coverage report.
    
    URI is https://gnucash.github.io/

commit 6834cb502501a330aca868f7a84dcb9272d0b90e
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Dec 4 10:43:50 2023 -0800

    Implement coverage option
    
    To use pass -DCMAKE_BUILD_TYPE=Debug or Asan -DCOVERAGE=ON and build as
    usual, then do ninja lcov-initialize && ninja check && ninja
    lcov-collect. The result will be a directory, <Builddir>/Coverage
    containing lcov tracefiles, including an aggregate file gnucash.info
    which you can use for further processing. It will also report an overall summary.
    Note that only C/C++ files are included.
    
    There's one more target, lcov-generate-html, that you can run after
    lcov-collect. It will generate a simple website in
    <Builddir>/Coverage-HTML showing coverage by source directory (the
    directories in <Builddir> have coverage for generated files). Each
    directory path is a clickable link to a page that shows coverage for
    each source file; the filenames link to a page for each showing which
    lines have been exercised.

commit a3f14759ab8c40e60c205166c43c7edb32bfbaa8
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Nov 25 11:17:14 2023 -0800

    Asan: Make leak and ODR violation reporting CMake options.
    
    pass -DLEAKS=ON or -DODR=ON to enable these features. They have an
    effect only with CMAKE_BUILD_TYPE=Asan and don't work on Apple because
    Apple clang doesn't enable them.

commit dd0b72cdb5a6419dbcb64b49f5c4249a322e1f83
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Nov 17 15:20:29 2023 -0800

    Fix global array index out of range.
    
    Tests must set the account type to avoid errors in xaccAccountOrder.

commit 087f135085b51aefed7464df291c4f37e862f229
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Nov 9 15:06:15 2023 -0800

    Add coverage option for Asan builds.

commit 6940488d2df518d8fd6c168b0bd3bd088811c4c7
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Wed Nov 1 21:49:48 2023 +0800

    recurrencePeriodTypeToString and recurrenceWeekendAdjustToString g_strdup only when necessary
    
    ... for sql use only. xml use assumes they return a const char*.

commit f67b53a44041be62acfa61b1ff7f1f2d4fc1b0d8
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Oct 30 14:03:50 2023 -0700

    Xml backend tests: Use libgnc-backend-xml-utils instead of sources.
    
    Every test was rebuilding it except for gnc-backend-xml.cpp from
    scratch, no point in that plus the Address Sanitizer needs the
    definition of GncBackendXml.

commit fa119f8d17bb0f4daaa775209d8c4b913f96bdec
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Oct 27 14:07:57 2023 -0700

    Split test other

commit b9b7a9e0094ce89b09b648310da876e1133bb0d5
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Oct 22 14:55:07 2023 -0700

    Add CI job for Asan build.

commit e17ba3cc002bb19f1eb6a966462ce83bb3fa1959
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Oct 22 10:15:44 2023 -0700

    Fix UAF in xaccFreeSplit.
    
    xaccSplitComputeCapGains creates gains_split pointers in both the Cap Gains Split and its Income split to the original split, but the original's gains_split pointer can point to only one of them, the Cap Gains split. When the original split is freed both the Cap Gains split's and its Income split need their gains_split pointers NULLed or when it's the Income split's turn to be freed it will try to deref the dangling pointer.

commit 2234fa433e9e1b343e7b189472804bc431eabbb0
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Oct 21 11:05:03 2023 -0700

    Add Asan build type that enables the Address and UB sanitizers.
    
    Uses generator statements instead of CMAKE_<TYPE>_FLAGS_ASAN to support multiconfig generators like Xcode.



Summary of changes:
 .github/workflows/ci-tests.yml                     |  97 ++++++++++++------
 .github/workflows/coverage.yml                     |  66 ++++++++++++
 CMakeLists.txt                                     |  50 ++++++++++
 bindings/guile/gnc-optiondb.i                      |   4 +-
 bindings/guile/test/srfi64-extras.scm              |   2 +-
 bindings/python/CMakeLists.txt                     |   1 +
 bindings/python/tests/CMakeLists.txt               |  10 +-
 common/cmake_modules/GncAddSchemeTargets.cmake     |  17 ++--
 common/cmake_modules/GncAddTest.cmake              |  80 ++++++++++-----
 common/cmake_modules/GncCoverage.cmake             | 111 +++++++++++++++++++++
 gnucash/CMakeLists.txt                             |   5 +
 gnucash/gnome-search/CMakeLists.txt                |   4 +
 gnucash/gnome-utils/CMakeLists.txt                 |   4 +
 gnucash/gnome/CMakeLists.txt                       |   3 +
 gnucash/html/CMakeLists.txt                        |   5 +
 gnucash/import-export/CMakeLists.txt               |   4 +
 gnucash/import-export/aqb/CMakeLists.txt           |   4 +
 gnucash/import-export/bi-import/CMakeLists.txt     |   4 +
 gnucash/import-export/csv-exp/CMakeLists.txt       |   4 +
 gnucash/import-export/csv-imp/CMakeLists.txt       |   4 +
 .../import-export/customer-import/CMakeLists.txt   |   4 +
 gnucash/import-export/log-replay/CMakeLists.txt    |   4 +
 gnucash/import-export/ofx/CMakeLists.txt           |   4 +
 gnucash/import-export/qif-imp/CMakeLists.txt       |   4 +
 gnucash/register/ledger-core/CMakeLists.txt        |   4 +
 gnucash/register/register-core/CMakeLists.txt      |   4 +
 gnucash/register/register-gnome/CMakeLists.txt     |   4 +
 gnucash/report/CMakeLists.txt                      |   4 +
 libgnucash/app-utils/CMakeLists.txt                |   6 +-
 libgnucash/backend/dbi/CMakeLists.txt              |   4 +
 libgnucash/backend/dbi/gnc-backend-dbi.cpp         |   4 +-
 libgnucash/backend/sql/CMakeLists.txt              |   4 +
 libgnucash/backend/xml/CMakeLists.txt              |   8 ++
 libgnucash/backend/xml/gnc-xml-backend.cpp         |   7 +-
 libgnucash/backend/xml/test/CMakeLists.txt         |  54 ++--------
 libgnucash/core-utils/CMakeLists.txt               |   4 +
 libgnucash/engine/CMakeLists.txt                   |   4 +
 libgnucash/engine/Split.c                          |  12 ++-
 libgnucash/engine/gnc-date.cpp                     |   7 +-
 libgnucash/engine/gnc-timezone.cpp                 |   4 +-
 libgnucash/engine/qofbook.cpp                      |  25 ++++-
 libgnucash/engine/test/gtest-import-map.cpp        |   7 ++
 libgnucash/engine/test/test-guid.cpp               |   2 +-
 libgnucash/engine/test/test-qofbook.c              |   3 -
 libgnucash/engine/test/test-qofobject.c            |   6 +-
 libgnucash/gnc-module/CMakeLists.txt               |   4 +
 libgnucash/tax/CMakeLists.txt                      |   4 +
 47 files changed, 545 insertions(+), 135 deletions(-)
 create mode 100644 .github/workflows/coverage.yml
 create mode 100644 common/cmake_modules/GncCoverage.cmake



More information about the gnucash-patches mailing list