diff --git a/earlydecoder/tests/decoder.go b/earlydecoder/tests/decoder.go index 93a8aeff..ec3d812c 100644 --- a/earlydecoder/tests/decoder.go +++ b/earlydecoder/tests/decoder.go @@ -4,27 +4,17 @@ package earlydecoder import ( - "sort" - "github.com/hashicorp/hcl/v2" tftest "github.com/hashicorp/terraform-schema/test" ) -func LoadTest(path string, files map[string]*hcl.File) (*tftest.Meta, hcl.Diagnostics) { - var diags hcl.Diagnostics - filenames := make([]string, 0) - +func LoadTest(path string, filename string, file *hcl.File) (*tftest.Meta, hcl.Diagnostics) { mod := newDecodedTest() - for filename, f := range files { - filenames = append(filenames, filename) - fDiags := loadTestFromFile(f, mod) - diags = append(diags, fDiags...) - } + diags := loadTestFromFile(file, mod) - sort.Strings(filenames) + // TODO: a lot of mapping to do here from decoded test to tftest.Meta return &tftest.Meta{ - Path: path, - Filenames: filenames, + Path: path, }, diags } diff --git a/earlydecoder/tests/decoder_test.go b/earlydecoder/tests/decoder_test.go index cfa4a80e..c2f5b5ce 100644 --- a/earlydecoder/tests/decoder_test.go +++ b/earlydecoder/tests/decoder_test.go @@ -35,8 +35,7 @@ func TestLoadTest(t *testing.T) { "empty config", ``, &tftest.Meta{ - Path: path, - Filenames: []string{"test.tftest.hcl"}, + Path: path, }, nil, }, @@ -49,15 +48,13 @@ func TestLoadTest(t *testing.T) { func runTestCases(testCases []testCase, t *testing.T, path string) { for i, tc := range testCases { t.Run(fmt.Sprintf("%d-%s", i, tc.name), func(t *testing.T) { - f, diags := hclsyntax.ParseConfig([]byte(tc.cfg), "test.tftest.hcl", hcl.InitialPos) + file, diags := hclsyntax.ParseConfig([]byte(tc.cfg), "test.tftest.hcl", hcl.InitialPos) if len(diags) > 0 { t.Fatal(diags) } - files := map[string]*hcl.File{ - "test.tftest.hcl": f, - } + filename := "test.tftest.hcl" - meta, diags := LoadTest(path, files) + meta, diags := LoadTest(path, filename, file) if diff := cmp.Diff(tc.expectedError, diags, customComparer...); diff != "" { t.Fatalf("expected errors doesn't match: %s", diff) diff --git a/earlydecoder/tests/load_tests.go b/earlydecoder/tests/load_tests.go index 2758f898..81503dfb 100644 --- a/earlydecoder/tests/load_tests.go +++ b/earlydecoder/tests/load_tests.go @@ -9,6 +9,9 @@ import ( // decodedTest is the type representing a decoded Terraform test. type decodedTest struct { + + // all the blocks of a single test file + } func newDecodedTest() *decodedTest { diff --git a/go.mod b/go.mod index 757324f2..6b994a14 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 github.com/hashicorp/go-version v1.7.0 github.com/hashicorp/hc-install v0.9.0 - github.com/hashicorp/hcl-lang v0.0.0-20241029094326-4b65a8528795 + github.com/hashicorp/hcl-lang v0.0.0-20241206161211-32066ec5d37c github.com/hashicorp/hcl/v2 v2.23.0 github.com/hashicorp/terraform-exec v0.21.0 github.com/hashicorp/terraform-json v0.23.0 @@ -29,11 +29,11 @@ require ( github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect - golang.org/x/crypto v0.28.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.26.0 // indirect - golang.org/x/text v0.19.0 // indirect - golang.org/x/tools v0.26.0 // indirect + golang.org/x/crypto v0.29.0 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.31.0 // indirect + golang.org/x/sync v0.9.0 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.20.0 // indirect + golang.org/x/tools v0.27.0 // indirect ) diff --git a/go.sum b/go.sum index 9addc48c..a64c5aa2 100644 --- a/go.sum +++ b/go.sum @@ -44,8 +44,8 @@ github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKe github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/hc-install v0.9.0 h1:2dIk8LcvANwtv3QZLckxcjyF5w8KVtiMxu6G6eLhghE= github.com/hashicorp/hc-install v0.9.0/go.mod h1:+6vOP+mf3tuGgMApVYtmsnDoKWMDcFXeTxCACYZ8SFg= -github.com/hashicorp/hcl-lang v0.0.0-20241029094326-4b65a8528795 h1:x17XGul8WRQsA0hgJEGtNtp0EpRqK01n3Px4INLqlGc= -github.com/hashicorp/hcl-lang v0.0.0-20241029094326-4b65a8528795/go.mod h1:PyTvJMnm3v2F0Oa654gEfTg2H9muPzYDA46lvaGrRy4= +github.com/hashicorp/hcl-lang v0.0.0-20241206161211-32066ec5d37c h1:veJ7q9pXKHKoEkZ9ymSAWv1yUc20X5+qTrwTtuBwYIA= +github.com/hashicorp/hcl-lang v0.0.0-20241206161211-32066ec5d37c/go.mod h1:5NUxE6UGpjm8iW/pY70BJWunDMkc73d7HTtvefU8B/c= github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVWkd/RG0D2XQ= @@ -80,19 +80,19 @@ github.com/zclconf/go-cty v1.15.1 h1:RgQYm4j2EvoBRXOPxhUvxPzRrGDo1eCOhHXuGfrj5S0 github.com/zclconf/go-cty v1.15.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= -golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= -golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= -golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= +golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= diff --git a/test/meta.go b/test/meta.go index d097c331..bca092f2 100644 --- a/test/meta.go +++ b/test/meta.go @@ -1,9 +1,10 @@ // Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 -package stack +package test type Meta struct { - Path string - Filenames []string + Path string + + RunBlocks []string // TODO: just for testing, change to proper type }