diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/all.fmf b/plans/all.fmf new file mode 100644 index 0000000..40356c6 --- /dev/null +++ b/plans/all.fmf @@ -0,0 +1,19 @@ +discover: + how: fmf +execute: + how: tmt + +/system: + summary: Run tests on system podman + discover+: + test: /test/browser/system + +/user: + summary: Run tests on user podman + discover+: + test: /test/browser/user + +/misc: + summary: Run other tests + discover+: + test: /test/browser/other diff --git a/test/browser/browser.sh b/test/browser/browser.sh new file mode 100644 index 0000000..052a5ae --- /dev/null +++ b/test/browser/browser.sh @@ -0,0 +1,75 @@ +#!/bin/sh +set -eux + +TESTS="$(realpath $(dirname "$0"))" +SOURCE="$(realpath $TESTS/../..)" +LOGS="$(pwd)/logs" +mkdir -p "$LOGS" +chmod a+w "$LOGS" + +# HACK: https://bugzilla.redhat.com/show_bug.cgi?id=2033020 +dnf update -y pam || true + +# install firefox (available everywhere in Fedora and RHEL) +# we don't need the H.264 codec, and it is sometimes not available (rhbz#2005760) +dnf install --disablerepo=fedora-cisco-openh264 -y --setopt=install_weak_deps=False firefox + +# nodejs 10 is too old for current Cockpit test API +if grep -q platform:el8 /etc/os-release; then + dnf module switch-to -y nodejs:16 +fi + +# 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 + +## CSR specific setup ## +# install cockpit-packagekit and glibc-langpack-en for testAppMenu +dnf install -y cockpit-packagekit glibc-langpack-en + +mkdir -p /var/log/journal/ +cp 1.journal /var/log/journal/1.journal +cp binary-rec.journal /var/log/journal/binary-rec.journal + +# Add proxy provider domain for sssd for testSessionRecordingConf test +cat > /etc/sssd/sssd.conf <&2; exit 1 ;; +esac + +EXCLUDES="" + +RC=0 +test/common/run-tests --nondestructive --machine 127.0.0.1:22 --browser 127.0.0.1:9090 $TESTS $EXCLUDES || RC=$? + +echo $RC > "$LOGS/exitcode" +cp --verbose Test* "$LOGS" || true +# deliver test result via exitcode file +exit 0