Improvements to integration tests

This commit is contained in:
Audrius Butkevicius 2015-01-21 23:59:08 +00:00
parent 7c680c955f
commit 25c664b13a
4 changed files with 24 additions and 1 deletions

View File

@ -3,6 +3,7 @@ set -euo pipefail
IFS=$'\n\t' IFS=$'\n\t'
DOCKERIMGV=1.4.1-1 DOCKERIMGV=1.4.1-1
STTRACE=${STTRACE:-}
case "${1:-default}" in case "${1:-default}" in
default) default)
@ -110,6 +111,7 @@ case "${1:-default}" in
docker run --rm -h syncthing-builder -u $(id -u) -t \ docker run --rm -h syncthing-builder -u $(id -u) -t \
-v $(pwd):/go/src/github.com/syncthing/syncthing \ -v $(pwd):/go/src/github.com/syncthing/syncthing \
-w /go/src/github.com/syncthing/syncthing \ -w /go/src/github.com/syncthing/syncthing \
-e "STTRACE=$STTRACE" \
syncthing/build:$DOCKERIMGV \ syncthing/build:$DOCKERIMGV \
sh -c './build.sh clean \ sh -c './build.sh clean \
&& go vet ./cmd/... ./internal/... \ && go vet ./cmd/... ./internal/... \
@ -122,6 +124,7 @@ case "${1:-default}" in
docker run --rm -h syncthing-builder -u $(id -u) -t \ docker run --rm -h syncthing-builder -u $(id -u) -t \
-v $(pwd):/go/src/github.com/syncthing/syncthing \ -v $(pwd):/go/src/github.com/syncthing/syncthing \
-w /go/src/github.com/syncthing/syncthing \ -w /go/src/github.com/syncthing/syncthing \
-e "STTRACE=$STTRACE" \
syncthing/build:$DOCKERIMGV \ syncthing/build:$DOCKERIMGV \
sh -euxc './build.sh clean \ sh -euxc './build.sh clean \
&& go run build.go -race \ && go run build.go -race \

1
test/logs/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.out

View File

@ -50,7 +50,7 @@ type syncthingProcess struct {
func (p *syncthingProcess) start() error { func (p *syncthingProcess) start() error {
if p.logfd == nil { if p.logfd == nil {
logfd, err := os.Create(p.instance + ".out") logfd, err := os.Create("logs/" + getTestName() + "-" + p.instance + ".out")
if err != nil { if err != nil {
return err return err
} }

View File

@ -27,6 +27,7 @@ import (
"math/rand" "math/rand"
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"sort" "sort"
"strings" "strings"
"time" "time"
@ -441,3 +442,21 @@ func isTimeout(err error) bool {
return strings.Contains(err.Error(), "use of closed network connection") || return strings.Contains(err.Error(), "use of closed network connection") ||
strings.Contains(err.Error(), "request cancelled while waiting") strings.Contains(err.Error(), "request cancelled while waiting")
} }
func getTestName() string {
callers := make([]uintptr, 100)
runtime.Callers(1, callers)
for i, caller := range callers {
f := runtime.FuncForPC(caller)
if f != nil {
if f.Name() == "testing.tRunner" {
testf := runtime.FuncForPC(callers[i-1])
if testf != nil {
path := strings.Split(testf.Name(), ".")
return path[len(path)-1]
}
}
}
}
return time.Now().String()
}