remove per-test -timeout logic because it does not work

Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8bffe9524d)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Tibor Vass 2019-08-30 21:07:17 +00:00 committed by Sebastiaan van Stijn
parent df569fd54c
commit 15aa73ea4c
No known key found for this signature in database
GPG key ID: 76698F39D527CE8C
4 changed files with 7 additions and 35 deletions

View file

@ -838,7 +838,6 @@ Try {
Write-Host -ForegroundColor Magenta "WARN: Only running integration tests matching $env:INTEGRATION_TEST_NAME"
}
$c += "`"-tags`" " + "`"autogen`" "
$c += "`"-timeout`" " + "`"10m`" "
$c += "`"-test.timeout`" " + "`"200m`" "
if ($null -ne $env:INTEGRATION_IN_CONTAINER) {
@ -933,7 +932,6 @@ Try {
Write-Host -ForegroundColor Magenta "WARN: Only running LCOW integration tests matching $env:INTEGRATION_TEST_NAME"
}
$c += "`"-tags`" " + "`"autogen`" "
$c += "`"-timeout`" " + "`"10m`" "
$c += "`"-test.timeout`" " + "`"200m`" "
Write-Host -ForegroundColor Green "INFO: LCOW Integration tests being run from the host:"

View file

@ -23,9 +23,10 @@ setup_integration_test_filter() {
fi
TESTFLAGS+="-test.run ${TEST_FILTER}"
local dirs=$(grep -rIlE --include '*_test.go' "func .*${TEST_FILTER}.*\(. \*testing\.T\)" ./integration*/ | xargs -I file dirname file | uniq)
local dirs
dirs=$(grep -rIlE --include '*_test.go' "func .*${TEST_FILTER}.*\(. \*testing\.T\)" ./integration*/ | xargs -I file dirname file | uniq)
if [ -z "${TEST_SKIP_INTEGRATION}" ]; then
: "${TEST_INTEGRATION_DIR:=$(echo "$dirs" | grep -v '^\./integration-cli$')"
: "${TEST_INTEGRATION_DIR:=$(echo "$dirs" | grep -v '^\./integration-cli$')}"
if [ -z "${TEST_INTEGRATION_DIR}" ]; then
echo "Skipping integration tests since the supplied filter \"${TEST_FILTER}\" omits all integration tests"
TEST_SKIP_INTEGRATION=1
@ -85,7 +86,7 @@ run_test_integration_suites() {
run_test_integration_legacy_suites() {
(
flags="-test.v -timeout=${TIMEOUT} $TESTFLAGS"
flags="-test.v -test.timeout=360m $TESTFLAGS"
cd integration-cli
echo "Running $PWD flags=${flags}"
# shellcheck disable=SC2086

View file

@ -35,7 +35,7 @@ run_test_integration_suites() {
run_test_integration_legacy_suites() {
(
flags="-test.v -timeout=${TIMEOUT:-10m} -test.timeout=360m $TESTFLAGS"
flags="-test.v -test.timeout=360m $TESTFLAGS"
cd /tests/integration-cli
echo "Running $PWD"
test_env ./test.main $flags

View file

@ -4,16 +4,14 @@ package suite
import (
"flag"
"fmt"
"reflect"
"runtime/debug"
"strings"
"testing"
"time"
)
// TimeoutFlag is the flag to set a per-test timeout when running tests. Defaults to `-timeout`.
var TimeoutFlag = flag.Duration("timeout", 0, "per-test panic after duration `d` (default 0, timeout disabled)")
var TimeoutFlag = flag.Duration("timeout", 0, "DO NOT USE")
var typTestingT = reflect.TypeOf(new(testing.T))
@ -53,32 +51,7 @@ func Run(t *testing.T, suite interface{}) {
}
}()
var timeout <-chan time.Time
if *TimeoutFlag > 0 {
timeout = time.After(*TimeoutFlag)
}
panicCh := make(chan error)
go func() {
defer func() {
if r := recover(); r != nil {
panicCh <- fmt.Errorf("test panicked: %v\n%s", r, debug.Stack())
} else {
close(panicCh)
}
}()
method.Func.Call([]reflect.Value{reflect.ValueOf(suite), reflect.ValueOf(t)})
}()
select {
case err := <-panicCh:
if err != nil {
t.Fatal(err.Error())
}
case <-timeout:
if timeoutSuite, ok := suite.(TimeoutTestSuite); ok {
timeoutSuite.OnTimeout()
}
t.Fatalf("timeout: test timed out after %s since start of test", *TimeoutFlag)
}
method.Func.Call([]reflect.Value{reflect.ValueOf(suite), reflect.ValueOf(t)})
})
}
}