From: Harald Hoyer Date: Mon, 9 Jul 2012 14:28:47 +0000 (+0200) Subject: test: new test TEST-99-RPM X-Git-Tag: 021~44 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4eafdbdbe8ee3486ae96bdc6b5fa34112064a3ea;p=thirdparty%2Fdracut.git test: new test TEST-99-RPM 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. --- diff --git a/test/TEST-99-RPM/Makefile b/test/TEST-99-RPM/Makefile new file mode 100644 index 000000000..5513c5208 --- /dev/null +++ b/test/TEST-99-RPM/Makefile @@ -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 diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh new file mode 100755 index 000000000..25c189561 --- /dev/null +++ b/test/TEST-99-RPM/test.sh @@ -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 < /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