Skip to content

Commit fe7447f

Browse files
committed
added optional test timeout flag
1 parent 3c22a7a commit fe7447f

File tree

10 files changed

+19
-11
lines changed

10 files changed

+19
-11
lines changed

cmd/build.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Binaries are dropped into the current working directory.
8383
}
8484

8585
if !buildSkipTests {
86-
err = lang.Test(workDir, meta.Package)
86+
err = lang.Test(workDir, meta.Package, testTimeout)
8787
if err != nil {
8888
log.Fatalf("error running go test: %s", err)
8989
}

cmd/publish.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ Publish will upload your binaries to wherever it is you've configured them to go
109109
}
110110

111111
if !pubSkipTests {
112-
err = lang.Test(workDir, meta.Package)
112+
err = lang.Test(workDir, meta.Package, testTimeout)
113113
if err != nil {
114114
log.Fatalf("error running go test: %s", err)
115115
}

cmd/root.go

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ var branch string
2929
var dryrun bool
3030
var workdir string
3131
var buildSkipTargets string
32+
var testTimeout string
3233

3334
//var pubSkipTargets string
3435

@@ -59,6 +60,7 @@ func init() {
5960
rootCmd.PersistentFlags().StringVarP(&branch, "branch", "b", "master", "Branch to operate upon")
6061
rootCmd.PersistentFlags().StringVarP(&workdir, "workdir", "w", "", "Workdir. If omitted, a temp dir will be created and subsequently cleaned up.")
6162
rootCmd.PersistentFlags().StringVarP(&buildSkipTargets, "skip-build-targets", "", "", fmt.Sprintf("Comma separated list of build targets from %s to skip.", gomason.METADATA_FILENAME))
63+
rootCmd.PersistentFlags().StringVarP(&testTimeout, "test-timeout", "", "", "timeout for tests to complete (must be valid time input for language)")
6264

6365
//rootCmd.PersistentFlags().StringVarP(&pubSkipTargets, fmt.Sprintf("skip-publish-targets", "", "", "Comma separated list of publish targets from %s to skip.", gomason.METADATA_FILENAME))
6466
}

cmd/sign.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Signing sorta implies something to sign, which in turn, implies that it built, w
7878
log.Fatalf("error running prep steps: %s", err)
7979
}
8080

81-
err = lang.Test(workDir, meta.Package)
81+
err = lang.Test(workDir, meta.Package, testTimeout)
8282
if err != nil {
8383
log.Fatalf("error running go test: %s", err)
8484
}

cmd/test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Sometimes you need the benefits of a full system here. Now. Right at your fing
8080
log.Fatalf("error running prep steps: %s", err)
8181
}
8282

83-
err = lang.Test(workDir, meta.Package)
83+
err = lang.Test(workDir, meta.Package, testTimeout)
8484
if err != nil {
8585
log.Fatalf("error running go test: %s", err)
8686
}

metadata.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "2.7.0",
2+
"version": "2.8.0",
33
"package": "github.com/nikogura/gomason",
44
"description": "A tool for testing, building, signing, and publishing your project from a clean workspace.",
55
"repository": "http://localhost:8081/artifactory/generic-local",

pkg/gomason/golang.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ func (Golang) Prep(gopath string, meta Metadata) (err error) {
154154
}
155155

156156
// Test Runs 'go test -v ./...' in the checked out code directory
157-
func (Golang) Test(gopath string, gomodule string) (err error) {
157+
func (Golang) Test(gopath string, gomodule string, timeout string) (err error) {
158158
wd := filepath.Join(gopath, "src", gomodule)
159159

160160
log.Printf("[DEBUG] Changing working directory to %s.\n", wd)
@@ -168,7 +168,13 @@ func (Golang) Test(gopath string, gomodule string) (err error) {
168168

169169
log.Print("[DEBUG] Running 'go test -v ./...'.\n\n")
170170

171-
cmd := exec.Command("go", "test", "-v", "./...")
171+
var timeoutArg string
172+
173+
if timeout != "" {
174+
timeoutArg = fmt.Sprintf("-timeout %s", timeout)
175+
}
176+
177+
cmd := exec.Command("go", "test", "-v", timeoutArg, "./...")
172178

173179
runenv := append(os.Environ(), fmt.Sprintf("GOPATH=%s", gopath))
174180
runenv = append(runenv, "GO111MODULE=on")

pkg/gomason/golang_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ func TestTest(t *testing.T) {
264264
t.FailNow()
265265
}
266266

267-
err = lang.Test(gopath, testMetadataObj().Package)
267+
err = lang.Test(gopath, testMetadataObj().Package, "10m")
268268
if err != nil {
269269
log.Printf("error running go test: %s", err)
270270
t.FailNow()

pkg/gomason/languages.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type Language interface {
1414
CreateWorkDir(string) (string, error)
1515
Checkout(workdir string, meta Metadata, branch string) error
1616
Prep(workdir string, meta Metadata) error
17-
Test(workdir string, module string) error
17+
Test(workdir string, module string, timeout string) error
1818
Build(workdir string, meta Metadata, skipTargets string) error
1919
}
2020

@@ -37,7 +37,7 @@ func (NoLanguage) Prep(workdir string, meta Metadata) error {
3737
}
3838

3939
// Test Stub for the Test action
40-
func (NoLanguage) Test(workdir string, module string) error {
40+
func (NoLanguage) Test(workdir string, module string, timeout string) error {
4141
return nil
4242
}
4343

pkg/gomason/languages_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func TestNoLanguage(t *testing.T) {
1919
err = nl.Prep("", Metadata{})
2020
assert.True(t, err == nil, "Prep returned an error")
2121

22-
err = nl.Test("", "")
22+
err = nl.Test("", "", "")
2323
assert.True(t, err == nil, "Test returned an error")
2424

2525
err = nl.Build("", Metadata{}, "")

0 commit comments

Comments
 (0)