diff --git a/koji-osbuild.spec b/koji-osbuild.spec index e9ca7fb..671cdcc 100644 --- a/koji-osbuild.spec +++ b/koji-osbuild.spec @@ -71,6 +71,7 @@ install -m 0755 -vd %{buildroot}/%{_ install -m 0755 -vp test/make-certs.sh %{buildroot}/%{_libexecdir}/%{name}-tests/ install -m 0755 -vp test/build-container.sh %{buildroot}/%{_libexecdir}/%{name}-tests/ install -m 0755 -vp test/run-koji-container.sh %{buildroot}/%{_libexecdir}/%{name}-tests/ +install -m 0755 -vp test/run-openid.sh %{buildroot}/%{_libexecdir}/%{name}-tests/ install -m 0755 -vp test/copy-creds.sh %{buildroot}/%{_libexecdir}/%{name}-tests/ install -m 0755 -vp test/run-builder.sh %{buildroot}/%{_libexecdir}/%{name}-tests/ install -m 0755 -vp test/make-tags.sh %{buildroot}/%{_libexecdir}/%{name}-tests/ diff --git a/test/run-openid.sh b/test/run-openid.sh new file mode 100755 index 0000000..3a63c39 --- /dev/null +++ b/test/run-openid.sh @@ -0,0 +1,54 @@ +#!/bin/bash +set -eu + +SERVER_PORT="8081" +PIDFILE="/run/composer-openid-server.pid" + +server_start() { + echo "Starting mock OpenID server at :${SERVER_PORT}" + + /usr/libexec/osbuild-composer-test/osbuild-mock-openid-provider \ + -rsaPubPem /etc/osbuild-composer/client-crt.pem \ + -rsaPem /etc/osbuild-composer/client-key.pem \ + -cert /etc/osbuild-composer/composer-crt.pem \ + -key /etc/osbuild-composer/composer-key.pem \ + -a ":${SERVER_PORT}" \ + -expires 10 & + + until curl --output /dev/null --silent --fail "https://localhost:${SERVER_PORT}/token"; do + sleep 0.5 + done + + PID="$!" + echo "${PID}" > "${PIDFILE}" + echo "OpenID server running (${PID})" +} + +server_stop() { + echo "Stopping mock OpenID server" + + PID=$(cat "${PIDFILE}" 2> /dev/null || true) + + if [ -z "$PID" ]; then + echo "Server not running!" + return + fi + + echo "${PID}" + + EXIT_CODE=0 + kill "${PID}" > /dev/null || EXIT_CODE=$? + + if [ "${EXIT_CODE}" != 0 ]; then + "Could not kill process ${PID}" + fi +} + +if [ $# -lt 1 ]; then + echo -e "Usage: $0 " +elif [ $1 == "start" ]; then + server_start +elif [ $1 == "stop" ]; then + server_stop +fi +