1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# 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
|