test_all: allow configuring a multiplier for the timeout #5734

This commit is contained in:
Nick Craig-Wood 2021-10-20 17:34:56 +01:00
parent 72c013c6f4
commit ff801e8e17
2 changed files with 10 additions and 2 deletions

View File

@ -37,6 +37,7 @@ type Backend struct {
Ignore []string // test names to ignore the failure of
Tests []string // paths of tests to run, blank for all
ListRetries int // -list-retries if > 0
ExtraTime float64 // factor to multiply the timeout by
}
// includeTest returns true if this backend should be included in this
@ -91,6 +92,7 @@ func (b *Backend) MakeRuns(t *Test) (runs []*Run) {
SizeLimit: int64(maxSize),
Ignore: ignore,
ListRetries: b.ListRetries,
ExtraTime: b.ExtraTime,
}
if t.AddBackend {
run.Path = path.Join(run.Path, b.Backend)

View File

@ -46,7 +46,8 @@ type Run struct {
NoBinary bool // set to not build a binary
SizeLimit int64 // maximum test file size
Ignore map[string]struct{}
ListRetries int // -list-retries if > 0
ListRetries int // -list-retries if > 0
ExtraTime float64 // multiply the timeout by this
// Internals
CmdLine []string
CmdString string
@ -337,7 +338,12 @@ func (r *Run) Init() {
} else {
r.CmdLine = []string{"./" + r.BinaryName()}
}
r.CmdLine = append(r.CmdLine, prefix+"v", prefix+"timeout", timeout.String(), "-remote", r.Remote)
testTimeout := *timeout
log.Printf("extra time: %f", r.ExtraTime)
if r.ExtraTime > 0 {
testTimeout = time.Duration(float64(testTimeout) * r.ExtraTime)
}
r.CmdLine = append(r.CmdLine, prefix+"v", prefix+"timeout", testTimeout.String(), "-remote", r.Remote)
listRetries := *listRetries
if r.ListRetries > 0 {
listRetries = r.ListRetries