aboutsummaryrefslogtreecommitdiffhomepage
path: root/main.go
diff options
context:
space:
mode:
authorDamian Gryski <[email protected]>2021-09-27 10:13:21 -0700
committerRon Evans <[email protected]>2021-09-27 20:02:02 +0200
commit0dfb33656381f5999450426680f3b5eb6c9800a0 (patch)
tree2642a28389cf93dd63c0fe327857c87993803dc2 /main.go
parentd9ad500cf70840686704f2952e443b8ecdbd0617 (diff)
downloadtinygo-0dfb33656381f5999450426680f3b5eb6c9800a0.tar.gz
tinygo-0dfb33656381f5999450426680f3b5eb6c9800a0.zip
add support for -test.short flag
Diffstat (limited to 'main.go')
-rw-r--r--main.go15
1 files changed, 10 insertions, 5 deletions
diff --git a/main.go b/main.go
index a20c5f9bf..fdba44f61 100644
--- a/main.go
+++ b/main.go
@@ -159,7 +159,7 @@ func Build(pkgName, outpath string, options *compileopts.Options) error {
// Test runs the tests in the given package. Returns whether the test passed and
// possibly an error if the test failed to run.
-func Test(pkgName string, options *compileopts.Options, testCompileOnly, testVerbose bool, outpath string) (bool, error) {
+func Test(pkgName string, options *compileopts.Options, testCompileOnly, testVerbose, testShort bool, outpath string) (bool, error) {
options.TestConfig.CompileTestBinary = true
config, err := builder.NewConfig(options)
if err != nil {
@@ -185,7 +185,7 @@ func Test(pkgName string, options *compileopts.Options, testCompileOnly, testVer
// Run the test.
start := time.Now()
var err error
- passed, err = runPackageTest(config, result, testVerbose)
+ passed, err = runPackageTest(config, result, testVerbose, testShort)
if err != nil {
return err
}
@@ -211,13 +211,17 @@ func Test(pkgName string, options *compileopts.Options, testCompileOnly, testVer
// runPackageTest runs a test binary that was previously built. The return
// values are whether the test passed and any errors encountered while trying to
// run the binary.
-func runPackageTest(config *compileopts.Config, result builder.BuildResult, testVerbose bool) (bool, error) {
+func runPackageTest(config *compileopts.Config, result builder.BuildResult, testVerbose, testShort bool) (bool, error) {
if len(config.Target.Emulator) == 0 {
// Run directly.
var flags []string
if testVerbose {
flags = append(flags, "-test.v")
}
+ if testShort {
+ flags = append(flags, "-test.short")
+ }
+
cmd := executeCommand(config.Options, result.Binary, flags...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
@@ -1102,10 +1106,11 @@ func main() {
if command == "help" || command == "build" || command == "build-library" || command == "test" {
flag.StringVar(&outpath, "o", "", "output filename")
}
- var testCompileOnlyFlag, testVerboseFlag *bool
+ var testCompileOnlyFlag, testVerboseFlag, testShortFlag *bool
if command == "help" || command == "test" {
testCompileOnlyFlag = flag.Bool("c", false, "compile the test binary but do not run it")
testVerboseFlag = flag.Bool("v", false, "verbose: print additional output")
+ testShortFlag = flag.Bool("short", false, "short: run smaller test suite to save time")
}
// Early command processing, before commands are interpreted by the Go flag
@@ -1280,7 +1285,7 @@ func main() {
allTestsPassed := true
for _, pkgName := range pkgNames {
// TODO: parallelize building the test binaries
- passed, err := Test(pkgName, options, *testCompileOnlyFlag, *testVerboseFlag, outpath)
+ passed, err := Test(pkgName, options, *testCompileOnlyFlag, *testVerboseFlag, *testShortFlag, outpath)
handleCompilerError(err)
if !passed {
allTestsPassed = false