in validator/main.go [30:77]
func main() {
flag.Parse()
startTime := time.Now()
// validator calls test code to get around OOM issue on windows hosts while running go test
if len(*configPath) == 0 && len(*testName) > 0 {
// execute test without parsing or processing configuration yaml
var err error
splitNames := strings.Split(*testName, "/")
switch splitNames[len(splitNames)-1] {
case "restart":
err = restart.Validate()
case "nvidia_gpu":
err = nvidia_gpu.Validate()
case "acceptance":
err = acceptance.Validate()
}
if err != nil {
log.Fatalf("Validator failed with %s: %v", *testName, err)
}
} else {
vConfig, err := models.NewValidateConfig(*configPath)
if err != nil {
log.Fatalf("Failed to create validation config : %v \n", err)
}
if *preparationMode {
if err = prepare(vConfig); err != nil {
log.Fatalf("Prepare for validation failed: %v \n", err)
}
os.Exit(0)
}
err = validate(vConfig)
if err != nil {
log.Fatalf("Failed to validate: %v", err)
}
}
endTime := time.Now()
duration := endTime.Sub(startTime)
log.Printf("Finish validation in %v minutes", duration.Minutes())
}