reframe icon indicating copy to clipboard operation
reframe copied to clipboard

Extend Tag matching syntax for disjoint sets

Open jack-morrison opened this issue 2 years ago • 1 comments

The -t option (and inverse -T for exclusion) stacks with multiple uses. For example, -t OSU -t NBC could be used to run just nonblocking collectives from the OSU MPI benchmarks (assuming tests are tagged as such). The docs describe this as:

This option may be specified multiple times, in which case only tests defining or matching all tags will be selected.

To my knowledge, there's not currently a way to match and run sets that don't intersect without an entirely separate invocation of reframe.

My proposal is to extend the syntax to allow grouping. Might need some thought and exploration, but possibly in the format of -t (OSU,NBC),gromacs - where just a subset of the OSU suite is run, and additionally a set of tests matching gromacs that is not overlapping.

jack-morrison avatar Feb 02 '23 14:02 jack-morrison

I think you can still do it now, but in a bit awkward way: -t 'OSU|gromacs' -t 'NBC|gromacs'. Since the arguments of the -t option are applied sequentially (perhaps we need to clarify that better in the docs), the first will filtering in anything that has OSU or gromacs and the second one will filter in the tests that have also NBC or gromacs, so eventually, you end up with the test that define both OSU and NBC and those that define gromacs. I don't know how we could combine that in a syntax that's more compact and still in a way that we can parse its parts out and match them correctly.

vkarak avatar Feb 02 '23 18:02 vkarak