Files
fedora-tools/plasma-fingerprint-workaround/tests/test-controller
T

52 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/bash
set -euo pipefail
controller=$1
payload_config=$2
bash -n "$controller"
"$controller" --help | grep -q '^ .* enable \[--rpm PATH\] \[--force\] \[--yes\]$'
reject() {
if "$controller" "$@" >/dev/null 2>&1; then
printf 'Invalid invocation unexpectedly succeeded: %s\n' "$*" >&2
exit 1
fi
}
reject
reject unknown-command
reject status --yes
reject enable --rpm
reject enable --unknown
reject disable --force
payload_url=
payload_sha256=
# shellcheck source=/dev/null
source "$payload_config"
[[ $payload_url == https://*/*.rpm ]]
[[ $payload_sha256 =~ ^[[:xdigit:]]{64}$ ]]
# Load the functions through the harmless help command, then replace DNF with
# a test function. Never invoke the package manager in this test.
(
source "$controller" --help >/dev/null
dnf5() {
[[ $(umask) == 0022 && $1 == test-argument ]]
}
umask 077
run_dnf test-argument
[[ $(umask) == 0077 ]]
dnf5() { return 23; }
if run_dnf test-argument; then
printf 'DNF failure was not propagated.\n' >&2
exit 1
else
[[ $? == 23 ]]
fi
)
printf 'Controller tests passed.\n'