|
@@ -203,34 +203,36 @@ func dump(n *Node) (string, error) {
|
|
|
return b.String(), nil
|
|
return b.String(), nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const testDataDir = "testdata/webkit/"
|
|
|
|
|
|
|
+var testDataDirs = []string{"testdata/webkit/", "testdata/go/"}
|
|
|
|
|
|
|
|
func TestParser(t *testing.T) {
|
|
func TestParser(t *testing.T) {
|
|
|
- testFiles, err := filepath.Glob(testDataDir + "*.dat")
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatal(err)
|
|
|
|
|
- }
|
|
|
|
|
- for _, tf := range testFiles {
|
|
|
|
|
- f, err := os.Open(tf)
|
|
|
|
|
|
|
+ for _, testDataDir := range testDataDirs {
|
|
|
|
|
+ testFiles, err := filepath.Glob(testDataDir + "*.dat")
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
t.Fatal(err)
|
|
|
}
|
|
}
|
|
|
- defer f.Close()
|
|
|
|
|
- r := bufio.NewReader(f)
|
|
|
|
|
-
|
|
|
|
|
- for i := 0; ; i++ {
|
|
|
|
|
- text, want, context, err := readParseTest(r)
|
|
|
|
|
- if err == io.EOF {
|
|
|
|
|
- break
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ for _, tf := range testFiles {
|
|
|
|
|
+ f, err := os.Open(tf)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
t.Fatal(err)
|
|
|
}
|
|
}
|
|
|
|
|
+ defer f.Close()
|
|
|
|
|
+ r := bufio.NewReader(f)
|
|
|
|
|
|
|
|
- err = testParseCase(text, want, context)
|
|
|
|
|
|
|
+ for i := 0; ; i++ {
|
|
|
|
|
+ text, want, context, err := readParseTest(r)
|
|
|
|
|
+ if err == io.EOF {
|
|
|
|
|
+ break
|
|
|
|
|
+ }
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatal(err)
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Errorf("%s test #%d %q, %s", tf, i, text, err)
|
|
|
|
|
|
|
+ err = testParseCase(text, want, context)
|
|
|
|
|
+
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Errorf("%s test #%d %q, %s", tf, i, text, err)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|