From 4a9d95a9939c6770bcd4e3c69bddef50aab33cc4 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Mon, 14 Jul 2025 11:41:16 +0200 Subject: [PATCH] Moved error tests to core --- src/core/errors_test.go | 41 +++++++++++++++++++ .../core/testdata}/ParameterCountMismatch.q | 0 .../core/testdata}/ParameterCountMismatch2.q | 0 .../core/testdata}/TypeMismatch.q | 0 .../core/testdata}/UnknownIdentifier.q | 0 .../core/testdata}/UnknownIdentifier2.q | 0 .../core/testdata}/UnknownIdentifier3.q | 0 .../core/testdata}/UnknownIdentifier4.q | 0 .../core/testdata}/UnknownIdentifier5.q | 0 .../core/testdata}/UnknownIdentifier6.q | 0 .../core/testdata}/UnknownIdentifier7.q | 0 tests/errors_test.go | 38 ----------------- 12 files changed, 41 insertions(+), 38 deletions(-) create mode 100644 src/core/errors_test.go rename {tests/errors => src/core/testdata}/ParameterCountMismatch.q (100%) rename {tests/errors => src/core/testdata}/ParameterCountMismatch2.q (100%) rename {tests/errors => src/core/testdata}/TypeMismatch.q (100%) rename {tests/errors => src/core/testdata}/UnknownIdentifier.q (100%) rename {tests/errors => src/core/testdata}/UnknownIdentifier2.q (100%) rename {tests/errors => src/core/testdata}/UnknownIdentifier3.q (100%) rename {tests/errors => src/core/testdata}/UnknownIdentifier4.q (100%) rename {tests/errors => src/core/testdata}/UnknownIdentifier5.q (100%) rename {tests/errors => src/core/testdata}/UnknownIdentifier6.q (100%) rename {tests/errors => src/core/testdata}/UnknownIdentifier7.q (100%) delete mode 100644 tests/errors_test.go diff --git a/src/core/errors_test.go b/src/core/errors_test.go new file mode 100644 index 0000000..b0dbb53 --- /dev/null +++ b/src/core/errors_test.go @@ -0,0 +1,41 @@ +package core_test + +import ( + "path/filepath" + "strings" + "testing" + + "git.urbach.dev/cli/q/src/compiler" + "git.urbach.dev/cli/q/src/config" + "git.urbach.dev/cli/q/src/core" + "git.urbach.dev/go/assert" +) + +var errs = []struct { + File string + ExpectedError error +}{ + {"ParameterCountMismatch.q", &core.ParameterCountMismatch{Function: "main.f", Count: 0, ExpectedCount: 1}}, + {"ParameterCountMismatch2.q", &core.ParameterCountMismatch{Function: "main.f", Count: 2, ExpectedCount: 1}}, + {"TypeMismatch.q", &core.TypeMismatch{Encountered: "string", Expected: "int64", ParameterName: "x", IsReturn: false}}, + {"UnknownIdentifier.q", &core.UnknownIdentifier{Name: "x"}}, + {"UnknownIdentifier2.q", &core.UnknownIdentifier{Name: "x"}}, + {"UnknownIdentifier3.q", &core.UnknownIdentifier{Name: "x"}}, + {"UnknownIdentifier4.q", &core.UnknownIdentifier{Name: "unknown"}}, + {"UnknownIdentifier5.q", &core.UnknownIdentifier{Name: "unknown"}}, + {"UnknownIdentifier6.q", &core.UnknownIdentifier{Name: "os"}}, + {"UnknownIdentifier7.q", &core.UnknownIdentifier{Name: "os.unknown"}}, +} + +func TestErrors(t *testing.T) { + for _, test := range errs { + name := strings.TrimSuffix(test.File, ".q") + + t.Run(name, func(t *testing.T) { + b := config.New(filepath.Join("testdata", test.File)) + _, err := compiler.Compile(b) + assert.NotNil(t, err) + assert.Contains(t, err.Error(), test.ExpectedError.Error()) + }) + } +} \ No newline at end of file diff --git a/tests/errors/ParameterCountMismatch.q b/src/core/testdata/ParameterCountMismatch.q similarity index 100% rename from tests/errors/ParameterCountMismatch.q rename to src/core/testdata/ParameterCountMismatch.q diff --git a/tests/errors/ParameterCountMismatch2.q b/src/core/testdata/ParameterCountMismatch2.q similarity index 100% rename from tests/errors/ParameterCountMismatch2.q rename to src/core/testdata/ParameterCountMismatch2.q diff --git a/tests/errors/TypeMismatch.q b/src/core/testdata/TypeMismatch.q similarity index 100% rename from tests/errors/TypeMismatch.q rename to src/core/testdata/TypeMismatch.q diff --git a/tests/errors/UnknownIdentifier.q b/src/core/testdata/UnknownIdentifier.q similarity index 100% rename from tests/errors/UnknownIdentifier.q rename to src/core/testdata/UnknownIdentifier.q diff --git a/tests/errors/UnknownIdentifier2.q b/src/core/testdata/UnknownIdentifier2.q similarity index 100% rename from tests/errors/UnknownIdentifier2.q rename to src/core/testdata/UnknownIdentifier2.q diff --git a/tests/errors/UnknownIdentifier3.q b/src/core/testdata/UnknownIdentifier3.q similarity index 100% rename from tests/errors/UnknownIdentifier3.q rename to src/core/testdata/UnknownIdentifier3.q diff --git a/tests/errors/UnknownIdentifier4.q b/src/core/testdata/UnknownIdentifier4.q similarity index 100% rename from tests/errors/UnknownIdentifier4.q rename to src/core/testdata/UnknownIdentifier4.q diff --git a/tests/errors/UnknownIdentifier5.q b/src/core/testdata/UnknownIdentifier5.q similarity index 100% rename from tests/errors/UnknownIdentifier5.q rename to src/core/testdata/UnknownIdentifier5.q diff --git a/tests/errors/UnknownIdentifier6.q b/src/core/testdata/UnknownIdentifier6.q similarity index 100% rename from tests/errors/UnknownIdentifier6.q rename to src/core/testdata/UnknownIdentifier6.q diff --git a/tests/errors/UnknownIdentifier7.q b/src/core/testdata/UnknownIdentifier7.q similarity index 100% rename from tests/errors/UnknownIdentifier7.q rename to src/core/testdata/UnknownIdentifier7.q diff --git a/tests/errors_test.go b/tests/errors_test.go deleted file mode 100644 index 1b21d49..0000000 --- a/tests/errors_test.go +++ /dev/null @@ -1,38 +0,0 @@ -package tests_test - -import ( - "path/filepath" - "testing" - - "git.urbach.dev/cli/q/src/compiler" - "git.urbach.dev/cli/q/src/config" - "git.urbach.dev/cli/q/src/core" - "git.urbach.dev/go/assert" -) - -var errs = []struct { - Name string - ExpectedError error -}{ - {"ParameterCountMismatch", &core.ParameterCountMismatch{Function: "main.f", Count: 0, ExpectedCount: 1}}, - {"ParameterCountMismatch2", &core.ParameterCountMismatch{Function: "main.f", Count: 2, ExpectedCount: 1}}, - {"TypeMismatch", &core.TypeMismatch{Encountered: "string", Expected: "int64", ParameterName: "x", IsReturn: false}}, - {"UnknownIdentifier", &core.UnknownIdentifier{Name: "x"}}, - {"UnknownIdentifier2", &core.UnknownIdentifier{Name: "x"}}, - {"UnknownIdentifier3", &core.UnknownIdentifier{Name: "x"}}, - {"UnknownIdentifier4", &core.UnknownIdentifier{Name: "unknown"}}, - {"UnknownIdentifier5", &core.UnknownIdentifier{Name: "unknown"}}, - {"UnknownIdentifier6", &core.UnknownIdentifier{Name: "os"}}, - {"UnknownIdentifier7", &core.UnknownIdentifier{Name: "os.unknown"}}, -} - -func TestErrors(t *testing.T) { - for _, test := range errs { - t.Run(test.Name, func(t *testing.T) { - build := config.New(filepath.Join("errors", test.Name+".q")) - _, err := compiler.Compile(build) - assert.NotNil(t, err) - assert.Contains(t, err.Error(), test.ExpectedError.Error()) - }) - } -} \ No newline at end of file -- 2.51.2