As an experiment, I decided to see how hard it would be to build fossil instrumented for code coverage and run the full test suite. Turns out it wasn't that hard to do, although it did require both configure and make to be invoked with special conditions.

The result also ran a lot slower, but that isn't really a surprise.

The surprise to me is that the test cases in json.test achieve 83% coverage of code in [cj]son*.c. That is much higher than I expected from just running down the document and trying to do one of each thing listed that can be done without much concern for edge cases or provoking errors.

After running for 8 hours, the full test suite completed, and it measures about 38% coverage over the whole source kit. That figure did include sqlite3.c (at just over 40% itself, but also fully half of the executable lines of code) which we know is well covered by its own test suite. I had also built with miniz, which was 64% covered, but I don't know what formal testing it has externally.

I plan to stare at the result of that for a bit, and will report back with a list of areas where it seems like we could (and likely should) improve coverage from the regression test suite.

I'd be happy to share a zip of *.gcno, *.gcda, and *.gcov if anyone is interested in the raw data.

--
Ross Berteig                               r...@cheshireeng.com
Cheshire Engineering Corp.           http://www.CheshireEng.com/
+1 626 303 1602
_______________________________________________
fossil-dev mailing list
fossil-dev@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to