summaryrefslogtreecommitdiff
path: root/tests/rpmi.at
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2010-11-22 10:36:54 +0200
committerPanu Matilainen <pmatilai@redhat.com>2010-11-22 11:51:13 +0200
commit95a52a37e8e9001b6bbb6950215da0aa7db12d40 (patch)
tree79fb96572af4a92c5b352add7d8be82f4fbc2719 /tests/rpmi.at
parent080007c90f285a57e6ba76c8c5fcd0d516d24ccc (diff)
downloadrpm-95a52a37e8e9001b6bbb6950215da0aa7db12d40.tar.gz
Move the current "version compare" tests to rpm install tests
- These are more about rpm install/upgrade behavior than pure version comparison, although obviously version comparison is involved
Diffstat (limited to 'tests/rpmi.at')
-rw-r--r--tests/rpmi.at104
1 files changed, 104 insertions, 0 deletions
diff --git a/tests/rpmi.at b/tests/rpmi.at
index c4063be8b..5500a3179 100644
--- a/tests/rpmi.at
+++ b/tests/rpmi.at
@@ -96,3 +96,107 @@ run rpm \
[ignore],
[ignore])
AT_CLEANUP
+
+# ------------------------------
+# 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
+runroot rpm -q versiontest
+],
+[0],
+[versiontest-2.0-1.noarch
+],
+[])
+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],
+[],
+[ package versiontest-2.0-1.noarch (which is newer than versiontest-1.0-1.noarch) is already installed
+])
+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
+runroot rpm -q versiontest
+],
+[0],
+[versiontest-1.0-1.noarch
+],
+[ignore])
+AT_CLEANUP
+
+# Test upgrade of different versions in same transaction
+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
+runroot rpm -q versiontest
+],
+[0],
+[versiontest-2.0-1.noarch
+],
+[])
+AT_CLEANUP
+
+# Test install of two different versions in same transaction
+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
+runroot rpm -q versiontest
+],
+[0],
+[versiontest-2.0-1.noarch
+versiontest-1.0-1.noarch
+],
+[])
+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
+
+runroot rpm -i \
+ "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm \
+ "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm
+runroot rpm -q versiontest
+],
+[0],
+[versiontest-1.0-1.noarch
+],
+[])
+AT_CLEANUP
+
+# TODO: the same with epoch vs no epoch