cockpit/tests/run-test.sh
Petr Šabata 6fa2310f0e RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN
with the following as its source:
https://src.fedoraproject.org/rpms/cockpit#1fd0512356a037b7a9995076c57fdb2b103abb34
2020-10-14 23:00:28 +02:00

119 lines
3.1 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
rm package.json package-lock.json # otherwise the command below installs *everything*, argh
npm install axe-core chrome-remote-interface sizzle
export TEST_OS="${ID}-${VERSION_ID/./-}"
# HACK: upstream does not yet know about rawhide
if [ "$TEST_OS" = "fedora-34" ]; then
export TEST_OS=fedora-33
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
# takes too long, somehow breaks Ansible
EXCLUDES="$EXCLUDES TestMachines.testCreate"
# triggers SELinux violation
EXCLUDES="$EXCLUDES TestMachines.testAddDisk"
# not investigated yet
EXCLUDES="$EXCLUDES
TestMachines.testCreateThenInstall
TestMachines.testCreateFileSource
TestMachines.testCreateUrlSource
TestMachines.testVmNICs"
# 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"
# PCI devices list is not predictable
EXCLUDES="$EXCLUDES TestSystemInfo.testHardwareInfo"
# Known issue #1008
EXCLUDES="$EXCLUDES TestTuned.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" ] || [ "$TEST_OS" = "fedora-31" ]; then
EXCLUDES="$EXCLUDES TestLogin.testExpired"
fi
TESTS="$TESTS
TestAccounts
TestBonding
TestBridge
TestFirewall
TestKdump
TestLogin
TestNetworking
TestServices
TestSOS
TestSystemInfo
TestTeam
TestTerminal
TestTuned
"
fi
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