Skip to content
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

Collect addional info in mixin #206

Merged
merged 11 commits into from
Nov 30, 2024

Conversation

casparvl
Copy link
Collaborator

@casparvl casparvl commented Nov 14, 2024

Solves #196

Note that the nodenames on which the test is run are already logged by the ReFrame framework, so we don't need to do that.

Discussed on the ReFrame slack channel. The challenge is that we want the variables from the batch nodes, so it has to be printed with postrun_cmds. But then, we need to get it from the output, and into a ReFrame variable so that it is logged. Those need to be initialized in the class body. Then can be updated with the output of the extracted information. We use sanity functions to extract from the output, catching the SanityError that is produced if there is no match (as we don't want the test to fail because of this). Note that SanityError's are actually expected for runs on local software stack, since then the EESSI_* environment variables are not set, and the pattern match fails. That's fine, we just want the variables to read 'None' in those cases.

@casparvl casparvl marked this pull request as ready for review November 14, 2024 21:22
eessi/testsuite/eessi_mixin.py Outdated Show resolved Hide resolved
eessi/testsuite/eessi_mixin.py Outdated Show resolved Hide resolved
eessi/testsuite/eessi_mixin.py Outdated Show resolved Hide resolved
Comment on lines 205 to 211
try:
software_subdir = sn.extractsingle(r'EESSI_SOFTWARE_SUBDIR: (?P<subdir>.*)$',
f'{self.stagedir}/{self.stdout}', 'subdir', str)
if software_subdir:
self.cvmfs_software_subdir = f'{software_subdir}'
except SanityError:
pass
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

Comment on lines 213 to 220
try:
module_path = sn.extractsingle(r'FULL_MODULEPATH: (?P<modpath>.*)$', f'{self.stagedir}/{self.stdout}',
'modpath', str)
print(f"Full modulepath: {module_path}")
if module_path:
self.full_modulepath = f'{module_path}'
except SanityError:
pass
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

@casparvl casparvl requested a review from smoors November 28, 2024 12:12
@smoors
Copy link
Collaborator

smoors commented Nov 28, 2024

one test fails, and the check hangs.

[ FAIL ] (187/402) EESSI_GROMACS %benchmark_info=HECBioSim/hEGFRtetramerPair %nb_impl=cpu %scale=16_nodes %module_name=GROMACS/2024.4-foss-2023b /96a01fe4 @github_actions_eessi:default+default
==> test failed during 'run_wait': test staged in '/home/runner/work/test-suite/test-suite/stage/github_actions_eessi/default/default/EESSI_GROMACS_96a01fe4'

@casparvl any idea why this happens?

EDIT: problem is dry-run, see suggestion below (i took the liberty to commit it directly into your PR)

Copy link
Collaborator

@smoors smoors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good after skipping extract_runtime_info_from_log for dry-runs, thanks a lot @casparvl !

@smoors smoors merged commit 8054e92 into EESSI:main Nov 30, 2024
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants