-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lcov error detection #264
Comments
Sounds good. 3 questions:
|
Any errors that happen without
Good question. Perhaps all of them, the whole test suite twice. Skipping the upload to codecov.
Hmm, that is a problem. |
|
I think it would be better to follow a more gradual method, have knowledge about how widespread the issues are (generate reports). open github issues.
|
|
There really are errors being generated by the standard library, clang, g++, when testing with lcov 2.3. Any of those, since they are out of our control, probably need to be set as |
I can do when I have some more time. But it really is just:
|
This may be terribly inefficient, but how about a "git submodule foreach ...' Run |
I'm not sure I understand your intention for that. |
You had said "... not sure how to run all tests from all libs."
yes, that could be helpful to avoid a disk space issue. there are a lot of libraries. |
It may be necessary to run the report with LCOV_IGNORE_ERRORS_LEVEL=all so the test doesn't crash early. Hopefully |
I'm not sure either. We have basically It looks like collecting coverage is done on the boost-root folder, and in a 2nd step filtered to the current library, i.e. We could a) build and run tests for all libraries before collecting coverage or b) build, test and collect coverage for each library in a clean state. That takes much longer as libraries will be built multiple times (dependencies...) but might provide better errors as it isn't a fail-all-or-nothing. But still it might fail a library because a dependency is faulty. So my comment is about the 2nd step, the |
In connection with PR 263, this is a feature idea.
The newer lcov displays more warnings and errors than before. Find a way to view those errors, not always suppressing them.
In
codecov.sh
include an optional section that's enabled by a variable LCOV_ERROR_DETECTION. When that is enabled, an extra run of lcov proceeds and doesn't include theignore-errors
flag. Without theignore-errors
flag, all warnings and errors may occur.set +e
so bash doesn't exit when the command crashes.The result is that warnings and errors are shown in the CI logs.
lcov
should likely run twice. The first time withoutignore-errors
. The second time as normal, completing successfully.Since most repositories will ignore the above feature, and not enable it, add a scheduled github actions cron job to run in boost-ci.
Once per month, it will checkout the entire superproject and run lcov on all subprojects.
There will certainly be lcov errors, especially setting the lcov version to the latest (2.3).
All the errors will appear in the boost-ci CI log, once per month.
Parse the results. Display a table of number of errors per boost library.
The text was updated successfully, but these errors were encountered: