-
Type: Improvement
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: 3.5.1
-
Component/s: Testing Infrastructure
-
None
-
Fully Compatible
-
TIG 2017-04-17
SERVER-27408 introduced a way for resmoke to accept multiple copies of tag-related arguments. This allowed resmoke arguments for a variant, task, and suite to be concatenated easily.
As part of the change, each tag-related argument is only allowed decrease the number of tests run. (E.g setting includeWithAnyTag will not override a previous excludeWithAnyTag; it will only filter whatever tests remain after the excludeWithAnyTag filter has run.) This is to ensure resmoke's arguments are impervious to ordering, which is the expected behavior of command line arguments.
A side effect of the strict filtering requirement is that --excludeWithAllTags=t1 --excludeWithAllTag=t2 can not mean the same thing as --excludeWithAllTags=t1,t2, since the latter has a narrower exclusion scope, even though it is what users would expect.
Currently, resmoke implements the incorrect behavior, so that it is at least consistent with users' expectations. Implementing the correct behavior requires quite a bit of work and will be confusing to users.
Given that no one is using excludeWithAllTags and includeWithAllTags at the moment, the quickest fix is to remove support for the includeWithAllTags and excludeWithAllTags command line arguments and include_with_all_tags and exclude_with_all_tags YAML options in the suite definition.