diff options
Diffstat (limited to 'tests/rpmverify.at')
-rw-r--r-- | tests/rpmverify.at | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/tests/rpmverify.at b/tests/rpmverify.at new file mode 100644 index 0000000..87bcdee --- /dev/null +++ b/tests/rpmverify.at @@ -0,0 +1,122 @@ +# rpmverify.at: rpm verification tests + +AT_BANNER([RPM verification]) + +# ------------------------------ +# +AT_SETUP([dependency problems]) +AT_KEYWORDS([verify]) +AT_CHECK([ +RPMDB_CLEAR +rm -rf "${TOPDIR}" + +run rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-two" \ + ${RPMDATA}/SPECS/deptest.spec + +runroot rpm -U --nodeps "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -Va +], +[1], +[Unsatisfied dependencies for deptest-one-1.0-1.noarch: + deptest-two is needed by (installed) deptest-one-1.0-1.noarch +], +[]) +AT_CLEANUP + +# Test file verify when no errors expected. +# Ignore dependencies here as we're not testing for them, and +# --nogroup --nouser is required when running tests as non-root. +AT_SETUP([files with no problems]) +AT_KEYWORDS([verify]) +AT_CHECK([ +RPMDB_CLEAR + +tpkg="hello-1.0-1.i386.rpm" +cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}" + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos "${tpkg}" +runroot rpm -Va --nodeps --nouser --nogroup +], +[0], +[], +[]) +AT_CLEANUP + +# Test file verify when no errors expected in verbose mode. +AT_SETUP([files with no problems in verbose mode]) +AT_KEYWORDS([verify]) +AT_CHECK([ +RPMDB_CLEAR + +tpkg="hello-1.0-1.i386.rpm" +cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}" + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos "${tpkg}" +runroot rpm -Vva --nodeps --nouser --nogroup +], +[0], +[......... /usr/local/bin/hello +......... /usr/share/doc/hello-1.0 +......... d /usr/share/doc/hello-1.0/FAQ +], +[]) +AT_CLEANUP + +# Test file verify after mutilating the files a bit. +AT_SETUP([verify files with problems present]) +AT_KEYWORDS([verify]) +AT_CHECK([ +RPMDB_CLEAR + +tpkg="hello-1.0-1.i386.rpm" +cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}" + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos "${tpkg}" +rm -f "${RPMTEST}"/usr/share/doc/hello-1.0/FAQ +chmod u-x "${RPMTEST}"/usr/local/bin/hello +dd if=/dev/zero of="${RPMTEST}"/usr/local/bin/hello \ + conv=notrunc bs=1 seek=5 count=6 2> /dev/null +runroot rpm -Va --nodeps --nouser --nogroup +], +[1], +[5..T...M. /usr/local/bin/hello +missing d /usr/share/doc/hello-1.0/FAQ +], +[]) +AT_CLEANUP + +# Test verify script success & failure behavior +# Ignoring stderr spew for now +AT_SETUP([verifyscript failure]) +AT_KEYWORDS([verify]) +AT_CHECK([ +RPMDB_CLEAR + +rm -rf "${TOPDIR}" +run rpmbuild --quiet -bb "${RPMDATA}"/SPECS/verifyscript.spec +runroot rpm -U --nodeps "${TOPDIR}"/RPMS/noarch/verifyscript-1.0-1.noarch.rpm +rm -f "${RPMTEST}"/var/checkme +runroot rpm -V --nodeps verifyscript +], +[1], +[], +[ignore]) +AT_CLEANUP + +AT_SETUP([verifyscript success]) +AT_KEYWORDS([verify]) +AT_CHECK([ +RPMDB_CLEAR + +rm -rf "${TOPDIR}" +run rpmbuild --quiet -bb "${RPMDATA}"/SPECS/verifyscript.spec +runroot rpm -U --nodeps "${TOPDIR}"/RPMS/noarch/verifyscript-1.0-1.noarch.rpm +touch "${RPMTEST}"/var/checkme +runroot rpm -V --nodeps verifyscript +], +[0], +[], +[]) +AT_CLEANUP |