func main()

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())

}