Ilya Bobyr <ilya.bobyr@xxxxxxxxx> writes: > @@ -187,10 +192,70 @@ and either can match the "t[0-9]{4}" part to skip the whole > test, or t[0-9]{4} followed by ".$number" to say which > particular test to skip. > > -Note that some tests in the existing test suite rely on previous > -test item, so you cannot arbitrarily disable one and expect the > -remainder of test to check what the test originally was intended > -to check. > +For an individual test suite --run could be used to specify that > +only some tests should be run or that some tests should be > +excluded from a run. > + > +The argument for --run is a list of individual test numbers or > +ranges with an optional negation prefix that define what tests in > +a test suite to include in the run. A range is two numbers > +separated with a dash and matches a range of tests with both ends > +been included. You may omit the first or the second number to > +mean "from the first test" or "up to the very last test" > +respectively. > + > +Optional prefix of '!' means that the test or a range of tests > +should be excluded from the run. > + > +If --run starts with an unprefixed number or range the initial > +set of tests to run is empty. If the first item starts with '!' > +all the tests are added to the initial set. After initial set is > +determined every test number or range is added or excluded from > +the set one by one, from left to right. > + > +Individual numbers or ranges could be separated either by a space > +or a comma. > + > +For example, common case is to run several setup tests (1, 2, 3) > +and then a specific test (21) that relies on that setup: > + > + $ sh ./t9200-git-cvsexport-commit.sh --run='1 2 3 21' > + > +or: > + > + $ sh ./t9200-git-cvsexport-commit.sh --run=1,2,3,21 > + > +or: > + > + $ sh ./t9200-git-cvsexport-commit.sh --run='-3 21' Good and easily understandable examples. > +To run only tests up to a specific test (21), one could do this: > + > + $ sh ./t9200-git-cvsexport-commit.sh --run='1-21' > + > +or this: > + > + $ sh ./t9200-git-cvsexport-commit.sh --run='-21' These may be redundant, given that the reader would have to have grokked the earlier "-3 21" already at this point. > +As noted above, the test set is built going though items left to > +right, so this: > + > + $ sh ./t9200-git-cvsexport-commit.sh --run='1-4 !3' > + > +will run tests 1, 2, and 4. I do not quite understand what you mean by "left to right"; is that implementation detail necessary for the user of the feature, or is it talking about some limitation coming from the implementation? e.g. perhaps "!3 1-4" would not work as people would expect "do not run 3, but run tests from 1 thru 4 otherwise", and warning against having such an expectation that cannot be fulfilled? > +You may use negation with ranges. The following will run all > +test as a test suite except from 7 upto 11: > + > + $ sh ./t9200-git-cvsexport-commit.sh --run='!7-11' Hmm, that is somewhat counter-intuitive or at least ambiguous. I first thought you would be running everything but skipping 7 thru 11, but your explanation is that it is equivalent to "-6,8-11" (that is, to intersect set "-11" and set "!7"). The above two illustrate the reason rather well why I said it would be better to avoid negation because it would complicate the mental model the user needs to form when using the feature. > +Some tests in a test suite rely on the previous tests performing > +certain actions, specifically some tests are designated as > +"setup" test, so you cannot _arbitrarily_ disable one test and > +expect the rest to function correctly. What this text (moved from the top of this hunk) tells the reader applies to both the traditional t0123.4 and the new "--run=1-3,5-" syntaxes, but the new placement of it make it sound as if it is only for skipping with "--run", especially because the text before this paragraph and also after this paragraph both apply only to "--run". > +--run is mostly useful when you want to focus on a specific test > +and know what you are doing. Or when you want to run up to a > +certain test. Likewise for "and know what you are doing" part. I'd suggest dropping that phrase from here, and/or make it part of the "you cannot randomly omit and expect later ones to work" that covers both ways to skip tests. Thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html