On Wed, Oct 14, 2020 at 10:04 AM Jeff King <peff@xxxxxxxx> wrote: > > On Tue, Oct 13, 2020 at 07:19:44PM +0000, Elijah Newren via GitGitGadget wrote: > > > Many of our test scripts have several "setup" tests. It's a lot easier > > to say > > > > ./t0050-filesystem.sh --run=setup,9 > > I like this direction very well. > > There was a small discussion recently that we might be better off > dropping test script numbers entirely, and allowing selection of script > names by word-hierarchy or regex, too. That's mostly orthogonal to what > you're doing here, but I think this is taking us in a good direction > there. > > > @@ -819,9 +821,8 @@ match_test_selector_list () { > > *) > > if expr "z$selector" : "z[0-9]*[^0-9]" >/dev/null > > then > > - echo "error: $title: invalid non-numeric in test" \ > > - "selector: '$orig_selector'" >&2 > > - exit 1 > > + echo "$title" | grep -q "$selector" && return > > + continue > > fi > > I like that you allow regexes. It's unfortunate that the skip-check > costs us a process in every test. It may not be that big a deal since we > only pay it if you use a non-numeric selector. But I wonder if there's > any reason not to use "expr" here, as well. I originally used [[ $title =~ "$selector" ]] in order to avoid the sub-shell...but that was bash-specific. I briefly looked to see if there was a shell portable way to handle regexes, wasn't having much luck, and decided that this is only likely to arise when people are passing --run and thus only running a single script and they avoid all the subprocesses that would have been invoked inside the test, so it's still a big net win overall. Does expr handle regexes, portably? Or are you suggesting dropping the regex handling and limit it to substring matching? In either case, does using expr save us anything (isn't expr a shell command)?