diff options
author | Damian Gryski <[email protected]> | 2021-09-27 10:13:21 -0700 |
---|---|---|
committer | Ron Evans <[email protected]> | 2021-09-27 20:02:02 +0200 |
commit | 0dfb33656381f5999450426680f3b5eb6c9800a0 (patch) | |
tree | 2642a28389cf93dd63c0fe327857c87993803dc2 | |
parent | d9ad500cf70840686704f2952e443b8ecdbd0617 (diff) | |
download | tinygo-0dfb33656381f5999450426680f3b5eb6c9800a0.tar.gz tinygo-0dfb33656381f5999450426680f3b5eb6c9800a0.zip |
add support for -test.short flag
-rw-r--r-- | main.go | 15 | ||||
-rw-r--r-- | src/testing/testing.go | 7 |
2 files changed, 17 insertions, 5 deletions
@@ -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 diff --git a/src/testing/testing.go b/src/testing/testing.go index c15ddab53..0b8d01aec 100644 --- a/src/testing/testing.go +++ b/src/testing/testing.go @@ -19,6 +19,7 @@ import ( // Testing flags. var ( flagVerbose bool + flagShort bool ) var initRan bool @@ -31,6 +32,7 @@ func Init() { initRan = true flag.BoolVar(&flagVerbose, "test.v", false, "verbose: print additional output") + flag.BoolVar(&flagShort, "test.short", false, "short: run smaller test suite to save time") } // common holds the elements common between T and B and @@ -282,6 +284,11 @@ func (m *M) Run() int { return failures } +// Short reports whether the -test.short flag is set. +func Short() bool { + return flagShort +} + func TestMain(m *M) { os.Exit(m.Run()) } |