diff --git a/internal/configs/test_file.go b/internal/configs/test_file.go index cbf7c7620e..b902384adf 100644 --- a/internal/configs/test_file.go +++ b/internal/configs/test_file.go @@ -8,6 +8,7 @@ import ( "github.com/hashicorp/hcl/v2" "github.com/hashicorp/hcl/v2/gohcl" + "github.com/hashicorp/hcl/v2/hclsyntax" "github.com/hashicorp/terraform/internal/addrs" "github.com/hashicorp/terraform/internal/getmodules" @@ -437,6 +438,16 @@ func decodeTestRunBlock(block *hcl.Block) (*TestRun, hcl.Diagnostics) { NameDeclRange: block.LabelRanges[0], DeclRange: block.DefRange, } + + if !hclsyntax.ValidIdentifier(r.Name) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid run block name", + Detail: badIdentifierDetail, + Subject: r.NameDeclRange.Ptr(), + }) + } + for _, block := range content.Blocks { switch block.Type { case "assert": diff --git a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/main.tftest.hcl b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/main.tftest.hcl index fbd536f519..adf7a650e0 100644 --- a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/main.tftest.hcl +++ b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/main.tftest.hcl @@ -11,7 +11,7 @@ provider "bar" { run "default_should_be_fine" {} -run "bit_complicated_still_okay "{ +run "bit_complicated_still_okay" { providers = { foo = foo diff --git a/internal/configs/testdata/invalid-modules/tests-invalid-run-blocks/main.tf b/internal/configs/testdata/invalid-modules/tests-invalid-run-blocks/main.tf new file mode 100644 index 0000000000..2c5e585478 --- /dev/null +++ b/internal/configs/testdata/invalid-modules/tests-invalid-run-blocks/main.tf @@ -0,0 +1,8 @@ + +resource "aws_instance" "web" { + ami = "ami-1234" + security_groups = [ + "foo", + "bar", + ] +} diff --git a/internal/configs/testdata/invalid-modules/tests-invalid-run-blocks/main.tftest.hcl b/internal/configs/testdata/invalid-modules/tests-invalid-run-blocks/main.tftest.hcl new file mode 100644 index 0000000000..16bd35eb92 --- /dev/null +++ b/internal/configs/testdata/invalid-modules/tests-invalid-run-blocks/main.tftest.hcl @@ -0,0 +1,2 @@ + +run "contains spaces" {}