func test()

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
}