c7c30d7162
The "Terminate session" button does not work in CI, this needs to be investigated. Skip that test for now.
105 lines
2.7 KiB
Bash
Executable File
105 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eux
|
|
|
|
cd "$SOURCE"
|
|
|
|
. /etc/os-release
|
|
test_optional=
|
|
test_basic=
|
|
|
|
if ls ../cockpit-appstream* 1> /dev/null 2>&1; then
|
|
test_optional=1
|
|
else
|
|
test_basic=1
|
|
fi
|
|
|
|
if [ "$ID" = "fedora" ]; then
|
|
test_basic=1
|
|
test_optional=1
|
|
fi
|
|
|
|
# tests need cockpit's bots/ libraries
|
|
git clone --depth=1 https://github.com/cockpit-project/bots
|
|
|
|
# only install a subset to save time/space
|
|
npm install axe-core chrome-remote-interface sizzle
|
|
|
|
export TEST_OS="${ID}-${VERSION_ID/./-}"
|
|
# HACK: upstream does not yet know about fedora rawhide
|
|
if [ "$TEST_OS" = "fedora-33" ]; then
|
|
export TEST_OS=fedora-32
|
|
fi
|
|
|
|
# HACK: CI hits this selinux denial. Unrelated to our tests.
|
|
export TEST_ALLOW_JOURNAL_MESSAGES=".*Permission denied:.*/var/cache/app-info/xmls.*"
|
|
|
|
# select tests
|
|
TESTS=""
|
|
EXCLUDES=""
|
|
RC=0
|
|
if [ -n "$test_optional" ]; then
|
|
# pre-download cirros image for Machines tests
|
|
bots/image-download cirros
|
|
|
|
# still too unstable
|
|
EXCLUDES="$EXCLUDES
|
|
TestMachines.testCreate
|
|
TestMachines.testNetworkSettings
|
|
TestMachines.testVmNICs"
|
|
|
|
# triggers SELinux violation
|
|
EXCLUDES="$EXCLUDES TestMachines.testAddDisk"
|
|
|
|
# TestUpdates: we can't run rebooting tests
|
|
TESTS="$TESTS
|
|
TestAutoUpdates
|
|
TestMachines
|
|
TestStorage
|
|
TestUpdates.testBasic
|
|
TestUpdates.testSecurityOnly"
|
|
fi
|
|
|
|
if [ -n "$test_basic" ]; then
|
|
# still too unstable
|
|
EXCLUDES="$EXCLUDES TestFirewall.testNetworkingPage"
|
|
|
|
# TODO: fix for CI environment
|
|
EXCLUDES="$EXCLUDES TestLogin.testTally"
|
|
EXCLUDES="$EXCLUDES TestAccounts.testBasic"
|
|
|
|
# PAM bug in RHEL 8: it shouldn't pwquality the old password when having to set a new one, that's completely counter-productive and wrong
|
|
if [ "${TEST_OS#rhel}" != "$TEST_OS" ]; then
|
|
EXCLUDES="$EXCLUDES TestLogin.testExpired"
|
|
fi
|
|
|
|
TESTS="$TESTS
|
|
TestAccounts
|
|
TestFirewall
|
|
TestLogin
|
|
TestNetworking
|
|
TestSOS"
|
|
fi
|
|
|
|
# HACK: use fixed run-tests for BlockingIOError and --exclude, until version 222 gets packaged
|
|
curl https://raw.githubusercontent.com/cockpit-project/cockpit/master/test/common/run-tests > test/common/run-tests
|
|
chmod a+x test/common/run-tests
|
|
|
|
exclude_options=""
|
|
for t in $EXCLUDES; do
|
|
exclude_options="$exclude_options --exclude $t"
|
|
done
|
|
|
|
# execute run-tests
|
|
test/common/run-tests --test-dir test/verify --trace --verbose --nondestructive $exclude_options \
|
|
--machine localhost:22 --browser localhost:9090 $TESTS || RC=$?
|
|
|
|
# check-menu is not @nondestructive yet, keep it last
|
|
if [ -n "$test_basic" ]; then
|
|
test/verify/check-menu -tv --machine localhost:22 --browser localhost:9090 || RC=$?
|
|
fi
|
|
|
|
echo $RC > "$LOGS/exitcode"
|
|
cp --verbose Test* "$LOGS" || true
|
|
# deliver test result via exitcode file
|
|
exit 0
|