Upstream now grows more and more @nondestructive test, which we can run in our single test VM, so add the first batch. This uncovers some issues in the tests that assume that there is no root login in the VM, skip them. They are being fixed in https://github.com/cockpit-project/cockpit/pull/13773
62 lines
2.3 KiB
Bash
Executable File
62 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eux
|
|
|
|
# from standard-test-source
|
|
SOURCE="$(pwd)/source"
|
|
LOGS="$(pwd)/logs"
|
|
mkdir -p "$LOGS"
|
|
chmod a+w "$LOGS"
|
|
# these get mounted into the tasks container
|
|
chcon -Rt container_file_t "$SOURCE" "$LOGS"
|
|
|
|
# create user account for logging in
|
|
if ! id admin 2>/dev/null; then
|
|
useradd -c Administrator -G wheel admin
|
|
echo admin:foobar | chpasswd
|
|
fi
|
|
|
|
# The cockpit/tests container has chromium-browser and other test
|
|
# dependencies, which we don't have on RHEL itself. Also, we don't actually
|
|
# want to install these on the tested image, so run the test in a container,
|
|
# which tests the host. Use a fixed tag to avoid running into failures with
|
|
# "latest", as we don't gate container updates on the dist-git tests for now.
|
|
RC=0
|
|
cat <<EOF | podman run --rm -i -v "$SOURCE:/source:ro" -v "$LOGS:/logs" docker.io/cockpit/tasks:2020-01-30 /bin/sh -eux || RC=$?
|
|
# CSP does not like the the invalid host name _gateway, so translate it
|
|
HOST=\$(getent hosts _gateway | cut -f1 -d' ')
|
|
|
|
trap "cp --verbose Test* /logs/ || true" EXIT
|
|
|
|
# tests need cockpit's bots/ libraries
|
|
cd /tmp
|
|
git clone --depth=1 https://github.com/cockpit-project/cockpit
|
|
cd cockpit
|
|
git clone --depth=1 https://github.com/cockpit-project/bots
|
|
# copy tests from our source, so that they match the released version
|
|
rm -rf test
|
|
cp -a /source/test .
|
|
|
|
# only install a subset to save time/space
|
|
npm install axe-core chrome-remote-interface sizzle
|
|
|
|
export TEST_OS=fedora-32
|
|
export TEST_AUDIT_NO_SELINUX=1
|
|
|
|
# FIXME: Test{Accounts,Login}.testBasic don't get along with the existing root session (https://github.com/cockpit-project/cockpit/pull/13773)
|
|
test/verify/check-accounts -tv --machine \$HOST:22 --browser \$HOST:9090 TestAccounts.{testRootLogin,testUnprivileged}
|
|
test/verify/check-login -tv --machine \$HOST:22 --browser \$HOST:9090 TestLogin.{testExpired,testSELinuxRestrictedUser}
|
|
|
|
# check-menu is not @nondestructive yet, keep it last
|
|
for t in sosreport storage-basic menu; do
|
|
test/verify/check-\$t -tv --machine \$HOST:22 --browser \$HOST:9090
|
|
done
|
|
EOF
|
|
|
|
# reset system changes from verify tests, for running this multiple times in a row
|
|
# HACK: Isolate tests from each other: https://pagure.io/fedora-ci/general/issue/11
|
|
rm -f /etc/systemd/system/cockpit.service.d/notls.conf
|
|
systemctl daemon-reload
|
|
systemctl stop cockpit.service
|
|
|
|
exit $RC
|