in internal/testers/multi/cmd.go [94:122]
func test(testers []tester, failFast bool) error {
metadataPath := filepath.Join(artifacts.BaseDir(), "metadata.json")
backupMetdataPath := metadataPath + ".bak"
if err := os.Rename(metadataPath, backupMetdataPath); err != nil {
klog.Errorf("failed to backup driver metadata: %v", err)
}
var testerErrs []error
for _, tester := range testers {
if err := tester.run(); err != nil {
klog.Errorf("tester failed: %+v: %v", tester, err)
testerErrs = append(testerErrs, fmt.Errorf("%+v: %v", tester, err))
if failFast {
break
}
}
// reset the metadata.json file
// testers will try to set the tester-version key and cause conflicts
if err := os.Remove(metadataPath); err != nil {
return fmt.Errorf("failed to delete tester metadata: %v", err)
}
}
if err := os.Rename(backupMetdataPath, metadataPath); err != nil {
return fmt.Errorf("failed to restore driver metadata: %v", err)
}
if len(testerErrs) > 0 {
return errors.Join(testerErrs...)
}
return nil
}