diff --git a/bootstrap/bootstrap.go b/bootstrap/bootstrap.go index 79e5c8e..bb85e7d 100644 --- a/bootstrap/bootstrap.go +++ b/bootstrap/bootstrap.go @@ -333,11 +333,13 @@ func (g *goPackage) GenerateBuildActions(ctx blueprint.ModuleContext) { testSrcs = append(g.properties.TestSrcs, g.properties.Linux.TestSrcs...) } - testArchiveFile := filepath.Join(testRoot(ctx, g.config), - filepath.FromSlash(g.properties.PkgPath)+".a") - g.testResultFile = buildGoTest(ctx, testRoot(ctx, g.config), testArchiveFile, - g.properties.PkgPath, srcs, genSrcs, - testSrcs) + if g.config.runGoTests { + testArchiveFile := filepath.Join(testRoot(ctx, g.config), + filepath.FromSlash(g.properties.PkgPath)+".a") + g.testResultFile = buildGoTest(ctx, testRoot(ctx, g.config), testArchiveFile, + g.properties.PkgPath, srcs, genSrcs, + testSrcs) + } buildGoPackage(ctx, g.pkgRoot, g.properties.PkgPath, g.archiveFile, srcs, genSrcs) @@ -434,10 +436,9 @@ func (g *goBinary) GenerateBuildActions(ctx blueprint.ModuleContext) { testSrcs = append(g.properties.TestSrcs, g.properties.Linux.TestSrcs...) } - testDeps := buildGoTest(ctx, testRoot(ctx, g.config), testArchiveFile, - name, srcs, genSrcs, testSrcs) if g.config.runGoTests { - deps = append(deps, testDeps...) + deps = buildGoTest(ctx, testRoot(ctx, g.config), testArchiveFile, + name, srcs, genSrcs, testSrcs) } buildGoPackage(ctx, objDir, "main", archiveFile, srcs, genSrcs) @@ -450,9 +451,7 @@ func (g *goBinary) GenerateBuildActions(ctx blueprint.ModuleContext) { linkDeps = append(linkDeps, dep.GoPackageTarget()) libDir := dep.GoPkgRoot() libDirFlags = append(libDirFlags, "-L "+libDir) - if g.config.runGoTests { - deps = append(deps, dep.GoTestTargets()...) - } + deps = append(deps, dep.GoTestTargets()...) }) linkArgs := map[string]string{} @@ -636,22 +635,17 @@ func (s *singleton) GenerateBuildActions(ctx blueprint.SingletonContext) { var primaryBuilders []*goBinary // blueprintTools contains blueprint go binaries that will be built in StageMain var blueprintTools []string - // blueprintTests contains the result files from the tests - var blueprintTests []string - ctx.VisitAllModules(func(module blueprint.Module) { - if binaryModule, ok := module.(*goBinary); ok { + ctx.VisitAllModulesIf(isBootstrapBinaryModule, + func(module blueprint.Module) { + binaryModule := module.(*goBinary) + if binaryModule.properties.Tool_dir { blueprintTools = append(blueprintTools, binaryModule.InstallPath()) } if binaryModule.properties.PrimaryBuilder { primaryBuilders = append(primaryBuilders, binaryModule) } - } - - if packageModule, ok := module.(goPackageProducer); ok { - blueprintTests = append(blueprintTests, packageModule.GoTestTargets()...) - } - }) + }) var extraSharedFlagArray []string if s.config.runGoTests { @@ -765,14 +759,6 @@ func (s *singleton) GenerateBuildActions(ctx blueprint.SingletonContext) { Outputs: []string{"blueprint_tools"}, Inputs: blueprintTools, }) - - // Add a phony target for running all of the tests - ctx.Build(pctx, blueprint.BuildParams{ - Rule: blueprint.Phony, - Outputs: []string{"blueprint_tests"}, - Inputs: blueprintTests, - }) - } } diff --git a/bootstrap/command.go b/bootstrap/command.go index be593e6..cbbd32d 100644 --- a/bootstrap/command.go +++ b/bootstrap/command.go @@ -41,10 +41,10 @@ var ( traceFile string runGoTests bool noGC bool + moduleListFile string emptyNinjaFile bool BuildDir string - ModuleListFile string NinjaBuildDir string SrcDir string @@ -105,9 +105,9 @@ func Main(ctx *blueprint.Context, config interface{}, extraNinjaFileDeps ...stri } SrcDir = filepath.Dir(flag.Arg(0)) - if ModuleListFile != "" { - ctx.SetModuleListFile(ModuleListFile) - extraNinjaFileDeps = append(extraNinjaFileDeps, ModuleListFile) + if moduleListFile != "" { + ctx.SetModuleListFile(moduleListFile) + extraNinjaFileDeps = append(extraNinjaFileDeps, moduleListFile) } else { fatalf("-l is required and must be nonempty") } @@ -133,7 +133,7 @@ func Main(ctx *blueprint.Context, config interface{}, extraNinjaFileDeps ...stri topLevelBlueprintsFile: flag.Arg(0), emptyNinjaFile: emptyNinjaFile, runGoTests: runGoTests, - moduleListFile: ModuleListFile, + moduleListFile: moduleListFile, } ctx.RegisterBottomUpMutator("bootstrap_plugin_deps", pluginDeps)