acvptool: factor out getResultsWithRetry

Change-Id: Iae74a5d82715e16eacfc73e02a1b8190d06cdbc8
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/55607
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: Adam Langley <agl@google.com>
fips-20230428
Adam Langley 2 years ago committed by Boringssl LUCI CQ
parent 02397c7c97
commit d77fdbff01
  1. 51
      util/fipstools/acvp/acvptool/acvp.go

@ -428,6 +428,32 @@ func connect(config *Config, sessionTokensCacheDir string) (*acvp.Server, error)
return server, nil
}
func getResultsWithRetry(server *acvp.Server, url string) (bool, error) {
FetchResults:
for {
var results acvp.SessionResults
if err := server.Get(&results, trimLeadingSlash(url)+"/results"); err != nil {
return false, errors.New("failed to fetch session results: " + err.Error())
}
if results.Passed {
log.Print("Test passed")
return true, nil
}
for _, result := range results.Results {
if result.Status == "incomplete" {
log.Print("Server hasn't finished processing results. Waiting 10 seconds.")
time.Sleep(10 * time.Second)
continue FetchResults
}
}
log.Printf("Server did not accept results: %#v", results)
return false, nil
}
}
func main() {
flag.Parse()
@ -683,26 +709,9 @@ func main() {
os.Exit(0)
}
FetchResults:
for {
var results acvp.SessionResults
if err := server.Get(&results, trimLeadingSlash(url)+"/results"); err != nil {
log.Fatalf("Failed to fetch session results: %s", err)
}
if results.Passed {
log.Print("Test passed")
break
}
for _, result := range results.Results {
if result.Status == "incomplete" {
log.Print("Server hasn't finished processing results. Waiting 10 seconds.")
time.Sleep(10 * time.Second)
continue FetchResults
}
}
log.Fatalf("Server did not accept results: %#v", results)
if ok, err := getResultsWithRetry(server, url); err != nil {
log.Fatal(err)
} else if !ok {
os.Exit(1)
}
}

Loading…
Cancel
Save