Make dfmodules integtests more friendly for computers with limited resources #452
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
A few weeks ago, I noticed messages in one or more Slack channels that talked about
dfmodulesintegtests consuming all of the memory on np04-srv-016 when the tests were run on that computer. I believe that the biggest offender washdf5_compression_test.The first change in this set was to reduce the latency buffer size that is used in the
hdf5_compression_testfrom a very large value to a more reasonable value. I don't remember where that very large value came from, but it was probably left over from a debugging session when the test was first developed. The test seems to run fine with the new smaller value.Beyond that, I realized that we could/should make the
dfmodulestests more user friendly when they are run on computers that have limited resources. In particular, we should make consistent use of the pattern that we have in other integtests in which we check for sufficient resources and skip the test if insufficient resources are available on the current computer.To avoid copy/pasting all of the resource-checking code among all of the integtests, I created a helper class in the
integrationtestrepo that does the work of checking the requested resources and formatting strings that describe any problems that are found. This means that these changes are dependent on ones in theintegrationtestrepo.The general pattern for using the helper class is the following:
drunccommand if insufficient resources are available (run a very simple command like "wait 1" instead)pytesttests, check if sufficient resource were found, and usepytest.skipto skip the test if notI've run these changes on
daq.fnal.gov,np04-srv-002,np04-srv-005, andnp04-srv-016, and that all worked (with certain tests being appropriately skipped when resources were limited, and with the understanding that thehdf5_compression_testand themax_file_size_testcurrently produce logfile complaints about gRPC ping messages).Testing Suggestions
Here are suggested steps for testing these changes:
Correlated Issues and/or PRs
A feature branch name of
kbiery/integtest_resource_protectionsis used in both repositories.Useful coordination
No special coordination will be needed for merging these changes to
developbranches beyond announcing the merges on the appropriate Slack channel.