Adapt the fix from PR #6161 to Quattro's per-user hardware setup and add coverage for detection, idempotency, and proprietary-driver handling.
49 lines
1.5 KiB
Bash
49 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
source "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)/base-test.sh"
|
|
|
|
test_tmp=$(mktemp -d)
|
|
trap 'rm -rf "$test_tmp"' EXIT
|
|
|
|
mkdir -p "$test_tmp/bin" "$test_tmp/home/.config/hypr"
|
|
cat >"$test_tmp/bin/lspci" <<'SH'
|
|
#!/bin/bash
|
|
printf '%s\n' "Kernel driver in use: ${TEST_VIDEO_DRIVER:-nouveau}"
|
|
SH
|
|
chmod +x "$test_tmp/bin/lspci"
|
|
|
|
looknfeel="$test_tmp/home/.config/hypr/looknfeel.lua"
|
|
printf '%s\n' '-- User look and feel' >"$looknfeel"
|
|
|
|
run_fix() {
|
|
HOME="$test_tmp/home" \
|
|
PATH="$test_tmp/bin:$ROOT/bin:$PATH" \
|
|
OMARCHY_NVIDIA_MODPROBE_CONFIG="$test_tmp/nvidia.conf" \
|
|
TEST_VIDEO_DRIVER="${1:-nouveau}" \
|
|
bash -euo pipefail -c 'source "$ROOT/install/user/hardware/fix-nouveau-cursor.sh"'
|
|
}
|
|
|
|
run_fix >/dev/null
|
|
grep -F 'no_hardware_cursors = true' "$looknfeel" >/dev/null
|
|
pass "nouveau hardware setup enables software cursors"
|
|
|
|
run_fix >/dev/null
|
|
(( $(grep -c 'no_hardware_cursors = true' "$looknfeel") == 1 )) || fail "nouveau cursor setup is idempotent"
|
|
pass "nouveau cursor setup is idempotent"
|
|
|
|
printf '%s\n' '-- User look and feel' >"$looknfeel"
|
|
run_fix i915 >/dev/null
|
|
if grep -q 'no_hardware_cursors' "$looknfeel"; then
|
|
fail "nouveau cursor setup ignores other video drivers"
|
|
fi
|
|
pass "nouveau cursor setup ignores other video drivers"
|
|
|
|
touch "$test_tmp/nvidia.conf"
|
|
run_fix >/dev/null
|
|
if grep -q 'no_hardware_cursors' "$looknfeel"; then
|
|
fail "nouveau cursor setup skips proprietary NVIDIA installs"
|
|
fi
|
|
pass "nouveau cursor setup skips proprietary NVIDIA installs"
|