Index: src/pkg/go/build/build_test.go |
=================================================================== |
--- a/src/pkg/go/build/build_test.go |
+++ b/src/pkg/go/build/build_test.go |
@@ -75,3 +75,32 @@ |
t.Fatalf("ImportPath=%q, want %q", p.ImportPath, "go/build") |
} |
} |
+ |
+func TestShouldBuild(t *testing.T) { |
+ const file1 = "// +build tag1\n\n" + |
+ "package main\n" |
+ |
+ const file2 = "// +build cgo\n\n" + |
+ "// This package implements parsing of tags like\n" + |
+ "// +build tag1\n" + |
+ "package build" |
+ |
+ const file3 = "// Copyright The Go Authors.\n\n" + |
+ "package build\n\n" + |
+ "// shouldBuild checks tags given by lines of the form\n" + |
+ "// +build tag\n" + |
+ "func shouldBuild(content []byte)\n" |
+ |
+ ctx := &Context{BuildTags: []string{"tag1"}} |
+ if !ctx.shouldBuild([]byte(file1)) { |
+ t.Errorf("should not build file1, expected the contrary") |
+ } |
+ if ctx.shouldBuild([]byte(file2)) { |
+ t.Errorf("should build file2, expected the contrary") |
+ } |
+ |
+ ctx = &Context{BuildTags: nil} |
+ if !ctx.shouldBuild([]byte(file3)) { |
+ t.Errorf("should not build file3, expected the contrary") |
+ } |
+} |