6fa2310f0e
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/cockpit#1fd0512356a037b7a9995076c57fdb2b103abb34
119 lines
3.1 KiB
Bash
Executable File
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
|