Accepting request 684497 from home:cyphar:containers:docker-test

More tests.sh improvements to increase the success percentage and to run
dockerd-related tests.

OBS-URL: https://build.opensuse.org/request/show/684497
OBS-URL: https://build.opensuse.org/package/show/Virtualization:containers/docker?expand=0&rev=303
This commit is contained in:
Aleksa Sarai 2019-03-12 22:20:37 +00:00 committed by Git OBS Bridge
parent ea139541fa
commit 334335e0e5
2 changed files with 17 additions and 28 deletions

View File

@ -219,11 +219,13 @@ Zsh command line completion support for %{name}.
%package test
%global __requires_exclude ^libgo.so.*$
Summary: Test package for docker
# Needed for test-suite.
Group: System/Management
Requires: curl
Requires: go
Requires: iputils
Requires: jq
Requires: net-tools-deprecated
# KUBIC-SPECIFIC: This was required when upgrading from the original kubic
# packaging, when everything was renamed to -kubic. It also is
# used to ensure that nothing complains too much when using

View File

@ -16,11 +16,10 @@ FROZEN_IMAGES_LINK=/docker-frozen-images
readarray -t TESTS < <(find "$DOCKER_DIR/integration-cli" -type f -executable -name 'tests.main')
CHECK_TIMEOUT="${CHECK_TIMEOUT:-15m}"
TEST_TIMEOUT="${TEST_TIMEOUT:-6h}"
TEST_TIMEOUT="${TEST_TIMEOUT:-0}"
TEST_ARGS=("-check.v" "-check.timeout=${CHECK_TIMEOUT}" "-test.timeout=${TEST_TIMEOUT}")
TEST_SELECT=
TEST_LOG=/tmp/docker-tests.log
ENABLE_XUNIT="${ENABLE_XUNIT-yes}"
KEEPBUNDLE="${KEEPBUNDLE:-}"
# the config file for Docker
@ -60,10 +59,8 @@ restore_backup() {
for x in $@ ; do
if [ -f "$x.nbak" ] ; then
rm -f "$x.nbak"
else
if [ -f "$x.bak" ] ; then
mv -f "$x.bak" "$x"
fi
elif [ -f "$x.bak" ] ; then
mv -f "$x.bak" "$x"
fi
done
}
@ -82,24 +79,6 @@ if [ "$#" -gt 0 ] ; then
TEST_ARGS+=( "-check.f=$(echo $@ | tr ' ' '|')" )
fi
if [ -n "$ENABLE_XUNIT" ] ; then
if [ ! -x /usr/local/bin/go2xunit ] ; then
echo >&2 "Installing go2xunit."
require_go || abort "the Go compiler is not installed"
export GOPATH="$(mktemp -d)"
go get -d github.com/tebeka/go2xunit
cd "$GOPATH/src/github.com/tebeka/go2xunit" && go build -o /usr/local/bin/go2xunit .
chmod 755 /usr/local/bin/go2xunit
[ -x /usr/local/bin/go2xunit ] || abort "go2xunit could not be built"
rm -rf "$GOPATH"
export -n GOPATH
fi
fi
# tests require this user and group
/usr/sbin/groupadd -r docker >/dev/null 2>&1 || /bin/true
/usr/sbin/useradd --create-home --gid docker unprivilegeduser >/dev/null 2>&1 || /bin/true
@ -159,6 +138,7 @@ cleanup() {
rm -f "$FROZEN_IMAGES_LINK"
log "Removing images and containers..."
export DOCKER_HOST="$DOCKER_TEST_HOST"
docker ps -aq | xargs docker rm -f &>/dev/null || :
docker images -q | xargs docker rmi -f &>/dev/null || :
@ -203,6 +183,17 @@ do
docker build -t "$(basename "$dir")" "$dir"
done
# For some reason, dockerd appears to put the containerd.sock in the wrong
# place under systemd. So we just manually add a symlink for it.
[ -e "/var/run/docker/containerd/containerd.sock" ] || \
ln -s docker-containerd.sock /var/run/docker/containerd/containerd.sock
# And there appears to be an issue with daemon.json as a configuration format,
# so we need to hide our generated configuration. The original will be restored
# in cleanup().
rm -f "$CFG_DOCKER"
# Run all of our tests.
rm -f "$TEST_LOG"
for TEST in "${TESTS[@]}"
do
@ -210,9 +201,5 @@ do
log "Running integration test ($TEST)..." | tee -a "$TEST_LOG"
"$TEST" "${TEST_ARGS[@]}" 2>&1 | tee -a "$TEST_LOG" || :
done
if [ -n "$ENABLE_XUNIT" ] ; then
log "Generating xunit logs..."
go2xunit -fail -gocheck -input "$TEST_LOG" -output "$TEST_LOG.xml"
fi
export -n DOCKER_HOST