func setup()

in setuptest/tfutils.go [92:127]


func setup(t *testing.T, moduleDir, testDir string, prep PrepFunc) (Response, error) {
	resp := Response{}
	subdir := filepath.Join(moduleDir, testDir)
	_, err := os.Stat(subdir)
	if os.IsNotExist(err) {
		return resp, err
	}
	resp.t = t
	tmp, cleanup, err := CopyTerraformFolderToTempAndCleanUp(t, moduleDir, testDir)
	if err != nil {
		return resp, err
	}
	resp.TmpDir = tmp
	resp.Options = getDefaultTerraformOptions(t, tmp)

	if prep != nil {
		err = prep(resp)
		if err != nil {
			return resp, err
		}
	}

	l := testExecutor(executor{}).Logger()
	resp.Options.Logger = logger.New(l)
	funcs := []func() error{cleanup}
	c, ok := l.(io.Closer)
	if ok {
		funcs = append(funcs, c.Close)
	}
	resp.Cleanup = func() {
		for _, fn := range funcs {
			_ = fn()
		}
	}
	return resp, nil
}