mirror of
https://github.com/golang/go
synced 2024-11-17 15:54:39 -07:00
crypto/tls: make -update only regenerate transcripts for failing tests
Change-Id: Ie68fd4fe2879e6b5417a1a4240971e3d837bf115 Reviewed-on: https://go-review.googlesource.com/c/go/+/204377 Run-TryBot: Filippo Valsorda <filippo@golang.org> Run-TryBot: Katie Hockman <katie@golang.org> Reviewed-by: Katie Hockman <katie@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
bb7890b85a
commit
03aca99f47
@ -499,21 +499,15 @@ func peekError(conn net.Conn) error {
|
||||
}
|
||||
|
||||
func runClientTestForVersion(t *testing.T, template *clientTest, version, option string) {
|
||||
t.Run(version, func(t *testing.T) {
|
||||
// Make a deep copy of the template before going parallel.
|
||||
test := *template
|
||||
if template.config != nil {
|
||||
test.config = template.config.Clone()
|
||||
}
|
||||
|
||||
if !*update {
|
||||
t.Parallel()
|
||||
}
|
||||
|
||||
test.name = version + "-" + test.name
|
||||
test.args = append([]string{option}, test.args...)
|
||||
test.run(t, *update)
|
||||
})
|
||||
|
||||
runTestAndUpdateIfNeeded(t, version, test.run, false)
|
||||
}
|
||||
|
||||
func runClientTestTLS10(t *testing.T, template *clientTest) {
|
||||
|
@ -729,25 +729,19 @@ func (test *serverTest) run(t *testing.T, write bool) {
|
||||
}
|
||||
|
||||
func runServerTestForVersion(t *testing.T, template *serverTest, version, option string) {
|
||||
t.Run(version, func(t *testing.T) {
|
||||
// Make a deep copy of the template before going parallel.
|
||||
test := *template
|
||||
if template.config != nil {
|
||||
test.config = template.config.Clone()
|
||||
}
|
||||
|
||||
if !*update && !template.wait {
|
||||
t.Parallel()
|
||||
}
|
||||
|
||||
test.name = version + "-" + test.name
|
||||
if len(test.command) == 0 {
|
||||
test.command = defaultClientCommand
|
||||
}
|
||||
test.command = append([]string(nil), test.command...)
|
||||
test.command = append(test.command, option)
|
||||
test.run(t, *update)
|
||||
})
|
||||
|
||||
runTestAndUpdateIfNeeded(t, version, test.run, test.wait)
|
||||
}
|
||||
|
||||
func runServerTestTLS10(t *testing.T, template *serverTest) {
|
||||
|
@ -37,17 +37,31 @@ import (
|
||||
// implementation.
|
||||
//
|
||||
// Tests can be updated by running them with the -update flag. This will cause
|
||||
// the test files to be regenerated. Generally one should combine the -update
|
||||
// flag with -test.run to updated a specific test. Since the reference
|
||||
// implementation will always generate fresh random numbers, large parts of
|
||||
// the reference connection will always change.
|
||||
// the test files for failing tests to be regenerated. Since the reference
|
||||
// implementation will always generate fresh random numbers, large parts of the
|
||||
// reference connection will always change.
|
||||
|
||||
var (
|
||||
update = flag.Bool("update", false, "update golden files on disk")
|
||||
update = flag.Bool("update", false, "update golden files on failure")
|
||||
fast = flag.Bool("fast", false, "impose a quick, possibly flaky timeout on recorded tests")
|
||||
keyFile = flag.String("keylog", "", "destination file for KeyLogWriter")
|
||||
)
|
||||
|
||||
func runTestAndUpdateIfNeeded(t *testing.T, name string, run func(t *testing.T, update bool), wait bool) {
|
||||
success := t.Run(name, func(t *testing.T) {
|
||||
if !*update && !wait {
|
||||
t.Parallel()
|
||||
}
|
||||
run(t, false)
|
||||
})
|
||||
|
||||
if !success && *update {
|
||||
t.Run(name+"#update", func(t *testing.T) {
|
||||
run(t, true)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// checkOpenSSLVersion ensures that the version of OpenSSL looks reasonable
|
||||
// before updating the test data.
|
||||
func checkOpenSSLVersion() error {
|
||||
|
Loading…
Reference in New Issue
Block a user