summaryrefslogtreecommitdiff
path: root/src/lib/go/parser/parser_test.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2009-05-18 14:59:16 -0700
committerRobert Griesemer <gri@golang.org>2009-05-18 14:59:16 -0700
commitd4383f34051f1b4f799e413f7be57587f40affa1 (patch)
treeedfd6ba7cec1d606d3b6cc2a0e4206214c31b684 /src/lib/go/parser/parser_test.go
parentc40d14204290410ba56a30eb0457e37a71dae82e (diff)
downloadgolang-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.go67
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);
+ }
}
}