Something went wrong. Try again.
🌱 A minimal programming language and compiler. git.urbach.dev/cli/q
high-performance programming-language compiler
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package scanner_test
import ( "path/filepath" "strings" "testing"
"git.urbach.dev/cli/q/src/config" "git.urbach.dev/cli/q/src/scanner" "git.urbach.dev/go/assert")
var errs = []struct { File string ExpectedError error}{ {"ExpectedFunctionDefinition.q", scanner.ExpectedFunctionDefinition}, {"ExpectedFunctionDefinition2.q", scanner.ExpectedFunctionDefinition}, {"ExpectedPackageName.q", scanner.ExpectedPackageName}, {"InvalidCharacter.q", &scanner.InvalidCharacter{Character: "@"}}, {"InvalidCharacter2.q", &scanner.InvalidCharacter{Character: "@"}}, {"InvalidCharacter3.q", &scanner.InvalidCharacter{Character: "@"}}, {"InvalidCharacter4.q", &scanner.InvalidCharacter{Character: "@"}}, {"InvalidExpression.q", scanner.InvalidExpression}, {"InvalidFunctionDefinition.q", scanner.InvalidFunctionDefinition}, {"InvalidFunctionDefinition2.q", scanner.InvalidFunctionDefinition}, {"InvalidParameterName.q", scanner.InvalidParameterName}, {"InvalidTopLevel.q", scanner.InvalidTopLevel}, {"InvalidTopLevel2.q", scanner.InvalidTopLevel}, {"InvalidTopLevel3.q", scanner.InvalidTopLevel}, {"MissingAssign.q", scanner.MissingAssign}, {"MissingAssignOrBlock.q", scanner.MissingAssignOrBlock}, {"MissingBlockEnd.q", scanner.MissingBlockEnd}, {"MissingBlockEnd2.q", scanner.MissingBlockEnd}, {"MissingBlockEnd3.q", scanner.MissingBlockEnd}, {"MissingBlockEnd4.q", scanner.MissingBlockEnd}, {"MissingBlockEnd5.q", scanner.MissingBlockEnd}, {"MissingBlockEnd6.q", scanner.MissingBlockEnd}, {"MissingBlockEnd7.q", scanner.MissingBlockEnd}, {"MissingBlockEnd8.q", scanner.MissingBlockEnd}, {"MissingBlockStart.q", scanner.MissingBlockStart}, {"MissingExpression.q", scanner.MissingExpression}, {"MissingGroupEnd.q", scanner.MissingGroupEnd}, {"MissingGroupEnd2.q", scanner.MissingGroupEnd}, {"MissingGroupStart.q", scanner.MissingGroupStart}, {"MissingParameter.q", scanner.MissingParameter}, {"MissingParameter2.q", scanner.MissingParameter}, {"MissingParameter3.q", scanner.MissingParameter}, {"MissingParameter4.q", scanner.MissingParameter}, {"MissingParameter5.q", scanner.MissingParameter}, {"MissingParameterType.q", scanner.MissingParameterType}, {"UnexpectedIdentifier.q", &scanner.UnexpectedIdentifier{Keyword: "func", Name: "main"}}, {"UnexpectedIdentifier2.q", &scanner.UnexpectedIdentifier{Keyword: "fn", Name: "main"}}, {"UnexpectedIdentifier3.q", &scanner.UnexpectedIdentifier{Keyword: "def", Name: "main"}}, {"UnknownImport.q", &scanner.UnknownImport{Package: "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", "errors", test.File)) _, err := scanner.Scan(b) assert.NotNil(t, err) assert.Equal(t, err.Error(), test.ExpectedError.Error()) }) }}