diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2008-11-21 23:29:54 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2008-11-21 23:29:54 +0200 |
commit | ab3e32ad97e1c2143560ceb1aafb7c7bb85cfdcc (patch) | |
tree | c10f87d9d6624110297db4c85803766703e3c8fc /tests | |
parent | 357a7170fa04b5e28c75f4669689cd727b1cfd20 (diff) | |
download | rpm-ab3e32ad97e1c2143560ceb1aafb7c7bb85cfdcc.tar.gz rpm-ab3e32ad97e1c2143560ceb1aafb7c7bb85cfdcc.tar.bz2 rpm-ab3e32ad97e1c2143560ceb1aafb7c7bb85cfdcc.zip |
Add basic version comparison testing for install/upgrade
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/data/SPECS/versiontest.spec | 17 | ||||
-rw-r--r-- | tests/rpmtests.at | 1 | ||||
-rw-r--r-- | tests/rpmvercmp.at | 96 |
4 files changed, 116 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 680ce29c6..635504841 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -19,11 +19,13 @@ TESTSUITE_AT += rpmquery.at TESTSUITE_AT += rpmdb.at TESTSUITE_AT += rpmbuild.at TESTSUITE_AT += rpmi.at +TESTSUITE_AT = rpmvercmp.at EXTRA_DIST += $(TESTSUITE_AT) ## testsuite data EXTRA_DIST += data/SPECS/hello.spec EXTRA_DIST += data/SPECS/foo.spec +EXTRA_DIST += data/SPECS/versiontest.spec EXTRA_DIST += data/SOURCES/hello-1.0.tar.gz EXTRA_DIST += data/RPMS/foo-1.0-1.noarch.rpm EXTRA_DIST += data/RPMS/hello-1.0-1.i386.rpm diff --git a/tests/data/SPECS/versiontest.spec b/tests/data/SPECS/versiontest.spec new file mode 100644 index 000000000..bc015e0d8 --- /dev/null +++ b/tests/data/SPECS/versiontest.spec @@ -0,0 +1,17 @@ +Name: versiontest +Version: %{ver} +Release: 1 +Summary: Testing version behavior + +Group: Testing +License: GPL +BuildArch: noarch + +%description +%{summary} + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) diff --git a/tests/rpmtests.at b/tests/rpmtests.at index 43a57f903..975f3971b 100644 --- a/tests/rpmtests.at +++ b/tests/rpmtests.at @@ -3,3 +3,4 @@ m4_include([rpmquery.at]) m4_include([rpmdb.at]) m4_include([rpmi.at]) m4_include([rpmbuild.at]) +m4_include([rpmvercmp.at]) diff --git a/tests/rpmvercmp.at b/tests/rpmvercmp.at new file mode 100644 index 000000000..08b8df8a7 --- /dev/null +++ b/tests/rpmvercmp.at @@ -0,0 +1,96 @@ +# rpmvercmp.at: rpm version comparison tests + +# ------------------------------ +# Test normal upgrade +AT_SETUP([rpm -U upgrade to newer]) +AT_CHECK([ +RPMDB_CLEAR +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + run rpmbuild --quiet -bb \ + --define "ver $v" \ + ${RPMDATA}/SPECS/versiontest.spec +done + +runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm +], +[0], +[ignore], +[ignore]) +AT_CLEANUP + +# Test upgrading to older package (should fail) +AT_SETUP([rpm -U upgrade to older]) +AT_CHECK([ +RPMDB_CLEAR + +runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm +], +[2], +[ignore], +[ignore]) +AT_CLEANUP + +# Test downgrading to older package with --oldpackage +AT_SETUP([rpm -U --oldpackage downgrade]) +AT_CHECK([ +RPMDB_CLEAR + +runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -U --oldpackage "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm +], +[0], +[ignore], +[ignore]) +AT_CLEANUP + +# Test upgrade of different versions in same transaction +# XXX test that only 2.0-1 was installed +AT_SETUP([rpm -U two versions of same package]) +AT_CHECK([ +RPMDB_CLEAR + +runroot rpm -U \ + "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm +], +[0], +[ignore], +[ignore]) +AT_CLEANUP + +# Test install of two different versions in same transaction +# TODO: test that both got installed +AT_SETUP([rpm -i two versions of same package]) +AT_CHECK([ +RPMDB_CLEAR + +runroot rpm -i \ + "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm +], +[0], +[ignore], +[ignore]) +AT_CLEANUP + +# Test install of two different versions in same transaction +# TODO: test only one was installed +AT_SETUP([rpm -i identical versions of same package]) +AT_CHECK([ +RPMDB_CLEAR + +# TODO test just one was installed, this only emits warnings +runroot rpm -ivh \ + "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm +], +[0], +[ignore], +[ignore]) +AT_CLEANUP + +# TODO: the same with epoch vs no epoch |