rpm/tests/rpmvercmp.at

99 lines
2.2 KiB
Plaintext

# rpmvercmp.at: rpm version comparison tests
AT_BANNER([RPM version comparison])
# ------------------------------
# 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