aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-07-19 07:24:43 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-07-19 07:24:43 +0000
commita011038d864e3faa528ec1037a568e5824955a0f (patch)
treef905bf359170436f22d818dd47a2ddbeb5a96d17
parent258cc0be9bcc5aa02064fb64d9ab7e195215155f (diff)
parent0eb7ed380ced72501305b14db3111df05cfb1069 (diff)
downloadblueprint-oreo-m2-s1-release.tar.gz
release-request-bd6aa7dd-7b02-4794-942c-14599bf61208-for-git_oc-mr1-release-4193791 snap-temp-L98700000083613807android-wear-8.1.0_r1android-vts-8.1_r9android-vts-8.1_r8android-vts-8.1_r7android-vts-8.1_r6android-vts-8.1_r5android-vts-8.1_r4android-vts-8.1_r3android-vts-8.1_r14android-vts-8.1_r13android-vts-8.1_r12android-vts-8.1_r11android-vts-8.1_r10android-security-8.1.0_r93android-security-8.1.0_r92android-security-8.1.0_r91android-security-8.1.0_r90android-security-8.1.0_r89android-security-8.1.0_r88android-security-8.1.0_r87android-security-8.1.0_r86android-security-8.1.0_r85android-security-8.1.0_r84android-security-8.1.0_r83android-security-8.1.0_r82android-cts-8.1_r9android-cts-8.1_r8android-cts-8.1_r7android-cts-8.1_r6android-cts-8.1_r5android-cts-8.1_r4android-cts-8.1_r3android-cts-8.1_r25android-cts-8.1_r24android-cts-8.1_r23android-cts-8.1_r22android-cts-8.1_r21android-cts-8.1_r20android-cts-8.1_r2android-cts-8.1_r19android-cts-8.1_r18android-cts-8.1_r17android-cts-8.1_r16android-cts-8.1_r15android-cts-8.1_r14android-cts-8.1_r13android-cts-8.1_r12android-cts-8.1_r11android-cts-8.1_r10android-cts-8.1_r1android-8.1.0_r9android-8.1.0_r81android-8.1.0_r80android-8.1.0_r8android-8.1.0_r79android-8.1.0_r78android-8.1.0_r77android-8.1.0_r76android-8.1.0_r75android-8.1.0_r74android-8.1.0_r73android-8.1.0_r72android-8.1.0_r71android-8.1.0_r70android-8.1.0_r7android-8.1.0_r69android-8.1.0_r68android-8.1.0_r67android-8.1.0_r66android-8.1.0_r65android-8.1.0_r64android-8.1.0_r63android-8.1.0_r62android-8.1.0_r61android-8.1.0_r60android-8.1.0_r6android-8.1.0_r53android-8.1.0_r52android-8.1.0_r51android-8.1.0_r50android-8.1.0_r5android-8.1.0_r48android-8.1.0_r47android-8.1.0_r46android-8.1.0_r45android-8.1.0_r43android-8.1.0_r42android-8.1.0_r41android-8.1.0_r40android-8.1.0_r4android-8.1.0_r39android-8.1.0_r38android-8.1.0_r37android-8.1.0_r36android-8.1.0_r35android-8.1.0_r33android-8.1.0_r32android-8.1.0_r31android-8.1.0_r30android-8.1.0_r3android-8.1.0_r29android-8.1.0_r28android-8.1.0_r27android-8.1.0_r26android-8.1.0_r25android-8.1.0_r23android-8.1.0_r22android-8.1.0_r21android-8.1.0_r20android-8.1.0_r2android-8.1.0_r19android-8.1.0_r18android-8.1.0_r17android-8.1.0_r16android-8.1.0_r15android-8.1.0_r14android-8.1.0_r13android-8.1.0_r12android-8.1.0_r11android-8.1.0_r10android-8.1.0_r1security-oc-mr1-releaseoreo-mr1-wear-releaseoreo-mr1-vts-releaseoreo-mr1-security-releaseoreo-mr1-s1-releaseoreo-mr1-releaseoreo-mr1-cuttlefish-testingoreo-mr1-cts-releaseoreo-m8-releaseoreo-m7-releaseoreo-m6-s4-releaseoreo-m6-s3-releaseoreo-m6-s2-releaseoreo-m5-releaseoreo-m4-s9-releaseoreo-m4-s8-releaseoreo-m4-s7-releaseoreo-m4-s6-releaseoreo-m4-s5-releaseoreo-m4-s4-releaseoreo-m4-s3-releaseoreo-m4-s2-releaseoreo-m4-s12-releaseoreo-m4-s11-releaseoreo-m4-s10-releaseoreo-m4-s1-releaseoreo-m3-releaseoreo-m2-s5-releaseoreo-m2-s4-releaseoreo-m2-s3-releaseoreo-m2-s2-releaseoreo-m2-s1-releaseoreo-m2-release
Change-Id: I96265329a0b73b0379aa076ee3c55b16082e3f35
-rw-r--r--.travis.yml3
-rw-r--r--Blueprints14
-rw-r--r--build.ninja.in28
-rw-r--r--gotestmain/dummy.go1
-rw-r--r--gotestmain/gotestmain.go68
-rw-r--r--gotestmain/testmain_test.go33
-rw-r--r--pathtools/fs.go1
-rwxr-xr-xregen_build_ninja_in.sh32
-rw-r--r--tests/test_tree/build.ninja.in29
-rwxr-xr-xtests/test_tree_tests.sh1
10 files changed, 189 insertions, 21 deletions
diff --git a/.travis.yml b/.travis.yml
index 2824056..aab67c8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,8 @@
language: go
go:
- - 1.5.1
+ - 1.8.3
+ - 1.7.6
cache:
directories:
diff --git a/Blueprints b/Blueprints
index 582a0aa..c33b981 100644
--- a/Blueprints
+++ b/Blueprints
@@ -123,6 +123,7 @@ bootstrap_core_go_binary(
deps = [
"blueprint",
"blueprint-bootstrap",
+ "gotestmain-tests",
],
srcs = ["bootstrap/minibp/main.go"],
)
@@ -150,6 +151,19 @@ bootstrap_core_go_binary(
srcs = ["gotestmain/gotestmain.go"],
)
+// gotestmain tests can't be on the gotestmain module because it is an implicit dependency of tests.
+// Put the tests in their own package and make it a dependency of minibp to make sure they run.
+bootstrap_go_package(
+ name = "gotestmain-tests",
+ pkgPath = "github.com/google/blueprint/gotestmain",
+ srcs = [
+ "gotestmain/dummy.go",
+ ],
+ testSrcs = [
+ "gotestmain/testmain_test.go",
+ ],
+)
+
bootstrap_core_go_binary(
name = "gotestrunner",
srcs = ["gotestrunner/gotestrunner.go"],
diff --git a/build.ninja.in b/build.ninja.in
index 1de3dbb..51476ca 100644
--- a/build.ninja.in
+++ b/build.ninja.in
@@ -199,7 +199,7 @@ default $
# Variant:
# Type: bootstrap_core_go_binary
# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModuleFactory.func1
-# Defined: Blueprints:130:1
+# Defined: Blueprints:131:1
build ${g.bootstrap.buildDir}/.bootstrap/bpglob/obj/bpglob.a: $
g.bootstrap.compile ${g.bootstrap.srcDir}/bootstrap/bpglob/bpglob.go | $
@@ -225,7 +225,7 @@ default ${g.bootstrap.BinDir}/bpglob
# Variant:
# Type: bootstrap_core_go_binary
# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModuleFactory.func1
-# Defined: Blueprints:148:1
+# Defined: Blueprints:149:1
build ${g.bootstrap.buildDir}/.bootstrap/gotestmain/obj/gotestmain.a: $
g.bootstrap.compile ${g.bootstrap.srcDir}/gotestmain/gotestmain.go | $
@@ -244,11 +244,26 @@ build ${g.bootstrap.BinDir}/gotestmain: g.bootstrap.cp $
default ${g.bootstrap.BinDir}/gotestmain
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# Module: gotestmain-tests
+# Variant:
+# Type: bootstrap_go_package
+# Factory: github.com/google/blueprint/bootstrap.newGoPackageModuleFactory.func1
+# Defined: Blueprints:156:1
+
+build $
+ ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg/github.com/google/blueprint/gotestmain.a $
+ : g.bootstrap.compile ${g.bootstrap.srcDir}/gotestmain/dummy.go | $
+ ${g.bootstrap.compileCmd}
+ pkgPath = github.com/google/blueprint/gotestmain
+default $
+ ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg/github.com/google/blueprint/gotestmain.a
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Module: gotestrunner
# Variant:
# Type: bootstrap_core_go_binary
# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModuleFactory.func1
-# Defined: Blueprints:153:1
+# Defined: Blueprints:167:1
build ${g.bootstrap.buildDir}/.bootstrap/gotestrunner/obj/gotestrunner.a: $
g.bootstrap.compile ${g.bootstrap.srcDir}/gotestrunner/gotestrunner.go $
@@ -282,15 +297,16 @@ build ${g.bootstrap.buildDir}/.bootstrap/minibp/obj/minibp.a: $
${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg/github.com/google/blueprint/proptools.a $
${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg/github.com/google/blueprint.a $
${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg/github.com/google/blueprint/bootstrap/bpdoc.a $
- ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a
- incFlags = -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-parser/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-deptools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-pathtools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg
+ ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a $
+ ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg/github.com/google/blueprint/gotestmain.a
+ incFlags = -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-parser/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-deptools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-pathtools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg -I ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg
pkgPath = minibp
default ${g.bootstrap.buildDir}/.bootstrap/minibp/obj/minibp.a
build ${g.bootstrap.buildDir}/.bootstrap/minibp/obj/a.out: g.bootstrap.link $
${g.bootstrap.buildDir}/.bootstrap/minibp/obj/minibp.a | $
${g.bootstrap.linkCmd}
- libDirFlags = -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-parser/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-deptools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-pathtools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg
+ libDirFlags = -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-parser/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-deptools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-pathtools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg -L ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg
default ${g.bootstrap.buildDir}/.bootstrap/minibp/obj/a.out
build ${g.bootstrap.BinDir}/minibp: g.bootstrap.cp $
diff --git a/gotestmain/dummy.go b/gotestmain/dummy.go
new file mode 100644
index 0000000..06ab7d0
--- /dev/null
+++ b/gotestmain/dummy.go
@@ -0,0 +1 @@
+package main
diff --git a/gotestmain/gotestmain.go b/gotestmain/gotestmain.go
index 8d1287c..9bf78b5 100644
--- a/gotestmain/gotestmain.go
+++ b/gotestmain/gotestmain.go
@@ -23,8 +23,10 @@ import (
"go/token"
"io/ioutil"
"os"
+ "reflect"
"sort"
"strings"
+ "testing"
"text/template"
)
@@ -35,11 +37,13 @@ var (
)
type data struct {
- Package string
- Tests []string
+ Package string
+ Tests []string
+ HasMain bool
+ MainStartTakesInterface bool
}
-func findTests(srcs []string) (tests []string) {
+func findTests(srcs []string) (tests []string, hasMain bool) {
for _, src := range srcs {
f, err := parser.ParseFile(token.NewFileSet(), src, nil, 0)
if err != nil {
@@ -49,13 +53,23 @@ func findTests(srcs []string) (tests []string) {
if obj.Kind != ast.Fun || !strings.HasPrefix(obj.Name, "Test") {
continue
}
- tests = append(tests, obj.Name)
+ if obj.Name == "TestMain" {
+ hasMain = true
+ } else {
+ tests = append(tests, obj.Name)
+ }
}
}
sort.Strings(tests)
return
}
+// Returns true for go1.8+, where testing.MainStart takes an interface instead of a function
+// as its first argument.
+func mainStartTakesInterface() bool {
+ return reflect.TypeOf(testing.MainStart).In(0).Kind() == reflect.Interface
+}
+
func main() {
flag.Parse()
@@ -67,9 +81,13 @@ func main() {
buf := &bytes.Buffer{}
+ tests, hasMain := findTests(flag.Args())
+
d := data{
- Package: *pkg,
- Tests: findTests(flag.Args()),
+ Package: *pkg,
+ Tests: tests,
+ HasMain: hasMain,
+ MainStartTakesInterface: mainStartTakesInterface(),
}
err := testMainTmpl.Execute(buf, d)
@@ -87,6 +105,10 @@ var testMainTmpl = template.Must(template.New("testMain").Parse(`
package main
import (
+ "io"
+{{if not .HasMain}}
+ "os"
+{{end}}
"regexp"
"testing"
@@ -102,7 +124,9 @@ var t = []testing.InternalTest{
var matchPat string
var matchRe *regexp.Regexp
-func matchString(pat, str string) (result bool, err error) {
+type matchString struct{}
+
+func MatchString(pat, str string) (result bool, err error) {
if matchRe == nil || matchPat != pat {
matchPat = pat
matchRe, err = regexp.Compile(matchPat)
@@ -113,7 +137,35 @@ func matchString(pat, str string) (result bool, err error) {
return matchRe.MatchString(str), nil
}
+func (matchString) MatchString(pat, str string) (bool, error) {
+ return MatchString(pat, str)
+}
+
+func (matchString) StartCPUProfile(w io.Writer) error {
+ panic("shouldn't get here")
+}
+
+func (matchString) StopCPUProfile() {
+}
+
+func (matchString) WriteHeapProfile(w io.Writer) error {
+ panic("shouldn't get here")
+}
+
+func (matchString) WriteProfileTo(string, io.Writer, int) error {
+ panic("shouldn't get here")
+}
+
func main() {
- testing.Main(matchString, t, nil, nil)
+{{if .MainStartTakesInterface}}
+ m := testing.MainStart(matchString{}, t, nil, nil)
+{{else}}
+ m := testing.MainStart(MatchString, t, nil, nil)
+{{end}}
+{{if .HasMain}}
+ pkg.TestMain(m)
+{{else}}
+ os.Exit(m.Run())
+{{end}}
}
`))
diff --git a/gotestmain/testmain_test.go b/gotestmain/testmain_test.go
new file mode 100644
index 0000000..e011eeb
--- /dev/null
+++ b/gotestmain/testmain_test.go
@@ -0,0 +1,33 @@
+// Copyright 2017 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "os"
+ "testing"
+)
+
+var a int
+
+func TestMain(m *testing.M) {
+ a = 1
+ os.Exit(m.Run())
+}
+
+func TestTestMain(t *testing.T) {
+ if a != 1 {
+ t.Errorf("TestMain didn't run")
+ }
+}
diff --git a/pathtools/fs.go b/pathtools/fs.go
index 4ed91ff..4f98c6e 100644
--- a/pathtools/fs.go
+++ b/pathtools/fs.go
@@ -41,6 +41,7 @@ func MockFs(files map[string][]byte) FileSystem {
fs.dirs[dir] = true
dir = filepath.Dir(dir)
}
+ fs.dirs[dir] = true
}
for f := range fs.files {
diff --git a/regen_build_ninja_in.sh b/regen_build_ninja_in.sh
new file mode 100755
index 0000000..152fd95
--- /dev/null
+++ b/regen_build_ninja_in.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+SRC=$(cd $(dirname $0) && pwd)
+OUT=/tmp/blueprint.$$
+
+rm -rf ${OUT}
+mkdir ${OUT}
+
+(
+ cd ${OUT}
+ ${SRC}/bootstrap.bash
+ ./blueprint.bash
+ ${SRC}/bootstrap.bash -r
+)
+
+rm -rf ${OUT}
+mkdir ${OUT}
+
+(
+ cd ${OUT}
+ cp -r ${SRC}/tests/test_tree test_tree
+ ln -s ${SRC} test_tree/blueprint
+ mkdir out
+ cd out
+
+ export SRCDIR=../test_tree
+ ${SRCDIR}/blueprint/bootstrap.bash
+ ./blueprint.bash
+ cp .minibootstrap/build.ninja.in ${SRC}/tests/test_tree/build.ninja.in
+)
+
+rm -rf ${OUT}
diff --git a/tests/test_tree/build.ninja.in b/tests/test_tree/build.ninja.in
index 7728ca3..b3ef0a3 100644
--- a/tests/test_tree/build.ninja.in
+++ b/tests/test_tree/build.ninja.in
@@ -209,7 +209,7 @@ default $
# Variant:
# Type: bootstrap_core_go_binary
# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModuleFactory.func1
-# Defined: blueprint/Blueprints:130:1
+# Defined: blueprint/Blueprints:131:1
build ${g.bootstrap.buildDir}/.bootstrap/bpglob/obj/bpglob.a: $
g.bootstrap.compile $
@@ -236,7 +236,7 @@ default ${g.bootstrap.BinDir}/bpglob
# Variant:
# Type: bootstrap_core_go_binary
# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModuleFactory.func1
-# Defined: blueprint/Blueprints:148:1
+# Defined: blueprint/Blueprints:149:1
build ${g.bootstrap.buildDir}/.bootstrap/gotestmain/obj/gotestmain.a: $
g.bootstrap.compile $
@@ -256,11 +256,27 @@ build ${g.bootstrap.BinDir}/gotestmain: g.bootstrap.cp $
default ${g.bootstrap.BinDir}/gotestmain
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# Module: gotestmain-tests
+# Variant:
+# Type: bootstrap_go_package
+# Factory: github.com/google/blueprint/bootstrap.newGoPackageModuleFactory.func1
+# Defined: blueprint/Blueprints:156:1
+
+build $
+ ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg/github.com/google/blueprint/gotestmain.a $
+ : g.bootstrap.compile $
+ ${g.bootstrap.srcDir}/blueprint/gotestmain/dummy.go | $
+ ${g.bootstrap.compileCmd}
+ pkgPath = github.com/google/blueprint/gotestmain
+default $
+ ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg/github.com/google/blueprint/gotestmain.a
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Module: gotestrunner
# Variant:
# Type: bootstrap_core_go_binary
# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModuleFactory.func1
-# Defined: blueprint/Blueprints:153:1
+# Defined: blueprint/Blueprints:167:1
build ${g.bootstrap.buildDir}/.bootstrap/gotestrunner/obj/gotestrunner.a: $
g.bootstrap.compile $
@@ -296,15 +312,16 @@ build ${g.bootstrap.buildDir}/.bootstrap/minibp/obj/minibp.a: $
${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg/github.com/google/blueprint/proptools.a $
${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg/github.com/google/blueprint.a $
${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg/github.com/google/blueprint/bootstrap/bpdoc.a $
- ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a
- incFlags = -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-parser/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-deptools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-pathtools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg
+ ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a $
+ ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg/github.com/google/blueprint/gotestmain.a
+ incFlags = -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-parser/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-deptools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-pathtools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg -I ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg -I ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg
pkgPath = minibp
default ${g.bootstrap.buildDir}/.bootstrap/minibp/obj/minibp.a
build ${g.bootstrap.buildDir}/.bootstrap/minibp/obj/a.out: g.bootstrap.link $
${g.bootstrap.buildDir}/.bootstrap/minibp/obj/minibp.a | $
${g.bootstrap.linkCmd}
- libDirFlags = -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-parser/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-deptools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-pathtools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg
+ libDirFlags = -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-parser/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-deptools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-pathtools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-proptools/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap-bpdoc/pkg -L ${g.bootstrap.buildDir}/.bootstrap/blueprint-bootstrap/pkg -L ${g.bootstrap.buildDir}/.bootstrap/gotestmain-tests/pkg
default ${g.bootstrap.buildDir}/.bootstrap/minibp/obj/a.out
build ${g.bootstrap.BinDir}/minibp: g.bootstrap.cp $
diff --git a/tests/test_tree_tests.sh b/tests/test_tree_tests.sh
index 43f12fc..515e2b6 100755
--- a/tests/test_tree_tests.sh
+++ b/tests/test_tree_tests.sh
@@ -23,6 +23,7 @@ ${SRCDIR}/blueprint/bootstrap.bash
if ! cmp -s ${SRCDIR}/build.ninja.in .minibootstrap/build.ninja.in; then
echo "tests/test_tree/build.ninja.in and .minibootstrap/build.ninja.in should be the same" >&2
+ echo "run regen_build_ninja_in.sh" >&2
exit 1
fi