I am recently retired with extra time on my hands and am interested in helping the gnucash project. It seems to have good overlap with my skillset C++, Python/GUI/SQL, some lisp from emacs and older style c coding. To get started, since I don'\t know anything about the codebase, I was thinking about either the python bindings, or the unit test coverage (both of which I saw somewhere needed help).
I got further with unit test coverage, so my question is there. Questions: 1. Is it belived that the end of stable should have clean tests? If so, any suggestions on what I can look for to see what is different on my mashine? 2. Is there any value in the converage report if the tests are failing? 3. The libgnucash/engine coverage is listed at 75%, but when you look at the details, only the iso-4217-currencies.c file is listed at 75%. the libgnucash/engine/tests directory looks like it is doing much more. Since it looks like I have done mostly what the live page did, it does not look so good for the unit test coverage. Is there something I can do to help? Any suggestions on how I can get started? I did the following: git clone https://github.com/Gnucash/gnucash.git cd gnucash cmake -G Ninja -S. -Bbuild-coverage -DCMAKE_INSTALL_PREFIX=$HOME/gnc-dev-install -DWITH_PYTHON=ON -DCOVERAGE=ON -DGUILE_COVERAGE=ON -DLEAKS=ON -DCMAKE_BUILD_TYPE=Asan cd build-coverage ninja lcov-initialize ninja check The ninja check reported errors. I was not expecting that. Here is the straight ctest output (Just the failed lines). 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) 131 - sqlite3test (Failed) 132 - python-bindings (Failed) Then I tried "ninja lcov-collect" to see about the covertage. This failed with: [13/28] cd /home/sk/gnucash/build....-coverage/libgnucash/engine && lcov --quiet --exclude "/usr/loc...gine/CMakeFiles/gnc-engine.dir -o /home/sk/gnucash/build-coverage/Coverage/gnc-engine_result.inf Message summary: 21 ignore messages: mismatch: 14 unused: 7 ninja: build stopped: subcommand failed. I got the full set of commands with "ninja -n lcov-collect" and running all without stoping on failure. Then I did the "ninja lcov-generate-html" which was sucessful. The resulting report looks like one one online at: https://gnucash.github.io/gnucash/Coverage-HTML/ _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
