diff options
author | Robert Griesemer <gri@golang.org> | 2009-05-18 14:59:16 -0700 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2009-05-18 14:59:16 -0700 |
commit | d4383f34051f1b4f799e413f7be57587f40affa1 (patch) | |
tree | edfd6ba7cec1d606d3b6cc2a0e4206214c31b684 /src/lib/go/parser/parser_test.go | |
parent | c40d14204290410ba56a30eb0457e37a71dae82e (diff) | |
download | golang-d4383f34051f1b4f799e413f7be57587f40affa1.tar.gz |
- changed parser to return os.Error, removed ErrorHandler
- added IsValid predicate to token.Position
- updated pretty, godoc, gobuild
- updated/expanded test cases
R=rsc
DELTA=265 (97 added, 78 deleted, 90 changed)
OCL=28961
CL=29005
Diffstat (limited to 'src/lib/go/parser/parser_test.go')
-rw-r--r-- | src/lib/go/parser/parser_test.go | 67 |
1 files changed, 44 insertions, 23 deletions
diff --git a/src/lib/go/parser/parser_test.go b/src/lib/go/parser/parser_test.go index e35d18799..887fcf80f 100644 --- a/src/lib/go/parser/parser_test.go +++ b/src/lib/go/parser/parser_test.go @@ -12,36 +12,57 @@ import ( ) -func TestParse0(t *testing.T) { - // test nil []bytes source - var src []byte; - prog, ok := Parse(src, nil, 0); - if ok { - t.Errorf("parse should have failed"); - } +var illegalInputs = []interface{} { + nil, + 3.14, + []byte(nil), + "foo!", } -func TestParse1(t *testing.T) { - // test string source - src := `package main import "fmt" func main() { fmt.Println("Hello, World!") }`; - prog, ok := Parse(src, nil, 0); - if !ok { - t.Errorf("parse failed"); +func TestParseIllegalInputs(t *testing.T) { + for _, src := range illegalInputs { + prog, err := Parse(src, 0); + if err == nil { + t.Errorf("Parse(%v) should have failed", src); + } } } -func TestParse2(t *testing.T) { - // test io.Read source - filename := "parser_test.go"; - src, err := os.Open(filename, os.O_RDONLY, 0); - defer src.Close(); - if err != nil { - t.Errorf("cannot open %s (%s)\n", filename, err.String()); + +var validPrograms = []interface{} { + `package main`, + `package main import "fmt" func main() { fmt.Println("Hello, World!") }`, +} + + +func TestParseValidPrograms(t *testing.T) { + for _, src := range validPrograms { + prog, err := Parse(src, 0); + if err != nil { + t.Errorf("Parse(%q) failed: %v", src, err); + } } +} + + +var validFiles = []string { + "parser.go", + "parser_test.go", +} + + +func TestParse3(t *testing.T) { + for _, filename := range validFiles { + src, err := os.Open(filename, os.O_RDONLY, 0); + defer src.Close(); + if err != nil { + t.Fatalf("os.Open(%s): %v\n", filename, err); + } - prog, ok := Parse(src, nil, 0); - if !ok { - t.Errorf("parse failed"); + prog, err := Parse(src, 0); + if err != nil { + t.Errorf("Parse(%q): %v", src, err); + } } } |