mirror of
https://github.com/golang/go
synced 2024-11-26 07:17:59 -07:00
cmd/go: go test flag -failfast should be cacheable
Add failfast to cacheable list and update docs
Fixes #47355
Change-Id: I75b371c45b80a3b179ff070b7b9d092a504380c0
GitHub-Last-Rev: abe61fd48c
GitHub-Pull-Request: golang/go#47371
Reviewed-on: https://go-review.googlesource.com/c/go/+/337229
Reviewed-by: Jay Conrod <jayconrod@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
0f85b0c0e1
commit
ace1730a41
@ -1446,16 +1446,16 @@
|
||||
// The rule for a match in the cache is that the run involves the same
|
||||
// test binary and the flags on the command line come entirely from a
|
||||
// restricted set of 'cacheable' test flags, defined as -benchtime, -cpu,
|
||||
// -list, -parallel, -run, -short, and -v. If a run of go test has any test
|
||||
// or non-test flags outside this set, the result is not cached. To
|
||||
// disable test caching, use any test flag or argument other than the
|
||||
// cacheable flags. The idiomatic way to disable test caching explicitly
|
||||
// is to use -count=1. Tests that open files within the package's source
|
||||
// root (usually $GOPATH) or that consult environment variables only
|
||||
// match future runs in which the files and environment variables are unchanged.
|
||||
// A cached test result is treated as executing in no time at all,
|
||||
// so a successful package test result will be cached and reused
|
||||
// regardless of -timeout setting.
|
||||
// -list, -parallel, -run, -short, -timeout, -failfast, and -v.
|
||||
// If a run of go test has any test or non-test flags outside this set,
|
||||
// the result is not cached. To disable test caching, use any test flag
|
||||
// or argument other than the cacheable flags. The idiomatic way to disable
|
||||
// test caching explicitly is to use -count=1. Tests that open files within
|
||||
// the package's source root (usually $GOPATH) or that consult environment
|
||||
// variables only match future runs in which the files and environment
|
||||
// variables are unchanged. A cached test result is treated as executing
|
||||
// in no time at all,so a successful package test result will be cached and
|
||||
// reused regardless of -timeout setting.
|
||||
//
|
||||
// In addition to the build flags, the flags handled by 'go test' itself are:
|
||||
//
|
||||
|
@ -119,16 +119,16 @@ elapsed time in the summary line.
|
||||
The rule for a match in the cache is that the run involves the same
|
||||
test binary and the flags on the command line come entirely from a
|
||||
restricted set of 'cacheable' test flags, defined as -benchtime, -cpu,
|
||||
-list, -parallel, -run, -short, and -v. If a run of go test has any test
|
||||
or non-test flags outside this set, the result is not cached. To
|
||||
disable test caching, use any test flag or argument other than the
|
||||
cacheable flags. The idiomatic way to disable test caching explicitly
|
||||
is to use -count=1. Tests that open files within the package's source
|
||||
root (usually $GOPATH) or that consult environment variables only
|
||||
match future runs in which the files and environment variables are unchanged.
|
||||
A cached test result is treated as executing in no time at all,
|
||||
so a successful package test result will be cached and reused
|
||||
regardless of -timeout setting.
|
||||
-list, -parallel, -run, -short, -timeout, -failfast, and -v.
|
||||
If a run of go test has any test or non-test flags outside this set,
|
||||
the result is not cached. To disable test caching, use any test flag
|
||||
or argument other than the cacheable flags. The idiomatic way to disable
|
||||
test caching explicitly is to use -count=1. Tests that open files within
|
||||
the package's source root (usually $GOPATH) or that consult environment
|
||||
variables only match future runs in which the files and environment
|
||||
variables are unchanged. A cached test result is treated as executing
|
||||
in no time at all,so a successful package test result will be cached and
|
||||
reused regardless of -timeout setting.
|
||||
|
||||
In addition to the build flags, the flags handled by 'go test' itself are:
|
||||
|
||||
@ -1351,6 +1351,7 @@ func (c *runCache) tryCacheWithID(b *work.Builder, a *work.Action, id string) bo
|
||||
"-test.run",
|
||||
"-test.short",
|
||||
"-test.timeout",
|
||||
"-test.failfast",
|
||||
"-test.v":
|
||||
// These are cacheable.
|
||||
// Note that this list is documented above,
|
||||
|
@ -108,6 +108,12 @@ go test testcache -run=Benchtime -bench=Benchtime -benchtime=1x
|
||||
go test testcache -run=Benchtime -bench=Benchtime -benchtime=1x
|
||||
! stdout '\(cached\)'
|
||||
|
||||
# golang.org/issue/47355: that includes the `-failfast` argument.
|
||||
go test testcache -run=TestOSArgs -failfast
|
||||
! stdout '\(cached\)'
|
||||
go test testcache -run=TestOSArgs -failfast
|
||||
stdout '\(cached\)'
|
||||
|
||||
# Executables within GOROOT and GOPATH should affect caching,
|
||||
# even if the test does not stat them explicitly.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user