Chromium has started to crash in current Fedora, and is not easily available in RHEL. Install bzip2 to unpack the nightly tarball.
53 lines
1.7 KiB
Bash
Executable file
53 lines
1.7 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 firefox (available everywhere in Fedora and RHEL); install the package to pull in all the dependencies
|
|
# we don't need the H.264 codec, and it is sometimes not available (rhbz#2005760)
|
|
dnf install --disablerepo=fedora-cisco-openh264 -y firefox
|
|
# install nightly for Chrome DevTools Protocol support
|
|
curl --location 'https://download.mozilla.org/?product=firefox-nightly-latest-ssl&os=linux64&lang=en-US' | tar -C /usr/local/lib/ -xj
|
|
ln -s /usr/local/lib/firefox/firefox /usr/local/bin/
|
|
|
|
# create user account for logging in
|
|
if ! id admin 2>/dev/null; then
|
|
useradd -c Administrator -G wheel admin
|
|
echo admin:foobar | chpasswd
|
|
fi
|
|
|
|
# set root's password
|
|
echo root:foobar | chpasswd
|
|
|
|
# avoid sudo lecture during tests
|
|
su -c 'echo foobar | sudo --stdin whoami' - admin
|
|
|
|
# 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/main/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
|
|
|
|
systemctl enable --now cockpit.socket
|
|
|
|
# Run tests as unprivileged user
|
|
su - -c "env TEST_BROWSER=firefox SOURCE=$SOURCE LOGS=$LOGS $TESTS/run-test.sh" runtest
|
|
|
|
RC=$(cat $LOGS/exitcode)
|
|
exit ${RC:-1}
|