This diff makes the individual boost tests output a junit report XML,
and merge them in order to produce a test suite junit report. The final
report is located under a `test/junit` dir under the build directory.
This requires a few behavior changes and implies some limitations:
- The boost test suites always produce the junit report. The report merger script always run as part of the test suite, even if there is no junit report.A new option `ENABLE_JUNIT_REPORT` (disabled by default) let the boost tests generate a Junit report, In this case it simply has no effectand proceed incremental merge of the results to a test suite report.
- The test suites that generate a junit report no longer- A test fail on first failed test, but let the whole suite run to completion.ure will stop the build process, This allows for generatingand the result won't appear in the mergedJunit report if a test failby default. This won't prevent a test suite failure from stopping the buildOne need to run `ninja` with the `-k0` flag to change this behavior and potentially otherallow the test suites won't to run to completeion.
- The test suite duration reported is not the actual duration, because it can't account for the tests running parallel. The reported duration is equivalent to running the tests serially.
- The incremental nature of the report makes it impossible to clear the content by running the tests. Each test will override its previous run but not impact the other tests, independently of what is being run. To clear the report, `ninja clean` should be used.