aboutsummaryrefslogtreecommitdiff
path: root/tester/tester_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tester/tester_test.go')
-rw-r--r--tester/tester_test.go93
1 files changed, 48 insertions, 45 deletions
diff --git a/tester/tester_test.go b/tester/tester_test.go
index 957d739..fb007ca 100644
--- a/tester/tester_test.go
+++ b/tester/tester_test.go
@@ -1,6 +1,7 @@
package tester
import (
+ "fmt"
"strings"
"testing"
@@ -58,7 +59,7 @@ Test
foo bar baz
---
(s
- (foo) (bar) (baz))
+ (foo 'foo') (bar 'bar') (baz 'baz'))
`,
},
{
@@ -69,7 +70,7 @@ Test
foo ? baz
---
(s
- (foo) (error) (baz))
+ (foo 'foo') (error) (baz 'baz'))
`,
},
{
@@ -116,55 +117,57 @@ foo foo foo
---
(s
(foos
- (foo) (foo) (foo)))
+ (foo 'foo') (foo 'foo') (foo 'foo')))
`,
},
}
- for _, tt := range tests {
- ast, err := gspec.Parse(strings.NewReader(tt.grammarSrc))
- if err != nil {
- t.Fatal(err)
- }
- b := grammar.GrammarBuilder{
- AST: ast,
- }
- g, err := b.Build()
- if err != nil {
- t.Fatal(err)
- }
- cg, _, err := grammar.Compile(g)
- if err != nil {
- t.Fatal(err)
- }
- c, err := tspec.ParseTestCase(strings.NewReader(tt.testSrc))
- if err != nil {
- t.Fatal(err)
- }
- tester := &Tester{
- Grammar: cg,
- Cases: []*TestCaseWithMetadata{
- {
- TestCase: c,
- },
- },
- }
- rs := tester.Run()
- if tt.error {
- errOccurred := false
- for _, r := range rs {
- if r.Error != nil {
- errOccurred = true
- }
+ for i, tt := range tests {
+ t.Run(fmt.Sprintf("#%v", i), func(t *testing.T) {
+ ast, err := gspec.Parse(strings.NewReader(tt.grammarSrc))
+ if err != nil {
+ t.Fatal(err)
+ }
+ b := grammar.GrammarBuilder{
+ AST: ast,
+ }
+ g, err := b.Build()
+ if err != nil {
+ t.Fatal(err)
+ }
+ cg, _, err := grammar.Compile(g)
+ if err != nil {
+ t.Fatal(err)
}
- if !errOccurred {
- t.Fatal("this test must fail, but it passed")
+ c, err := tspec.ParseTestCase(strings.NewReader(tt.testSrc))
+ if err != nil {
+ t.Fatal(err)
}
- } else {
- for _, r := range rs {
- if r.Error != nil {
- t.Fatalf("unexpected error occurred: %v", r.Error)
+ tester := &Tester{
+ Grammar: cg,
+ Cases: []*TestCaseWithMetadata{
+ {
+ TestCase: c,
+ },
+ },
+ }
+ rs := tester.Run()
+ if tt.error {
+ errOccurred := false
+ for _, r := range rs {
+ if r.Error != nil {
+ errOccurred = true
+ }
+ }
+ if !errOccurred {
+ t.Fatal("this test must fail, but it passed")
+ }
+ } else {
+ for _, r := range rs {
+ if r.Error != nil {
+ t.Fatalf("unexpected error occurred: %v", r.Error)
+ }
}
}
- }
+ })
}
}