in infra/blueprint-test/pkg/krmt/krm.go [105:166]
func NewKRMBlueprintTest(t testing.TB, opts ...krmtOption) *KRMBlueprintTest {
krmt := &KRMBlueprintTest{
name: fmt.Sprintf("%s KRM Blueprint", t.Name()),
t: t,
setters: make(map[string]string),
updatePkgs: true,
timeout: "10m",
}
// default KRM blueprint methods
krmt.init = krmt.DefaultInit
krmt.apply = krmt.DefaultApply
krmt.verify = krmt.DefaultVerify
krmt.teardown = krmt.DefaultTeardown
// apply options
for _, opt := range opts {
opt(krmt)
}
// if no custom logger, set default based on test verbosity
if krmt.logger == nil {
krmt.logger = utils.GetLoggerFromT()
}
// if explicit exampleDir is provided, validate it else try auto discovery
if krmt.exampleDir != "" {
_, err := os.Stat(krmt.exampleDir)
if os.IsNotExist(err) {
t.Fatalf("Dir path %s does not exist", krmt.exampleDir)
}
} else {
exampleDir, err := discovery.GetConfigDirFromTestDir(utils.GetWD(t))
if err != nil {
t.Fatalf("unable to detect KRM dir :%v", err)
}
krmt.exampleDir = exampleDir
}
// if explicit resourcesDir is provided, validate it.
if len(krmt.additionalResources) != 0 {
for _, path := range krmt.additionalResources {
_, err := os.Stat(path)
if os.IsNotExist(err) {
t.Fatalf("Path for additional resources %s does not exist", path)
}
}
}
// discover test config
var err error
krmt.BlueprintTestConfig, err = discovery.GetTestConfig(path.Join(krmt.exampleDir, discovery.DefaultTestConfigFilename))
if err != nil {
t.Fatal(err)
}
// if no explicit build directory is provided, setup build directory
if krmt.buildDir == "" {
krmt.buildDir = krmt.getDefaultBuildDir()
}
// configure kpt to run in buildDir
krmt.kpt = kpt.NewCmdConfig(t, kpt.WithDir(krmt.buildDir))
// get well known setters from env vars
krmt.getKnownSettersFromEnv()
krmt.logger.Logf(krmt.t, "Running tests KRM configs in %s", krmt.exampleDir)
return krmt
}