+++ /dev/null
-#!/bin/bash
-
-# This file is part of dracut.
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-# shellcheck disable=SC2034
-TEST_DESCRIPTION="rpm integrity after dracut and kernel install"
-
-test_check() {
- # disable for now
- return 1
- command -v rpm &> /dev/null && (command -v yum || command -v dnf) &> /dev/null
-}
-
-test_run() {
- set -x
- set -e
- export rootdir=$TESTDIR/root
-
- mkdir -p "$rootdir"
-
- mkdir -p "$rootdir/proc"
- mkdir -p "$rootdir/sys"
- mkdir -p "$rootdir/dev"
- mkdir -p "$rootdir/boot"
-
- trap 'ret=$?; [[ -d $rootdir ]] && { umount "$rootdir/proc"; umount "$rootdir/sys"; umount "$rootdir/dev"; rm -rf -- "$rootdir"; } || :; exit $ret;' EXIT
- trap '[[ -d $rootdir ]] && { umount "$rootdir/proc"; umount "$rootdir/sys"; umount "$rootdir/dev"; rm -rf -- "$rootdir"; } || :; exit 1;' SIGINT
-
- mount --bind /proc "$rootdir/proc"
- mount --bind /sys "$rootdir/sys"
- mount -t devtmpfs devtmpfs "$rootdir/dev"
-
- mkdir -p "$rootdir/$TESTDIR"
- cp --reflink=auto -a \
- "$TESTDIR"/dracut-[0-9]*."$(uname -m)".rpm \
- "$TESTDIR"/dracut-network-[0-9]*."$(uname -m)".rpm \
- "$rootdir/$TESTDIR/"
- . /etc/os-release
- dnf_or_yum=yum
- dnf_or_yum_cmd=yum
- command -v dnf > /dev/null && {
- dnf_or_yum="dnf"
- dnf_or_yum_cmd="dnf --allowerasing"
- }
- for ((i = 0; i < 5; i++)); do
- if $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/ --releasever "$VERSION_ID" --disablerepo='*' \
- --enablerepo=fedora --enablerepo=updates --setopt=install_weak_deps=False \
- install -y \
- $dnf_or_yum \
- passwd \
- rootfiles \
- systemd \
- systemd-udev \
- kernel \
- kernel-core \
- redhat-release \
- device-mapper-multipath \
- lvm2 \
- mdadm \
- bash \
- iscsi-initiator-utils \
- "$TESTDIR"/dracut-[0-9]*."$(uname -m)".rpm; then
- break
- fi
- done
- ((i < 5))
-
- cat > "$rootdir"/test.sh << EOF
-#!/bin/bash
-set -x
-export LC_MESSAGES=C
-rpm -Va 2>&1 | \\
- grep -F \\
- '85-display-manager.preset| /run| /var| /usr/lib/variant| /etc/machine-id| /etc/systemd/system/dbus-org.freedesktop.network1.service| /etc/systemd/system/dbus-org.freedesktop.resolve1.service| /etc/udev/hwdb.bin| /usr/share/info/dir.old' \\
- &> /test.output
-
-find / -xdev -type f -not -path '/var/*' \\
- -not -path '/usr/lib/modules/*/modules.*' \\
- -not -path '/etc/*-' \\
- -not -path '/etc/.pwd.lock' \\
- -not -path '/run/mount/utab' \\
- -not -path '/test.sh' \\
- -not -path '/test.output' \\
- -not -path '/etc/nsswitch.conf.bak' \\
- -not -path '/etc/iscsi/initiatorname.iscsi' \\
- -not -path '/boot/*0-rescue*' \\
- -not -path '/usr/share/mime/*' \\
- -not -path '/etc/crypto-policies/*' \\
- -not -path '/dev/null' \\
- -not -path "/boot/loader/entries/\$(cat /etc/machine-id)-*" \\
- -not -path "/boot/\$(cat /etc/machine-id)/*" \\
- -not -path '/etc/openldap/certs/*' \\
- -not -path '/etc/dnf/*' \\
- -print0 | xargs -0 rpm -qf | \\
- grep -F 'not owned' &>> /test.output || :
-exit 0
-EOF
-
- chmod 0755 "$rootdir/test.sh"
-
- chroot "$rootdir" /test.sh || :
-
- if [[ -s "$rootdir"/test.output ]]; then
- failed=1
- echo TEST Failed >&2
- cat "$rootdir"/test.output >&2
- fi
-
- umount "$rootdir/proc"
- umount "$rootdir/sys"
- umount "$rootdir/dev"
-
- [[ $failed ]] && return 1
- return 0
-
-}
-
-test_setup() {
- make -C "$basedir" DESTDIR="$TESTDIR/" rpm
- return 0
-}
-
-test_cleanup() {
- rm -fr -- "$TESTDIR"/*.rpm
- return 0
-}
-
-# shellcheck disable=SC1090
-. "$testdir"/test-functions