rpm/tests/rpme.at

380 lines
12 KiB
Plaintext

AT_SETUP([rpm -e and verify files removed])
AT_KEYWORDS([install erase rpmdb])
RPMDB_INIT
RPMTEST_CHECK([
runroot rpm -U --ignoreos --ignorearch --nodeps \
/data/RPMS/hello-2.0-1.x86_64.rpm
runroot rpm -Vv --nodeps --nogroup --nouser hello
runroot rpm -e hello
runroot rpm -Vv --nodeps --nogroup --nouser /data/RPMS/hello-2.0-1.x86_64.rpm
],
[1],
[......... /usr/bin/hello
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
missing /usr/bin/hello
missing /usr/share/doc/hello-2.0
missing d /usr/share/doc/hello-2.0/COPYING
missing d /usr/share/doc/hello-2.0/FAQ
missing d /usr/share/doc/hello-2.0/README
],
[])
RPMTEST_CLEANUP
AT_SETUP([rpm -e suid hardlink])
AT_KEYWORDS([install erase])
RPMDB_INIT
runroot rpmbuild -bb --quiet \
/data/SPECS/attrtest.spec
RPMTEST_CHECK([
# silence "user/group does not exist" messages
runroot rpm -U --nodeps /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm 2> /dev/null
runroot_other ln /i/file /if
runroot_other test -u /if && echo suid
runroot rpm -e attrtest
runroot_other test -f /if && echo exists
runroot_other test -u /if && echo suid
],
[1],
[suid
exists
],
[])
RPMTEST_CLEANUP
AT_SETUP([rpm reinstall with shared files])
AT_KEYWORDS([install erase update rpmdb])
RPMDB_INIT
RPMTEST_CHECK([
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 3" \
--define "_prefer_color 2" \
/data/RPMS/hello-2.0-1.x86_64.rpm \
/data/RPMS/hello-2.0-1.i686.rpm
runroot rpm -Vv --nodeps --nogroup --nouser hello.i686 hello.x86_64
runroot rpm --reinstall --ignoreos --ignorearch --nodeps \
--define "_transaction_color 3" \
--define "_prefer_color 2" \
/data/RPMS/hello-2.0-1.x86_64.rpm \
/data/RPMS/hello-2.0-1.i686.rpm
runroot rpm -Vv --nodeps --nogroup --nouser hello.i686 hello.x86_64
],
[0],
[......... /usr/bin/hello (wrong color)
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
......... /usr/bin/hello
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
......... /usr/bin/hello (wrong color)
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
......... /usr/bin/hello
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
],
[])
RPMTEST_CLEANUP
AT_SETUP([rpm -e and shared files removed 1.1])
AT_KEYWORDS([install erase rpmdb])
RPMDB_INIT
RPMTEST_CHECK([
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 3" \
--define "_prefer_color 2" \
--nodocs \
/data/RPMS/hello-2.0-1.x86_64.rpm
runroot rpm -Vv --nodeps --nogroup --nouser hello
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 3" \
--define "_prefer_color 2" \
/data/RPMS/hello-2.0-1.i686.rpm
runroot rpm -Vv --nodeps --nogroup --nouser hello.x86_64 hello.i686
runroot rpm -e hello.x86_64
runroot rpm -Vv --nodeps --nogroup --nouser /data/RPMS/hello-2.0-1.x86_64.rpm
],
[1],
[......... /usr/bin/hello
......... /usr/share/doc/hello-2.0 (not installed)
......... d /usr/share/doc/hello-2.0/COPYING (not installed)
......... d /usr/share/doc/hello-2.0/FAQ (not installed)
......... d /usr/share/doc/hello-2.0/README (not installed)
......... /usr/bin/hello
......... /usr/share/doc/hello-2.0 (not installed)
......... d /usr/share/doc/hello-2.0/COPYING (not installed)
......... d /usr/share/doc/hello-2.0/FAQ (not installed)
......... d /usr/share/doc/hello-2.0/README (not installed)
......... /usr/bin/hello (wrong color)
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
missing /usr/bin/hello
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
],
[])
RPMTEST_CLEANUP
AT_SETUP([rpm -e and shared files removed 1.2])
AT_KEYWORDS([install erase rpmdb])
RPMDB_INIT
RPMTEST_CHECK([
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 3" \
--define "_prefer_color 2" \
--nodocs \
/data/RPMS/hello-2.0-1.x86_64.rpm
runroot rpm -Vv --nodeps --nogroup --nouser hello
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 3" \
--define "_prefer_color 2" \
/data/RPMS/hello-2.0-1.i686.rpm
runroot rpm -Vv --nodeps --nogroup --nouser hello.x86_64 hello.i686
runroot rpm -e hello.i686
runroot rpm -Vv --nodeps --nogroup --nouser /data/RPMS/hello-2.0-1.x86_64.rpm
],
[1],
[......... /usr/bin/hello
......... /usr/share/doc/hello-2.0 (not installed)
......... d /usr/share/doc/hello-2.0/COPYING (not installed)
......... d /usr/share/doc/hello-2.0/FAQ (not installed)
......... d /usr/share/doc/hello-2.0/README (not installed)
......... /usr/bin/hello
......... /usr/share/doc/hello-2.0 (not installed)
......... d /usr/share/doc/hello-2.0/COPYING (not installed)
......... d /usr/share/doc/hello-2.0/FAQ (not installed)
......... d /usr/share/doc/hello-2.0/README (not installed)
......... /usr/bin/hello (wrong color)
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
......... /usr/bin/hello
missing /usr/share/doc/hello-2.0
missing d /usr/share/doc/hello-2.0/COPYING
missing d /usr/share/doc/hello-2.0/FAQ
missing d /usr/share/doc/hello-2.0/README
],
[])
RPMTEST_CLEANUP
# Test that removing shared or wrong colored files has no effect
AT_SETUP([rpm -e and verify colored files removed 1.1])
AT_KEYWORDS([install erase rpmdb])
RPMDB_INIT
RPMTEST_CHECK([
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 3" \
--define "_prefer_color 2" \
/data/RPMS/hello-2.0-1.i686.rpm /data/RPMS/hello-2.0-1.x86_64.rpm
runroot rpm -V --nodeps --nogroup --nouser hello.x86_64 hello.i686
runroot rpm -e hello.i686
runroot rpm -Vv --nodeps --nogroup --nouser hello
],
[0],
[......... /usr/bin/hello
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
],
[])
RPMTEST_CLEANUP
# XXX This is wrong really, rpm shouldn't let the real provider of
# a shared file get removed - and unforced action shouldn't result
# in verify failure.
AT_SETUP([rpm -e and verify colored files removed 1.2])
AT_KEYWORDS([install erase rpmdb])
RPMDB_INIT
RPMTEST_CHECK([
RPMDB_INIT
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 3" \
--define "_prefer_color 2" \
/data/RPMS/hello-2.0-1.i686.rpm /data/RPMS/hello-2.0-1.x86_64.rpm
runroot rpm -e hello.x86_64
runroot rpm -Vv --nodeps --nogroup --nouser hello
],
[1],
[missing /usr/bin/hello (wrong color)
......... /usr/share/doc/hello-2.0
......... d /usr/share/doc/hello-2.0/COPYING
......... d /usr/share/doc/hello-2.0/FAQ
......... d /usr/share/doc/hello-2.0/README
],
[])
RPMTEST_CLEANUP
# Test that shared colored files actually get removed regardless of order 1
AT_SETUP([rpm -e and verify colored files removed 2.1])
AT_XFAIL_IF([test $RPM_XFAIL -ne 0])
AT_KEYWORDS([install erase rpmdb])
RPMDB_INIT
RPMTEST_CHECK([
RPMDB_INIT
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 2" \
--define "_prefer_color 2" \
/data/RPMS/hello-2.0-1.i686.rpm /data/RPMS/hello-2.0-1.x86_64.rpm
runroot rpm -e hello.i686 hello.x86_64
runroot rpm -Vp --nodeps --nogroup --nouser /data/RPMS/hello-2.0-1.x86_64.rpm
],
[1],
[missing /usr/bin/hello
missing /usr/share/doc/hello-2.0
missing d /usr/share/doc/hello-2.0/COPYING
missing d /usr/share/doc/hello-2.0/FAQ
missing d /usr/share/doc/hello-2.0/README
],
[])
RPMTEST_CLEANUP
# Test that shared colored files actually get removed regardless of order 2
AT_SETUP([rpm -e and verify colored files removed 2.2])
AT_XFAIL_IF([test $RPM_XFAIL -ne 0])
AT_KEYWORDS([install erase rpmdb])
RPMDB_INIT
RPMTEST_CHECK([
RPMDB_INIT
runroot rpm -U --ignoreos --ignorearch --nodeps \
--define "_transaction_color 2" \
--define "_prefer_color 2" \
/data/RPMS/hello-2.0-1.i686.rpm /data/RPMS/hello-2.0-1.x86_64.rpm
runroot rpm -e hello.x86_64 hello.i686
runroot rpm -Vp --nodeps --nogroup --nouser /data/RPMS/hello-2.0-1.x86_64.rpm
],
[1],
[missing /usr/bin/hello
missing /usr/share/doc/hello-2.0
missing d /usr/share/doc/hello-2.0/COPYING
missing d /usr/share/doc/hello-2.0/FAQ
missing d /usr/share/doc/hello-2.0/README
],
[])
RPMTEST_CLEANUP
AT_SETUP([rpm -e and verify conflicting files removed 1])
AT_KEYWORDS([install erase rpmdb])
RPMDB_INIT
for p in a b; do
runroot rpmbuild -bb --quiet \
--define "pkg ${p}" \
--define "filedata pkg-${p}" \
/data/SPECS/conflicttest.spec
done
RPMTEST_CHECK([
runroot rpm -U --ignoreos /build/RPMS/noarch/conflicta-1.0-1.noarch.rpm
runroot rpm -U --ignoreos --excludepath=/usr/share /build/RPMS/noarch/conflictb-1.0-1.noarch.rpm
runroot rpm -Vv --nogroup --nouser conflicta conflictb
runroot rpm -e conflicta
runroot rpm -Vv --nogroup --nouser conflictb
runroot rpm -e conflictb
runroot rpm -Vp --nogroup --nouser /build/RPMS/noarch/conflictb-1.0-1.noarch.rpm
],
[1],
[......... /usr/share/my.version
......... /usr/share/my.version (not installed)
......... /usr/share/my.version (not installed)
missing /usr/share/my.version
],
[])
RPMTEST_CHECK([
runroot rpm -U --ignoreos --excludepath=/usr/share /build/RPMS/noarch/conflicta-1.0-1.noarch.rpm
runroot rpm -U --ignoreos /build/RPMS/noarch/conflictb-1.0-1.noarch.rpm
runroot rpm -Vv --nogroup --nouser conflicta conflictb
runroot rpm -e conflicta
runroot rpm -Vv --nogroup --nouser conflictb
runroot rpm -e conflictb
runroot rpm -Vp --nogroup --nouser /build/RPMS/noarch/conflictb-1.0-1.noarch.rpm
],
[1],
[......... /usr/share/my.version (not installed)
......... /usr/share/my.version
......... /usr/share/my.version
missing /usr/share/my.version
],
[])
RPMTEST_CHECK([
runroot rpm -U --ignoreos /build/RPMS/noarch/conflicta-1.0-1.noarch.rpm
runroot rpm -U --ignoreos --force /build/RPMS/noarch/conflictb-1.0-1.noarch.rpm
runroot rpm -Vv --nogroup --nouser conflicta conflictb
runroot rpm -e conflicta
runroot rpm -Vv --nogroup --nouser conflictb
runroot rpm -e conflictb
runroot rpm -Vp --nogroup --nouser /build/RPMS/noarch/conflictb-1.0-1.noarch.rpm
],
[1],
[......... /usr/share/my.version (replaced)
......... /usr/share/my.version
......... /usr/share/my.version
missing /usr/share/my.version
],
[])
RPMTEST_CHECK([
runroot rpm -U --ignoreos /build/RPMS/noarch/conflicta-1.0-1.noarch.rpm
runroot rpm -U --ignoreos --force /build/RPMS/noarch/conflictb-1.0-1.noarch.rpm
runroot rpm -Vv --nogroup --nouser conflicta conflictb
runroot rpm -e conflictb
runroot rpm -Vv --nogroup --nouser conflicta
runroot rpm -e conflicta
],
[0],
[......... /usr/share/my.version (replaced)
......... /usr/share/my.version
missing /usr/share/my.version (replaced)
],
[])
RPMTEST_CLEANUP
# Test %_netsharedpath erasure. It's a bit weird as we're abusing verify
# on non-installed package to see if files are there.
AT_SETUP([rpm -e and verify netshared files not removed])
AT_KEYWORDS([install erase rpmdb])
RPMTEST_CHECK([
RPMDB_INIT
runroot rpm -U --ignoreos --ignorearch --nodeps \
/data/RPMS/hello-2.0-1.x86_64.rpm
runroot rpm -e \
--define "_netsharedpath /usr/share" \
hello
runroot rpm -Vp --nodeps --nogroup --nouser /data/RPMS/hello-2.0-1.x86_64.rpm
],
[1],
[missing /usr/bin/hello
],
[])
RPMTEST_CLEANUP