diff options
author | Robert Griesemer <gri@golang.org> | 2009-07-16 17:11:18 -0700 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2009-07-16 17:11:18 -0700 |
commit | 0355b4a281c8d3236b6c4c16bbe9bc5117397f10 (patch) | |
tree | ac8e22f1a710a97c4cbd785b5b8bb2f16efb1d44 /src/pkg/go/parser/parser_test.go | |
parent | ce55e24da294995932c7ed313d88d5167705bd88 (diff) | |
download | golang-0355b4a281c8d3236b6c4c16bbe9bc5117397f10.tar.gz |
ast:
- renamed Program -> SourceFile
- added Package node representing the AST for an entire package
- added filter function to create a source file mimicking the
interface of an entire package
parser:
- parser entry to parse entire packages
- unified naming of parser entry points
- factored out entry points into new file (interface.go)
gofmt:
- extended to accept single .go files, and package paths:
gofmt file.go // formatting of a single file
gofmt -x file.go // interface of a single file
gofmt -x ./MyPackage // interface of a local package
gofmt -x math // interface of a $GOROOT relative package
Various adjustments in dependent files, documentation.
R=rsc
DELTA=634 (369 added, 153 deleted, 112 changed)
OCL=31743
CL=31748
Diffstat (limited to 'src/pkg/go/parser/parser_test.go')
-rw-r--r-- | src/pkg/go/parser/parser_test.go | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/src/pkg/go/parser/parser_test.go b/src/pkg/go/parser/parser_test.go index f8501b3b5..3b02c5034 100644 --- a/src/pkg/go/parser/parser_test.go +++ b/src/pkg/go/parser/parser_test.go @@ -22,9 +22,9 @@ var illegalInputs = []interface{} { func TestParseIllegalInputs(t *testing.T) { for _, src := range illegalInputs { - prog, err := Parse("", src, 0); + prog, err := ParseFile("", src, 0); if err == nil { - t.Errorf("Parse(%v) should have failed", src); + t.Errorf("ParseFile(%v) should have failed", src); } } } @@ -38,9 +38,9 @@ var validPrograms = []interface{} { func TestParseValidPrograms(t *testing.T) { for _, src := range validPrograms { - prog, err := Parse("", src, 0); + prog, err := ParseFile("", src, 0); if err != nil { - t.Errorf("Parse(%q) failed: %v", src, err); + t.Errorf("ParseFile(%q): %v", src, err); } } } @@ -54,15 +54,38 @@ var validFiles = []string { func TestParse3(t *testing.T) { for _, filename := range validFiles { - src, err := os.Open(filename, os.O_RDONLY, 0); - defer src.Close(); + prog, err := ParseFile(filename, nil, 0); if err != nil { - t.Fatal(err); + t.Errorf("ParseFile(%s): %v", filename, err); } + } +} - prog, err := Parse(filename, src, 0); - if err != nil { - t.Errorf("Parse(%s): %v", filename, err); + +func filter(filename string) bool { + switch filename { + case "parser.go": + case "interface.go": + case "parser_test.go": + default: + return false; + } + return true; +} + + +func TestParse4(t *testing.T) { + path := "."; + pkg, err := ParsePackage(path, filter, 0); + if err != nil { + t.Errorf("ParsePackage(%s): %v", path, err); + } + if pkg.Name != "parser" { + t.Errorf("incorrect package name: %s", pkg.Name); + } + for filename, _ := range pkg.Files { + if !filter(filename) { + t.Errorf("unexpected package file: %s", filename); } } } |