diff --git a/internal/checks/state_test.go b/internal/checks/state_test.go index 7a0c4c5476a6..179c30107e95 100644 --- a/internal/checks/state_test.go +++ b/internal/checks/state_test.go @@ -19,7 +19,7 @@ func TestChecksHappyPath(t *testing.T) { loader, close := configload.NewLoaderForTests(t) defer close() inst := initwd.NewModuleInstaller(loader.ModulesDir(), loader, nil) - _, instDiags := inst.InstallModules(context.Background(), fixtureDir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) + _, instDiags, _ := inst.InstallModules(context.Background(), fixtureDir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) if instDiags.HasErrors() { t.Fatal(instDiags.Err()) } diff --git a/internal/command/command_test.go b/internal/command/command_test.go index 8b27a10e957e..df81934c597c 100644 --- a/internal/command/command_test.go +++ b/internal/command/command_test.go @@ -159,7 +159,7 @@ func testModuleWithSnapshot(t *testing.T, name string) (*configs.Config, *config // sources only this ultimately just records all of the module paths // in a JSON file so that we can load them below. inst := initwd.NewModuleInstaller(loader.ModulesDir(), loader, registry.NewClient(nil, nil)) - _, instDiags := inst.InstallModules(context.Background(), dir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) + _, instDiags, _ := inst.InstallModules(context.Background(), dir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) if instDiags.HasErrors() { t.Fatal(instDiags.Err()) } diff --git a/internal/command/graph_test.go b/internal/command/graph_test.go index 5357a7fb0ce5..df7314e3ae02 100644 --- a/internal/command/graph_test.go +++ b/internal/command/graph_test.go @@ -107,7 +107,7 @@ func TestGraph_resourcesOnly(t *testing.T) { t.Fatal(err) } inst := initwd.NewModuleInstaller(".terraform/modules", loader, registry.NewClient(nil, nil)) - _, instDiags := inst.InstallModules(context.Background(), ".", "tests", true, false, initwd.ModuleInstallHooksImpl{}) + _, instDiags, _ := inst.InstallModules(context.Background(), ".", "tests", true, false, initwd.ModuleInstallHooksImpl{}) if instDiags.HasErrors() { t.Fatal(instDiags.Err()) } diff --git a/internal/configs/config_build_test.go b/internal/configs/config_build_test.go index 9769258ca811..5d1dc21f1b18 100644 --- a/internal/configs/config_build_test.go +++ b/internal/configs/config_build_test.go @@ -4,6 +4,7 @@ package configs import ( + "context" "fmt" "io/ioutil" "path" @@ -29,8 +30,8 @@ func TestBuildConfig(t *testing.T) { } versionI := 0 - cfg, diags := BuildConfig(mod, ModuleWalkerFunc( - func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + cfg, diags, _ := BuildConfig(context.Background(), mod, ModuleWalkerFunc( + func(ctx context.Context, req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics, *ModuleDeprecationInfo) { // For the sake of this test we're going to just treat our // SourceAddr as a path relative to our fixture directory. // A "real" implementation of ModuleWalker should accept the @@ -40,7 +41,7 @@ func TestBuildConfig(t *testing.T) { mod, diags := parser.LoadConfigDir(sourcePath) version, _ := version.NewVersion(fmt.Sprintf("1.0.%d", versionI)) versionI++ - return mod, version, diags + return mod, version, diags, nil }), MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { return nil, nil @@ -88,8 +89,8 @@ func TestBuildConfigDiags(t *testing.T) { } versionI := 0 - cfg, diags := BuildConfig(mod, ModuleWalkerFunc( - func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + cfg, diags, _ := BuildConfig(context.Background(), mod, ModuleWalkerFunc( + func(ctx context.Context, req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics, *ModuleDeprecationInfo) { // For the sake of this test we're going to just treat our // SourceAddr as a path relative to our fixture directory. // A "real" implementation of ModuleWalker should accept the @@ -99,7 +100,7 @@ func TestBuildConfigDiags(t *testing.T) { mod, diags := parser.LoadConfigDir(sourcePath) version, _ := version.NewVersion(fmt.Sprintf("1.0.%d", versionI)) versionI++ - return mod, version, diags + return mod, version, diags, nil }), MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { return nil, nil @@ -135,8 +136,8 @@ func TestBuildConfigChildModuleBackend(t *testing.T) { t.Fatal("got nil root module; want non-nil") } - cfg, diags := BuildConfig(mod, ModuleWalkerFunc( - func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + cfg, diags, _ := BuildConfig(context.Background(), mod, ModuleWalkerFunc( + func(ctx context.Context, req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics, *ModuleDeprecationInfo) { // For the sake of this test we're going to just treat our // SourceAddr as a path relative to our fixture directory. // A "real" implementation of ModuleWalker should accept the @@ -145,7 +146,7 @@ func TestBuildConfigChildModuleBackend(t *testing.T) { mod, diags := parser.LoadConfigDir(sourcePath) version, _ := version.NewVersion("1.0.0") - return mod, version, diags + return mod, version, diags, nil }), MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { return nil, nil @@ -216,14 +217,14 @@ func TestBuildConfigInvalidModules(t *testing.T) { expectedErrs := readDiags(ioutil.ReadFile(filepath.Join(testDir, name, "errors"))) expectedWarnings := readDiags(ioutil.ReadFile(filepath.Join(testDir, name, "warnings"))) - _, buildDiags := BuildConfig(mod, ModuleWalkerFunc( - func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + _, buildDiags, _ := BuildConfig(context.Background(), mod, ModuleWalkerFunc( + func(ctx context.Context, req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics, *ModuleDeprecationInfo) { // for simplicity, these tests will treat all source // addresses as relative to the root module sourcePath := filepath.Join(path, req.SourceAddr.String()) mod, diags := parser.LoadConfigDir(sourcePath) version, _ := version.NewVersion("1.0.0") - return mod, version, diags + return mod, version, diags, nil }), MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { return nil, nil @@ -306,7 +307,7 @@ func TestBuildConfig_WithMockDataSources(t *testing.T) { t.Fatal("got nil root module; want non-nil") } - cfg, diags := BuildConfig(mod, nil, MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { + cfg, diags, _ := BuildConfig(context.Background(), mod, nil, MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { sourcePath := filepath.Join("testdata/valid-modules/with-mock-sources", provider.MockDataExternalSource) return parser.LoadMockDataDir(sourcePath, hcl.Range{}) })) @@ -337,7 +338,7 @@ func TestBuildConfig_WithMockDataSourcesInline(t *testing.T) { t.Fatal("got nil root module; want non-nil") } - cfg, diags := BuildConfig(mod, nil, MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { + cfg, diags, _ := BuildConfig(context.Background(), mod, nil, MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { sourcePath := filepath.Join("testdata/valid-modules/with-mock-sources-inline", provider.MockDataExternalSource) return parser.LoadMockDataDir(sourcePath, hcl.Range{}) })) @@ -368,8 +369,8 @@ func TestBuildConfig_WithNestedTestModules(t *testing.T) { t.Fatal("got nil root module; want non-nil") } - cfg, diags := BuildConfig(mod, ModuleWalkerFunc( - func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + cfg, diags, _ := BuildConfig(context.Background(), mod, ModuleWalkerFunc( + func(ctx context.Context, req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics, *ModuleDeprecationInfo) { // Bit of a hack to get the test working, but we know all the source // addresses in this test are locals, so we can just treat them as @@ -385,7 +386,7 @@ func TestBuildConfig_WithNestedTestModules(t *testing.T) { mod, diags := parser.LoadConfigDir(sourcePath) version, _ := version.NewVersion("1.0.0") - return mod, version, diags + return mod, version, diags, nil }), MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { return nil, nil @@ -451,8 +452,8 @@ func TestBuildConfig_WithTestModule(t *testing.T) { t.Fatal("got nil root module; want non-nil") } - cfg, diags := BuildConfig(mod, ModuleWalkerFunc( - func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + cfg, diags, _ := BuildConfig(context.Background(), mod, ModuleWalkerFunc( + func(ctx context.Context, req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics, *ModuleDeprecationInfo) { // For the sake of this test we're going to just treat our // SourceAddr as a path relative to our fixture directory. // A "real" implementation of ModuleWalker should accept the @@ -461,7 +462,7 @@ func TestBuildConfig_WithTestModule(t *testing.T) { mod, diags := parser.LoadConfigDir(sourcePath) version, _ := version.NewVersion("1.0.0") - return mod, version, diags + return mod, version, diags, nil }), MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { return nil, nil diff --git a/internal/configs/configload/loader_load.go b/internal/configs/configload/loader_load.go index c9fe02c733e1..67980ed7f22e 100644 --- a/internal/configs/configload/loader_load.go +++ b/internal/configs/configload/loader_load.go @@ -24,15 +24,13 @@ import ( // LoadConfig performs the basic syntax and uniqueness validations that are // required to process the individual modules func (l *Loader) LoadConfig(rootDir string) (*configs.Config, hcl.Diagnostics) { - mod, diags := l.parser.LoadConfigDir(rootDir) - return l.loadConfig(mod, diags) + return l.loadConfig(l.parser.LoadConfigDir(rootDir)) } // LoadConfigWithTests matches LoadConfig, except the configs.Config contains // any relevant .tftest.hcl files. func (l *Loader) LoadConfigWithTests(rootDir string, testDir string) (*configs.Config, hcl.Diagnostics) { - mod, diags := l.parser.LoadConfigDirWithTests(rootDir, testDir) - return l.loadConfig(mod, diags) + return l.loadConfig(l.parser.LoadConfigDirWithTests(rootDir, testDir)) } func (l *Loader) loadConfig(rootMod *configs.Module, diags hcl.Diagnostics) (*configs.Config, hcl.Diagnostics) { diff --git a/internal/configs/parser_test.go b/internal/configs/parser_test.go index 2c57bb20c9a2..1389d5b7aee5 100644 --- a/internal/configs/parser_test.go +++ b/internal/configs/parser_test.go @@ -4,6 +4,7 @@ package configs import ( + "context" "fmt" "os" "path" @@ -48,7 +49,7 @@ func testModuleConfigFromFile(filename string) (*Config, hcl.Diagnostics) { f, diags := parser.LoadConfigFile(filename) mod, modDiags := NewModule([]*File{f}, nil) diags = append(diags, modDiags...) - cfg, moreDiags := BuildConfig(mod, nil, nil) + cfg, moreDiags, _ := BuildConfig(context.Background(), mod, nil, nil) return cfg, append(diags, moreDiags...) } @@ -64,7 +65,7 @@ func testModuleFromDir(path string) (*Module, hcl.Diagnostics) { func testModuleConfigFromDir(path string) (*Config, hcl.Diagnostics) { parser := NewParser(nil) mod, diags := parser.LoadConfigDir(path) - cfg, moreDiags := BuildConfig(mod, nil, nil) + cfg, moreDiags, _ := BuildConfig(context.Background(), mod, nil, nil) return cfg, append(diags, moreDiags...) } @@ -105,8 +106,8 @@ func testNestedModuleConfigFromDir(t *testing.T, path string) (*Config, hcl.Diag func buildNestedModuleConfig(mod *Module, path string, parser *Parser) (*Config, hcl.Diagnostics) { versionI := 0 - return BuildConfig(mod, ModuleWalkerFunc( - func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + cfg, diags, _ := BuildConfig(context.Background(), mod, ModuleWalkerFunc( + func(ctx context.Context, req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics, *ModuleDeprecationInfo) { // For the sake of this test we're going to just treat our // SourceAddr as a path relative to the calling module. // A "real" implementation of ModuleWalker should accept the @@ -124,12 +125,14 @@ func buildNestedModuleConfig(mod *Module, path string, parser *Parser) (*Config, mod, diags := parser.LoadConfigDir(sourcePath) version, _ := version.NewVersion(fmt.Sprintf("1.0.%d", versionI)) versionI++ - return mod, version, diags + return mod, version, diags, nil }), MockDataLoaderFunc(func(provider *Provider) (*MockData, hcl.Diagnostics) { return nil, nil }), ) + + return cfg, diags } func assertNoDiagnostics(t *testing.T, diags hcl.Diagnostics) bool { diff --git a/internal/lang/globalref/analyzer_test.go b/internal/lang/globalref/analyzer_test.go index 5836c28c6bea..960960e4f494 100644 --- a/internal/lang/globalref/analyzer_test.go +++ b/internal/lang/globalref/analyzer_test.go @@ -25,7 +25,7 @@ func testAnalyzer(t *testing.T, fixtureName string) *Analyzer { defer cleanup() inst := initwd.NewModuleInstaller(loader.ModulesDir(), loader, registry.NewClient(nil, nil)) - _, instDiags := inst.InstallModules(context.Background(), configDir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) + _, instDiags, _ := inst.InstallModules(context.Background(), configDir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) if instDiags.HasErrors() { t.Fatalf("unexpected module installation errors: %s", instDiags.Err().Error()) } diff --git a/internal/moduletest/eval_context_test.go b/internal/moduletest/eval_context_test.go index cf08c42445c8..b84f66ce80ae 100644 --- a/internal/moduletest/eval_context_test.go +++ b/internal/moduletest/eval_context_test.go @@ -824,7 +824,7 @@ func testModuleInline(t *testing.T, sources map[string]string) *configs.Config { // sources only this ultimately just records all of the module paths // in a JSON file so that we can load them below. inst := initwd.NewModuleInstaller(loader.ModulesDir(), loader, registry.NewClient(nil, nil)) - _, instDiags := inst.InstallModules(context.Background(), cfgPath, "tests", true, false, initwd.ModuleInstallHooksImpl{}) + _, instDiags, _ := inst.InstallModules(context.Background(), cfgPath, "tests", true, false, initwd.ModuleInstallHooksImpl{}) if instDiags.HasErrors() { t.Fatal(instDiags.Err()) } diff --git a/internal/refactoring/move_validate_test.go b/internal/refactoring/move_validate_test.go index bcf42aced14f..66ba51ff5be2 100644 --- a/internal/refactoring/move_validate_test.go +++ b/internal/refactoring/move_validate_test.go @@ -520,7 +520,7 @@ func loadRefactoringFixture(t *testing.T, dir string) (*configs.Config, instance defer cleanup() inst := initwd.NewModuleInstaller(loader.ModulesDir(), loader, registry.NewClient(nil, nil)) - _, instDiags := inst.InstallModules(context.Background(), dir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) + _, instDiags, _ := inst.InstallModules(context.Background(), dir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) if instDiags.HasErrors() { t.Fatal(instDiags.Err()) } diff --git a/internal/terraform/terraform_test.go b/internal/terraform/terraform_test.go index 3a6d1efed4b0..ec4556a47690 100644 --- a/internal/terraform/terraform_test.go +++ b/internal/terraform/terraform_test.go @@ -68,7 +68,7 @@ func testModuleWithSnapshot(t *testing.T, name string) (*configs.Config, *config // sources only this ultimately just records all of the module paths // in a JSON file so that we can load them below. inst := initwd.NewModuleInstaller(loader.ModulesDir(), loader, registry.NewClient(nil, nil)) - _, instDiags := inst.InstallModules(context.Background(), dir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) + _, instDiags, _ := inst.InstallModules(context.Background(), dir, "tests", true, false, initwd.ModuleInstallHooksImpl{}) if instDiags.HasErrors() { t.Fatal(instDiags.Err()) } @@ -125,7 +125,7 @@ func testModuleInline(t *testing.T, sources map[string]string) *configs.Config { // sources only this ultimately just records all of the module paths // in a JSON file so that we can load them below. inst := initwd.NewModuleInstaller(loader.ModulesDir(), loader, registry.NewClient(nil, nil)) - _, instDiags := inst.InstallModules(context.Background(), cfgPath, "tests", true, false, initwd.ModuleInstallHooksImpl{}) + _, instDiags, _ := inst.InstallModules(context.Background(), cfgPath, "tests", true, false, initwd.ModuleInstallHooksImpl{}) if instDiags.HasErrors() { t.Fatal(instDiags.Err()) }