build: set the number of go testing process

This commit is contained in:
Delweng Zheng 2018-06-03 16:57:41 +08:00
parent c8dcb9584e
commit 12db418d39

View file

@ -55,6 +55,7 @@ import (
"path/filepath" "path/filepath"
"regexp" "regexp"
"runtime" "runtime"
"strconv"
"strings" "strings"
"time" "time"
@ -288,6 +289,7 @@ func goToolArch(arch string, cc string, subcmd string, args ...string) *exec.Cmd
func doTest(cmdline []string) { func doTest(cmdline []string) {
var ( var (
coverage = flag.Bool("coverage", false, "Whether to record code coverage") coverage = flag.Bool("coverage", false, "Whether to record code coverage")
process = flag.String("process", "1", "How many processes available to run tests")
) )
flag.CommandLine.Parse(cmdline) flag.CommandLine.Parse(cmdline)
env := build.Env() env := build.Env()
@ -305,7 +307,11 @@ func doTest(cmdline []string) {
gotest := goTool("test", buildFlags(env)...) gotest := goTool("test", buildFlags(env)...)
// Test a single package at a time. CI builders are slow // Test a single package at a time. CI builders are slow
// and some tests run into timeouts under load. // and some tests run into timeouts under load.
gotest.Args = append(gotest.Args, "-p", "1") if _, err := strconv.Atoi(*process); err == nil {
gotest.Args = append(gotest.Args, "-p", *process)
} else {
gotest.Args = append(gotest.Args, "-p", "1")
}
if *coverage { if *coverage {
gotest.Args = append(gotest.Args, "-covermode=atomic", "-cover") gotest.Args = append(gotest.Args, "-covermode=atomic", "-cover")
} }