|
The process I used to generate the cumulative code coverage for the optimizer was as follows:
1. Build binaries with gcov enabled (mongod, unit test targets)
2. For each binary:
- Run relevant tests (e.g. unit test binary, integration test suites)
- Generate coverage info via lcov -t optimizer_test -o coverage.info -c -d ./build/<path-to-gcda-files> --derive-func-data
- Save coverage.info for later use
3. Once all of the .info files are built, merge them via
lcov --add-tracefile coverage1.info ... -o merged.info
|
4. Generate html files
genhtml -s -o html-directory -t "Code Coverage" --highlight merged.info
|
I only ran the following integration test suites: cqf, cqf_parallel, cqf_disabled_pipeline_opt, cqf_experimental_aggregation_passthrough, cqf_experimental_jscore_passthrough, optimizer_test, core (w/ CQF enabled), aggregation (w/ CQF enabled)
Notably left out: no_passthrough, sbe_abt_test, translation tests, sharding*, cqf_experimental_no_passthrough (no_passthrough takes waaaay too long to run locally)
|