Browse Source
This test installs the dracut rpm together with the kernel in an installroot. rpm -Va and rpm -qf are used, to ensure nothing modified files in the real root.master

2 changed files with 93 additions and 0 deletions
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
all: |
||||
@make -s --no-print-directory -C ../.. clean all rpm |
||||
@basedir=../.. testdir=../ ./test.sh --all |
||||
setup: |
||||
@make --no-print-directory -C ../.. clean rpm |
||||
@basedir=../.. testdir=../ ./test.sh --setup |
||||
clean: |
||||
@basedir=../.. testdir=../ ./test.sh --clean |
||||
run: |
||||
@basedir=../.. testdir=../ ./test.sh --run |
@ -0,0 +1,83 @@
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash |
||||
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- |
||||
# ex: ts=8 sw=4 sts=4 et filetype=sh |
||||
TEST_DESCRIPTION="rpm integrity after dracut and kernel install" |
||||
$TESTDIR |
||||
|
||||
test_run() { |
||||
set -x |
||||
export rootdir=$TESTDIR/root |
||||
|
||||
mkdir -p $rootdir |
||||
|
||||
mkdir -p "$rootdir/proc" |
||||
mkdir -p "$rootdir/sys" |
||||
mkdir -p "$rootdir/dev" |
||||
|
||||
mount --bind /proc "$rootdir/proc" |
||||
mount --bind /sys "$rootdir/sys" |
||||
mount -t devtmpfs devtmpfs "$rootdir/dev" |
||||
|
||||
yum --nogpgcheck --releasever=/ --installroot "$rootdir"/ install -y \ |
||||
yum \ |
||||
passwd \ |
||||
rootfiles \ |
||||
systemd \ |
||||
kernel \ |
||||
fedora-release \ |
||||
device-mapper-multipath \ |
||||
lvm2 \ |
||||
mdadm \ |
||||
bash \ |
||||
iscsi-initiator-utils \ |
||||
$basedir/dracut-[0-9]*.$(arch).rpm \ |
||||
$basedir/dracut-network-[0-9]*.$(arch).rpm |
||||
|
||||
cat >"$rootdir"/test.sh <<EOF |
||||
#!/bin/bash |
||||
set -x |
||||
export LC_MESSAGES=C |
||||
rpm -Va &> /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 '/dev/null' \ |
||||
-exec rpm -qf '{}' ';' | \ |
||||
fgrep 'not owned' &> /test.output |
||||
exit |
||||
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() { |
||||
return 0 |
||||
} |
||||
|
||||
test_cleanup() { |
||||
return 0 |
||||
} |
||||
|
||||
. $testdir/test-functions |
Loading…
Reference in new issue