Blame tests/browser.sh

7025753
#!/bin/sh
7025753
set -eux
7025753
7025753
# from standard-test-source
7025753
SOURCE="$(pwd)/source"
7025753
LOGS="$(pwd)/logs"
1d5f8f1
TESTS="$(pwd)/tests"
7025753
mkdir -p "$LOGS"
7025753
chmod a+w "$LOGS"
7025753
1d5f8f1
# install browser; on RHEL, use chromium from epel
1d5f8f1
if ! rpm -q chromium-headless; then
3d9d9a5
    if grep -q 'ID=.*rhel' /etc/os-release; then
1d5f8f1
        dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
1d5f8f1
        dnf config-manager --enable epel
1d5f8f1
    fi
1d5f8f1
    dnf install -y chromium-headless
1d5f8f1
fi
1d5f8f1
7025753
# create user account for logging in
7025753
if ! id admin 2>/dev/null; then
1d5f8f1
    useradd -c Administrator -G wheel admin
7025753
    echo admin:foobar | chpasswd
7025753
fi
1d5f8f1
7025753
# avoid sudo lecture during tests
7025753
su -c 'echo foobar | sudo --stdin whoami' - admin
7025753
1d5f8f1
# create user account for running the test
1d5f8f1
if ! id runtest 2>/dev/null; then
1d5f8f1
    useradd -c 'Test runner' runtest
0d5eac1
    # allow test to set up things on the machine
0d5eac1
    mkdir -p /root/.ssh
0d5eac1
    curl https://raw.githubusercontent.com/cockpit-project/bots/master/machine/identity.pub  >> /root/.ssh/authorized_keys
0d5eac1
    chmod 600 /root/.ssh/authorized_keys
1d5f8f1
fi
1d5f8f1
chown -R runtest "$SOURCE"
1d5f8f1
7025753
# disable core dumps, we rather investigate them upstream where test VMs are accessible
7025753
echo core > /proc/sys/kernel/core_pattern
7025753
4cef1ff
# cleanup any images that are on the system
4cef1ff
podman rmi -af
4cef1ff
7025753
# pull images for system podman tests
7025753
podman pull docker.io/busybox
7025753
podman pull docker.io/alpine
7025753
podman pull docker.io/registry:2
7025753
2957a06
# HACK: avoid leftover user podman processes between login sessions: https://github.com/containers/podman/issues/7021
2957a06
mkdir -p /etc/systemd/user/podman.service.d
2957a06
printf '[Service]\nKillMode=\n' > /etc/systemd/user/podman.service.d/cleanup.conf
2957a06
4cef1ff
# claenup and pull images for user podman tests; podman insists on user session
7025753
loginctl enable-linger $(id -u admin)
7025753
sudo -i -u admin bash << EOF
4cef1ff
podman rmi -af
7025753
podman pull docker.io/busybox
7025753
podman pull docker.io/alpine
7025753
podman pull docker.io/registry:2
7025753
EOF
1d5f8f1
loginctl disable-linger $(id -u admin)
7025753
1241906
systemctl enable --now cockpit.socket podman.socket
7025753
1d5f8f1
# Run tests as unprivileged user
1d5f8f1
su - -c "env SOURCE=$SOURCE LOGS=$LOGS $TESTS/run-test.sh" runtest
7025753
1d5f8f1
RC=$(cat $LOGS/exitcode)
1d5f8f1
exit ${RC:-1}