1 # rpmquery.at: test rpmquery
3 # Copyright (C) 2007 Ralf Corsépius <corsepiu@fedoraproject.org>
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 AT_BANNER([RPM queries])
21 # ------------------------------
22 AT_SETUP([rpm --qf -p *.i386.rpm])
26 -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \
27 -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
35 # ------------------------------
36 AT_SETUP([rpm --qf -p *.src.rpm])
40 -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \
41 -p "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
49 # ------------------------------
50 AT_SETUP([rpm -ql -p *.src.rpm])
55 -p "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
64 # ------------------------------
65 AT_SETUP([rpm -ql -p *.i386.rpm])
70 -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
74 /usr/share/doc/hello-1.0
75 /usr/share/doc/hello-1.0/FAQ
81 # ------------------------------
82 # Try to check "scripts"
83 # * Gets rpmpopt-$(VERSION) involved
84 AT_SETUP([rpm -q --scripts -p *.i386.rpm])
89 -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
92 [preinstall program: /bin/sh
93 postinstall program: /bin/sh
94 preuninstall program: /bin/sh
95 postuninstall program: /bin/sh
101 # ------------------------------
102 # install a package into a local rpmdb
103 # * Shall only work with relocation
104 # * Use --ignorearch because we don't know the arch
105 AT_SETUP([rpm -qil hello])
106 AT_KEYWORDS([rpmdb install query])
112 tpkg="hello-1.0-1.ppc64.rpm"
113 cp "${RPMDATA}/RPMS/$tpkg" "${RPMTEST}"
116 --noscripts --nodeps --ignorearch --relocate=/usr="${abs_builddir}"/testing/check \
130 cat > expout << _ATEOF
131 ${abs_builddir}/testing/check/local/bin/hello
132 ${abs_builddir}/testing/check/share/doc/hello-1.0
133 ${abs_builddir}/testing/check/share/doc/hello-1.0/FAQ
146 # ------------------------------
147 AT_SETUP([integer array query])
151 --queryformat="[[%{filemodes}\n]]" \
152 -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
162 # ------------------------------
163 AT_SETUP([formatted filesbypkg query])
167 --queryformat="[[%-10{=NAME} %{FILENAMES}\n]]" \
168 -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
171 [hello /usr/local/bin/hello
172 hello /usr/share/doc/hello-1.0
173 hello /usr/share/doc/hello-1.0/FAQ
178 # ------------------------------
179 AT_SETUP([hex formatted integer array extension query])
183 --queryformat="[[%5{longfilesizes:hex}\n]]" \
184 -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
194 # ------------------------------
195 AT_SETUP([base64 extension query])
199 --queryformat="%{pkgid:base64}" \
200 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
203 [qt8W635v5FKy1pILrW+0uw==
208 # ------------------------------
209 AT_SETUP([integer array perms format query])
213 --queryformat="[[%{filemodes:perms}\n]]" \
214 -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
224 # ------------------------------
225 AT_SETUP([string array query])
229 --queryformat="[[%{basenames} ]]" \
230 -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
233 [hello hello-1.0 FAQ ],
237 # ------------------------------
238 AT_SETUP([empty string array query])
242 --queryformat="[[%{basenames}]]" \
243 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
250 # ------------------------------
251 AT_SETUP([empty string array extension array format])
255 --queryformat="[[%{filenames}]]" \
256 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
263 # ------------------------------
264 AT_SETUP([empty string array extension query])
268 --queryformat="%{filenames}" \
269 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
276 # ------------------------------
277 AT_SETUP([different sizes arrays query])
281 --queryformat="[[%{basenames} %{changelogname}]]" \
282 -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
286 [error: incorrect format: array iterator used with different sized arrays
290 # ------------------------------
291 AT_SETUP([non-existent string tag])
295 --queryformat="%{vendor}" \
296 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
303 # ------------------------------
304 AT_SETUP([non-existent integer tag query])
308 --queryformat="%{installcolor}" \
309 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
316 # ------------------------------
317 AT_SETUP([conditional queryformat])
321 --queryformat="%|name?{%{name}}:{no}| %|installtime?{%{installtime}}:{(not installed)}|" \
322 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
325 [foo (not installed)],
329 # ------------------------------
330 AT_SETUP([invalid tag query])
334 --queryformat="%{notag}" \
335 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
339 [error: incorrect format: unknown tag
343 # ------------------------------
344 AT_SETUP([invalid data for format query])
348 --queryformat="%{name:depflags}" \
349 -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm