Files
rk1/tests/test-media-package.sh
T

33 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
PROJECT_DIR=$(cd -- "$SCRIPT_DIR/.." && pwd -P)
DEB=${1:-"$PROJECT_DIR/media/out/rk1-media-stack_20260721.1741+rk1.1_arm64.deb"}
[[ -f "$DEB" ]] || { echo "Missing media package: $DEB" >&2; exit 1; }
TEST_TMP=$(mktemp -d /tmp/rk1-media-package-test.XXXXXXXX)
trap 'rm -rf -- "$TEST_TMP"' EXIT
dpkg-deb --info "$DEB" >/dev/null
dpkg-deb --extract "$DEB" "$TEST_TMP/root"
dpkg-deb --control "$DEB" "$TEST_TMP/control"
[[ "$(dpkg-deb --field "$DEB" Package)" == rk1-media-stack ]]
[[ "$(dpkg-deb --field "$DEB" Architecture)" == arm64 ]]
if find "$TEST_TMP/root" \( -type d -o -type f \) -perm /0022 -print -quit | grep -q .; then
echo 'Package contains a group/world-writable path' >&2
exit 1
fi
! find "$TEST_TMP/root" -type f -name '*.a' -print -quit | grep -q .
! find "$TEST_TMP/root" -type d -name pkgconfig -print -quit | grep -q .
[[ -x "$TEST_TMP/root/opt/rkmedia/bin/ffmpeg-rk" ]]
[[ -x "$TEST_TMP/root/opt/rkmedia/bin/kodi-rk" ]]
[[ -f "$TEST_TMP/root/usr/lib/systemd/system/kodi-rk.service" ]]
[[ ! -e "$TEST_TMP/root/usr/lib/systemd/system/kodi.service" ]]
grep -q 'KERNEL=="rknpu\*"' "$TEST_TMP/root/usr/lib/udev/rules.d/70-rkmedia.rules"
grep -q 'udevadm trigger.*subsystem-match=drm' "$TEST_TMP/control/postinst"
! grep -q '^ConditionPathExists=/dev/dri/card0' \
"$TEST_TMP/root/usr/lib/systemd/system/kodi-rk.service"
echo "PASS: media package structure ($DEB)"