mirror of
https://github.com/golang/go
synced 2024-11-11 22:50:22 -07:00
cmd/go: add -benchtime to cacheable test flags
Add -benchtime to the list of flags that allow caching test results. If -benchtime is set without -bench, no benchmarks are run. The cache does not need to be invalidated in this case. If -benchtime is set with -bench, benchmarks are run. The cache is invalidated due to the -bench flag in this case. Fixes #44555 Change-Id: I2eb5c9f389a587d150fb984590d145251d0fa2dc Reviewed-on: https://go-review.googlesource.com/c/go/+/304689 Reviewed-by: Jay Conrod <jayconrod@google.com> Reviewed-by: Bryan C. Mills <bcmills@google.com> Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
82a1e0f9d3
commit
74fe516c35
@ -1408,8 +1408,8 @@
|
||||
//
|
||||
// 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 -cpu, -list,
|
||||
// -parallel, -run, -short, and -v. If a run of go test has any test
|
||||
// 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
|
||||
|
@ -118,8 +118,8 @@ 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 -cpu, -list,
|
||||
-parallel, -run, -short, and -v. If a run of go test has any test
|
||||
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
|
||||
@ -1333,7 +1333,8 @@ func (c *runCache) tryCacheWithID(b *work.Builder, a *work.Action, id string) bo
|
||||
return false
|
||||
}
|
||||
switch arg[:i] {
|
||||
case "-test.cpu",
|
||||
case "-test.benchtime",
|
||||
"-test.cpu",
|
||||
"-test.list",
|
||||
"-test.parallel",
|
||||
"-test.run",
|
||||
|
13
src/cmd/go/testdata/script/test_cache_inputs.txt
vendored
13
src/cmd/go/testdata/script/test_cache_inputs.txt
vendored
@ -99,6 +99,15 @@ rm $WORK/external.txt
|
||||
go test testcache -run=ExternalFile
|
||||
stdout '\(cached\)'
|
||||
|
||||
# The -benchtime flag without -bench should not affect caching.
|
||||
go test testcache -run=Benchtime -benchtime=1x
|
||||
go test testcache -run=Benchtime -benchtime=1x
|
||||
stdout '\(cached\)'
|
||||
|
||||
go test testcache -run=Benchtime -bench=Benchtime -benchtime=1x
|
||||
go test testcache -run=Benchtime -bench=Benchtime -benchtime=1x
|
||||
! stdout '\(cached\)'
|
||||
|
||||
# Executables within GOROOT and GOPATH should affect caching,
|
||||
# even if the test does not stat them explicitly.
|
||||
|
||||
@ -228,6 +237,10 @@ func TestExternalFile(t *testing.T) {
|
||||
func TestOSArgs(t *testing.T) {
|
||||
t.Log(os.Args)
|
||||
}
|
||||
|
||||
func TestBenchtime(t *testing.T) {
|
||||
}
|
||||
|
||||
-- mkold.go --
|
||||
package main
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user