go/src/testing
Russ Cox b5ddc42b46 io/fs, path, path/filepath, testing/fstest: validate patterns in Match, Glob
According to #28614, proposal review agreed in December 2018 that
Match should return an error for failed matches where the unmatched
part of the pattern has a syntax error. (The failed match has to date
caused the scan of the pattern to stop early.)

This change implements that behavior: the match loop continues
scanning to the end of the pattern, even after a confirmed mismatch,
to check whether the pattern is even well-formed.

The change applies to both path.Match and filepath.Match.
Then filepath.Glob and fs.Glob make a single validity-checking
call to Match before beginning their usual processing.

Also update fstest.TestFS to check for correct validation in custom
Glob implementations.

Fixes #28614.

Change-Id: Ic1d35a4bb9c3565184ae83dbefc425c5c96318e7
Reviewed-on: https://go-review.googlesource.com/c/go/+/264397
Trust: Russ Cox <rsc@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
2020-10-23 14:59:03 +00:00
..
fstest io/fs, path, path/filepath, testing/fstest: validate patterns in Match, Glob 2020-10-23 14:59:03 +00:00
internal/testdeps cmd/go, testing, os: fail test that calls os.Exit(0) 2020-08-27 23:19:15 +00:00
iotest all: update references to symbols moved from io/ioutil to io 2020-10-20 18:41:18 +00:00
quick all: shorten some tests 2019-05-22 12:54:00 +00:00
allocs.go
allocs_test.go
benchmark.go testing: print cpu type as label for benchmarks 2020-10-20 21:30:18 +00:00
benchmark_test.go testing: shorten go test -short testing 2019-05-16 03:25:08 +00:00
cover.go
example.go testing: fail Example tests that invoke runtime.Goexit 2020-09-01 20:13:34 +00:00
export_test.go
helper_test.go testing: add benchmark for TB.Helper 2020-09-28 20:51:39 +00:00
helperfuncs_test.go testing: fix reported caller name for funcs passed to Cleanup 2020-05-05 22:44:36 +00:00
match.go
match_test.go
panic_test.go testing: don't run Cleanup functions until parallel subtests complete 2020-01-16 21:32:12 +00:00
run_example.go testing: fail Example tests that invoke runtime.Goexit 2020-09-01 20:13:34 +00:00
run_example_js.go testing: fail Example tests that invoke runtime.Goexit 2020-09-01 20:13:34 +00:00
sub_test.go testing: flush test summaries to stdout atomically when streaming output 2020-09-02 14:22:42 +00:00
testing.go testing: send t.signal only if there is no panic 2020-09-24 19:32:05 +00:00
testing_test.go testing: make TempDir idempotent for both Cleanup and Benchmark 2020-09-05 04:21:49 +00:00