-
Notifications
You must be signed in to change notification settings - Fork 1
DAOS-17679 build: Support gcov in functional tests #482
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
base: master
Are you sure you want to change the base?
Conversation
Optionally provide *.gcno files to functional test stages and stash any code coverage reports generated by the stage. Signed-off-by: Phil Henderson <[email protected]>
Signed-off-by: Phil Henderson <[email protected]>
Signed-off-by: Phil Henderson <[email protected]>
JohnMalmberg
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See #481 for handling doing if a stash does not exist so that a missing stash does not abort post processing or archiving of data from a failed run.
| if (test_rpms && config['stashes']){ | ||
| // we don't need (and might not even have) stashes if testing | ||
| // from RPMs | ||
| dir('/tmp/stashes') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Jenkins groovy code should only be accessing directories in its own workspace and not be accessing the /tmp directory.
The /tmp directory of a CI build agent is shared with all agents that run on that host that are not docker containers or VMs.
For where runTestFunctionalV2 runs, all CI build agents are currently sharing the same /tmp directory, but that is likely to change in the future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This optional feature is needed to provide *.gcno files created in build stages that will eventually be placed into a temporary directory on each provisioned host. When this is used we'll need to run a govr command to generate a code coverage report using these unstashed files + *.gcda files generated on each host from running the tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/tmp can not be used for that. Currently we have two Jenkins build agents with separate /tmp directories and DevOPS is working on bringing up more.
Absolutely no guarantee that anything a stage writes to /tmp will be readable by a different stage trying to read from /tmp.
And no guarantee that a Jenkins agent will be only used by a single Jenkins host.
/tmp is also relatively very small on purpose, and can not be used for large files.
If you need to pass files changed between stages a single job, currently the only method available is to stash it and then unstash it later to a workspace.
If you need to compare it with a previous job, it needs to be saved as an artifact and then copy artifact can retrieve it.
Signed-off-by: Phil Henderson <[email protected]>
Optionally provide *.gcno files to functional test stages and stash any code coverage reports generated by the stage.