From a3857c4e90fa4a3fbe78bd4b53cdc77aa91533cf Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Sat, 26 Aug 2017 21:36:08 +0200 Subject: pkg/compiler, sys/syz-sysgen: move const handling to pkg/compiler Now pkg/compiler deals with consts. --- pkg/ast/parser_test.go | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) (limited to 'pkg/ast/parser_test.go') diff --git a/pkg/ast/parser_test.go b/pkg/ast/parser_test.go index 43587d7a3..809a0beaf 100644 --- a/pkg/ast/parser_test.go +++ b/pkg/ast/parser_test.go @@ -30,23 +30,31 @@ func TestParseAll(t *testing.T) { errorHandler := func(pos Pos, msg string) { t.Fatalf("%v:%v:%v: %v", pos.File, pos.Line, pos.Col, msg) } - top, ok := Parse(data, file.Name(), errorHandler) - if !ok { + desc := Parse(data, file.Name(), errorHandler) + if desc == nil { t.Fatalf("parsing failed, but no error produced") } - data2 := Format(top) - top2, ok2 := Parse(data2, file.Name(), errorHandler) - if !ok2 { + data2 := Format(desc) + desc2 := Parse(data2, file.Name(), errorHandler) + if desc2 == nil { t.Fatalf("parsing failed, but no error produced") } - if len(top) != len(top2) { - t.Fatalf("formatting number of top level decls: %v/%v", len(top), len(top2)) + if len(desc.Nodes) != len(desc2.Nodes) { + t.Fatalf("formatting number of top level decls: %v/%v", + len(desc.Nodes), len(desc2.Nodes)) } - // While sys files are not formatted, formatting in fact changes it. - for i := range top { - if !reflect.DeepEqual(top[i], top2[i]) { - t.Fatalf("formatting changed code:\n%#v\nvs:\n%#v", top[i], top2[i]) + for i := range desc.Nodes { + n1, n2 := desc.Nodes[i], desc2.Nodes[i] + if n1 == nil { + t.Fatalf("got nil node") } + if !reflect.DeepEqual(n1, n2) { + t.Fatalf("formatting changed code:\n%#v\nvs:\n%#v", n1, n2) + } + } + data3 := Format(Clone(desc)) + if !bytes.Equal(data, data3) { + t.Fatalf("Clone lost data") } } } @@ -57,8 +65,7 @@ func TestParse(t *testing.T) { errorHandler := func(pos Pos, msg string) { t.Logf("%v:%v:%v: %v", pos.File, pos.Line, pos.Col, msg) } - toplev, ok := Parse([]byte(test.input), "foo", errorHandler) - _, _ = toplev, ok + Parse([]byte(test.input), "foo", errorHandler) }) } } @@ -134,17 +141,17 @@ func TestErrors(t *testing.T) { t.Fatalf("failed to scan input file: %v", err) } var got []*Error - top, ok := Parse(stripped, "test", func(pos Pos, msg string) { + desc := Parse(stripped, "test", func(pos Pos, msg string) { got = append(got, &Error{ Line: pos.Line, Col: pos.Col, Text: msg, }) }) - if ok && len(got) != 0 { + if desc != nil && len(got) != 0 { t.Fatalf("parsing succeed, but got errors: %v", got) } - if !ok && len(got) == 0 { + if desc == nil && len(got) == 0 { t.Fatalf("parsing failed, but got no errors") } nextErr: @@ -171,8 +178,6 @@ func TestErrors(t *testing.T) { } t.Errorf("not matched error: %v: %v", wantErr.Line, wantErr.Text) } - // Just to get more code coverage: - Format(top) }) } } -- cgit mrf-deployment