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

Reply via email to