a0f5493eef
Only set `$SOURCE` to ./source/ if that actually exists, which is when it is being called through Standard Test Interface. Provide fallbacks for using FMF or when calling the script manually.
66 lines
2.2 KiB
Bash
Executable File
66 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eux
|
|
|
|
TESTS="$(realpath $(dirname "$0"))"
|
|
if [ -d source ]; then
|
|
# path for standard-test-source
|
|
SOURCE="$(pwd)/source"
|
|
else
|
|
SOURCE="$(realpath $TESTS/..)"
|
|
fi
|
|
LOGS="$(pwd)/logs"
|
|
mkdir -p "$LOGS"
|
|
chmod a+w "$LOGS"
|
|
|
|
# install browser; on RHEL, use chromium from epel
|
|
# HACK: chromium 88 crashes with some keyDown commands: https://bugs.chromium.org/p/chromium/issues/detail?id=1170634
|
|
if rpm -q chromium-headless; then
|
|
dnf remove -y chromium-headless
|
|
fi
|
|
|
|
if grep -q 'ID=.*rhel' /etc/os-release; then
|
|
dnf install -y \
|
|
https://kojipkgs.fedoraproject.org//packages/chromium/87.0.4280.141/1.el8/x86_64/chromium-common-87.0.4280.141-1.el8.x86_64.rpm \
|
|
https://kojipkgs.fedoraproject.org//packages/chromium/87.0.4280.141/1.el8/x86_64/chromium-headless-87.0.4280.141-1.el8.x86_64.rpm
|
|
else
|
|
dnf install -y \
|
|
https://kojipkgs.fedoraproject.org//packages/chromium/87.0.4280.141/1.fc33/x86_64/chromium-common-87.0.4280.141-1.fc33.x86_64.rpm \
|
|
https://kojipkgs.fedoraproject.org//packages/chromium/87.0.4280.141/1.fc33/x86_64/chromium-headless-87.0.4280.141-1.fc33.x86_64.rpm
|
|
fi
|
|
|
|
# make libpwquality less aggressive, so that our "foobar" password works
|
|
printf 'dictcheck = 0\nminlen = 6\n' >> /etc/security/pwquality.conf
|
|
|
|
# set root password for logging in
|
|
echo root:foobar | chpasswd
|
|
|
|
# create user account for logging in
|
|
if ! id admin 2>/dev/null; then
|
|
useradd -c Administrator -G wheel admin
|
|
echo admin:foobar | chpasswd
|
|
fi
|
|
|
|
# create user account for running the test
|
|
if ! id runtest 2>/dev/null; then
|
|
useradd -c 'Test runner' runtest
|
|
# allow test to set up things on the machine
|
|
mkdir -p /root/.ssh
|
|
curl https://raw.githubusercontent.com/cockpit-project/bots/master/machine/identity.pub >> /root/.ssh/authorized_keys
|
|
chmod 600 /root/.ssh/authorized_keys
|
|
fi
|
|
chown -R runtest "$SOURCE"
|
|
|
|
# disable core dumps, we rather investigate them upstream where test VMs are accessible
|
|
echo core > /proc/sys/kernel/core_pattern
|
|
|
|
# make sure that we can access cockpit through the firewall
|
|
systemctl start firewalld
|
|
firewall-cmd --add-service=cockpit --permanent
|
|
firewall-cmd --add-service=cockpit
|
|
|
|
# Run tests as unprivileged user
|
|
su - -c "env SOURCE=$SOURCE LOGS=$LOGS $TESTS/run-test.sh" runtest
|
|
|
|
RC=$(cat $LOGS/exitcode)
|
|
exit ${RC:-1}
|