TESTSUITE_AT = rpmtests.at
TESTSUITE_AT += rpmgeneral.at
TESTSUITE_AT += rpmquery.at
+TESTSUITE_AT += rpmverify.at
TESTSUITE_AT += rpmdb.at
TESTSUITE_AT += rpmbuild.at
TESTSUITE_AT += rpmi.at
EXTRA_DIST += data/SPECS/flangtest.spec
EXTRA_DIST += data/SPECS/symlinktest.spec
EXTRA_DIST += data/SPECS/deptest.spec
+EXTRA_DIST += data/SPECS/verifyscript.spec
EXTRA_DIST += data/SOURCES/hello-1.0-modernize.patch
EXTRA_DIST += data/SOURCES/hello-1.0.tar.gz
EXTRA_DIST += data/SOURCES/hello-2.0.tar.gz
--- /dev/null
+# 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