summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJinkun Jang <jinkun.jang@samsung.com>2013-03-12 15:17:20 +0900
committerJinkun Jang <jinkun.jang@samsung.com>2013-03-12 15:17:20 +0900
commit7df2385c2f6c93f96e00bc87f2086066cae89ecc (patch)
tree79d5c20a494622eb084de831a2a51530cd421e33 /tests
parentb7a3bffb8e0341b7e4ef69def268bca3a7f279ff (diff)
downloadrpm-tizen_2.2.tar.gz
rpm-tizen_2.2.tar.bz2
rpm-tizen_2.2.zip
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am102
-rw-r--r--tests/Makefile.in542
-rw-r--r--tests/atlocal.in36
-rw-r--r--tests/data/RPMS/foo-1.0-1.noarch.rpmbin0 -> 1489 bytes
-rw-r--r--tests/data/RPMS/hello-1.0-1.i386.rpmbin0 -> 4410 bytes
-rw-r--r--tests/data/RPMS/hello-1.0-1.ppc64.rpmbin0 -> 4913 bytes
-rw-r--r--tests/data/SOURCES/hello-1.0-modernize.patch13
-rw-r--r--tests/data/SOURCES/hello-1.0.tar.gzbin0 -> 890 bytes
-rw-r--r--tests/data/SOURCES/hello-2.0.tar.gzbin0 -> 863 bytes
-rw-r--r--tests/data/SPECS/configtest.spec23
-rw-r--r--tests/data/SPECS/conflicttest.spec23
-rw-r--r--tests/data/SPECS/deptest.spec17
-rw-r--r--tests/data/SPECS/flangtest.spec29
-rw-r--r--tests/data/SPECS/foo.spec26
-rw-r--r--tests/data/SPECS/hello.spec56
-rw-r--r--tests/data/SPECS/symlinktest.spec34
-rw-r--r--tests/data/SPECS/verifyscript.spec19
-rw-r--r--tests/data/SPECS/versiontest.spec17
-rw-r--r--tests/data/SRPMS/foo-1.0-1.src.rpmbin0 -> 1651 bytes
-rw-r--r--tests/data/SRPMS/hello-1.0-1.src.rpmbin0 -> 3322 bytes
-rw-r--r--tests/local.at30
-rw-r--r--tests/package.m46
-rw-r--r--tests/rpmbuild.at123
-rw-r--r--tests/rpmconfig.at99
-rw-r--r--tests/rpmconflict.at131
-rw-r--r--tests/rpmdb.at220
-rw-r--r--tests/rpmdepmatch.at241
-rw-r--r--tests/rpmdeps.at182
-rw-r--r--tests/rpmgeneral.at255
-rw-r--r--tests/rpmi.at202
-rw-r--r--tests/rpmmacro.at144
-rw-r--r--tests/rpmpython.at42
-rw-r--r--tests/rpmquery.at385
-rwxr-xr-xtests/rpmtests7511
-rw-r--r--tests/rpmtests.at13
-rw-r--r--tests/rpmvercmp.at31
-rw-r--r--tests/rpmverify.at122
37 files changed, 10674 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..21113da
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,102 @@
+## Process this file with automake to produce Makefile.in.
+
+include $(top_srcdir)/rpm.am
+
+EXTRA_DIST =
+CLEANFILES =
+
+# HACK: This should not be here.
+rpmbindir = `echo $(bindir) | sed -e s,usr/bin,bin,`
+
+##
+TESTSUITE = $(srcdir)/rpmtests
+EXTRA_DIST += local.at $(TESTSUITE)
+
+## testsuite components
+TESTSUITE_AT = rpmtests.at
+TESTSUITE_AT += rpmgeneral.at
+TESTSUITE_AT += rpmquery.at
+TESTSUITE_AT += rpmverify.at
+TESTSUITE_AT += rpmdb.at
+TESTSUITE_AT += rpmbuild.at
+TESTSUITE_AT += rpmi.at
+TESTSUITE_AT += rpmvercmp.at
+TESTSUITE_AT += rpmdeps.at
+TESTSUITE_AT += rpmconflict.at
+TESTSUITE_AT += rpmconfig.at
+TESTSUITE_AT += rpmmacro.at
+TESTSUITE_AT += rpmpython.at
+TESTSUITE_AT += rpmdepmatch.at
+EXTRA_DIST += $(TESTSUITE_AT)
+
+## testsuite data
+EXTRA_DIST += data/SPECS/hello.spec
+EXTRA_DIST += data/SPECS/foo.spec
+EXTRA_DIST += data/SPECS/versiontest.spec
+EXTRA_DIST += data/SPECS/conflicttest.spec
+EXTRA_DIST += data/SPECS/configtest.spec
+EXTRA_DIST += data/SPECS/flangtest.spec
+EXTRA_DIST += data/SPECS/symlinktest.spec
+EXTRA_DIST += data/SPECS/deptest.spec
+EXTRA_DIST += data/SPECS/verifyscript.spec
+EXTRA_DIST += data/SOURCES/hello-1.0-modernize.patch
+EXTRA_DIST += data/SOURCES/hello-1.0.tar.gz
+EXTRA_DIST += data/SOURCES/hello-2.0.tar.gz
+EXTRA_DIST += data/RPMS/foo-1.0-1.noarch.rpm
+EXTRA_DIST += data/RPMS/hello-1.0-1.i386.rpm
+EXTRA_DIST += data/RPMS/hello-1.0-1.ppc64.rpm
+EXTRA_DIST += data/SRPMS/foo-1.0-1.src.rpm
+EXTRA_DIST += data/SRPMS/hello-1.0-1.src.rpm
+
+# testsuite voodoo
+AUTOTEST = $(AUTOM4TE) --language=autotest
+$(TESTSUITE): $(srcdir)/package.m4 local.at $(TESTSUITE_AT)
+ $(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
+ mv $@.tmp $@
+
+$(srcdir)/package.m4: $(top_srcdir)/configure.ac
+ @{ \
+ echo '# Signature of the current package.'; \
+ echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \
+ echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \
+ echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \
+ echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \
+ echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
+ } >'$(srcdir)/package.m4'
+EXTRA_DIST += package.m4
+
+atconfig: ${top_builddir}/config.status
+ (cd ${top_builddir} && ./config.status ${subdir}/atconfig)
+CLEANFILES += atconfig
+
+
+atlocal: atlocal.in Makefile
+ @sed \
+ -e "s,[@]rpmbindir[@],$(rpmbindir)," \
+ -e "s,[@]usrbindir[@],$(bindir)," \
+ -e "s,[@]usrlibdir[@],$(libdir)," \
+ -e "s,[@]RPMCONFIGDIR[@],$(rpmconfigdir)," \
+ < $(srcdir)/atlocal.in > atlocal
+DISTCLEANFILES = atlocal
+EXTRA_DIST += atlocal.in
+
+# Hack: Abusing testing$(bindir)/rpmbuild as stamp file
+testing$(bindir)/rpmbuild: ../rpmbuild
+ rm -rf testing
+ (cd ${top_builddir} && \
+ $(MAKE) DESTDIR=`pwd`/${subdir}/testing install)
+
+check_DATA = atconfig atlocal $(TESTSUITE)
+check_DATA += testing$(bindir)/rpmbuild
+
+check-local: $(check_DATA)
+ $(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS) ||:
+
+installcheck-local: $(check_DATA)
+ $(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir)' \
+ $(TESTSUITEFLAGS) ||:
+
+clean-local:
+ test ! -f '$(TESTSUITE)' || $(SHELL) '$(TESTSUITE)' --clean
+ rm -f *.tmp
+ rm -rf testing
diff --git a/tests/Makefile.in b/tests/Makefile.in
new file mode 100644
index 0000000..aa72f4e
--- /dev/null
+++ b/tests/Makefile.in
@@ -0,0 +1,542 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/rpm.am
+subdir = tests
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOM4TE = @AUTOM4TE@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FIXPERMS = @FIXPERMS@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GREP = @GREP@
+HAVE_DOT = @HAVE_DOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LUA_CFLAGS = @LUA_CFLAGS@
+LUA_LIBS = @LUA_LIBS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POSUB = @POSUB@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RPMCANONARCH = @RPMCANONARCH@
+RPMCANONCOLOR = @RPMCANONCOLOR@
+RPMCANONGNU = @RPMCANONGNU@
+RPMCANONOS = @RPMCANONOS@
+RPMCANONVENDOR = @RPMCANONVENDOR@
+RPMCONFIGDIR = @RPMCONFIGDIR@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WITH_ACL_LIB = @WITH_ACL_LIB@
+WITH_BZ2_LIB = @WITH_BZ2_LIB@
+WITH_CAP_LIB = @WITH_CAP_LIB@
+WITH_DB_LIB = @WITH_DB_LIB@
+WITH_LIBELF_LIB = @WITH_LIBELF_LIB@
+WITH_LZMA_LIB = @WITH_LZMA_LIB@
+WITH_MAGIC_INCLUDE = @WITH_MAGIC_INCLUDE@
+WITH_MAGIC_LIB = @WITH_MAGIC_LIB@
+WITH_NSS_INCLUDE = @WITH_NSS_INCLUDE@
+WITH_NSS_LIB = @WITH_NSS_LIB@
+WITH_POPT_INCLUDE = @WITH_POPT_INCLUDE@
+WITH_POPT_LIB = @WITH_POPT_LIB@
+WITH_PYTHON_INCLUDE = @WITH_PYTHON_INCLUDE@
+WITH_PYTHON_LIB = @WITH_PYTHON_LIB@
+WITH_SELINUX_LIB = @WITH_SELINUX_LIB@
+WITH_SEMANAGE_LIB = @WITH_SEMANAGE_LIB@
+WITH_ZLIB_INCLUDE = @WITH_ZLIB_INCLUDE@
+WITH_ZLIB_LIB = @WITH_ZLIB_LIB@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+__BZIP2 = @__BZIP2@
+__CAT = @__CAT@
+__CC = @__CC@
+__CHGRP = @__CHGRP@
+__CHMOD = @__CHMOD@
+__CHOWN = @__CHOWN@
+__CP = @__CP@
+__CPIO = @__CPIO@
+__CURL = @__CURL@
+__FAKECHROOT = @__FAKECHROOT@
+__FILE = @__FILE@
+__GPG = @__GPG@
+__GREP = @__GREP@
+__GZIP = @__GZIP@
+__ID = @__ID@
+__INSTALL = @__INSTALL@
+__LD = @__LD@
+__LRZIP = @__LRZIP@
+__LZIP = @__LZIP@
+__MAKE = @__MAKE@
+__MKDIR = @__MKDIR@
+__MKDIR_P = @__MKDIR_P@
+__MV = @__MV@
+__NM = @__NM@
+__OBJCOPY = @__OBJCOPY@
+__OBJDUMP = @__OBJDUMP@
+__PATCH = @__PATCH@
+__PERL = @__PERL@
+__PGP = @__PGP@
+__PYTHON = @__PYTHON@
+__RESTORECON = @__RESTORECON@
+__RM = @__RM@
+__RSH = @__RSH@
+__SED = @__SED@
+__SEMODULE = @__SEMODULE@
+__SSH = @__SSH@
+__STRIP = @__STRIP@
+__TAR = @__TAR@
+__UNZIP = @__UNZIP@
+__XZ = @__XZ@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+dirstamp = @dirstamp@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# Internal binaries
+rpmlibexecdir = $(prefix)/lib/rpm
+
+# Host independent config files
+rpmconfigdir = $(prefix)/lib/rpm
+EXTRA_DIST = local.at $(TESTSUITE) $(TESTSUITE_AT) \
+ data/SPECS/hello.spec data/SPECS/foo.spec \
+ data/SPECS/versiontest.spec data/SPECS/conflicttest.spec \
+ data/SPECS/configtest.spec data/SPECS/flangtest.spec \
+ data/SPECS/symlinktest.spec data/SPECS/deptest.spec \
+ data/SPECS/verifyscript.spec \
+ data/SOURCES/hello-1.0-modernize.patch \
+ data/SOURCES/hello-1.0.tar.gz data/SOURCES/hello-2.0.tar.gz \
+ data/RPMS/foo-1.0-1.noarch.rpm data/RPMS/hello-1.0-1.i386.rpm \
+ data/RPMS/hello-1.0-1.ppc64.rpm data/SRPMS/foo-1.0-1.src.rpm \
+ data/SRPMS/hello-1.0-1.src.rpm package.m4 atlocal.in
+CLEANFILES = atconfig
+
+# HACK: This should not be here.
+rpmbindir = `echo $(bindir) | sed -e s,usr/bin,bin,`
+TESTSUITE = $(srcdir)/rpmtests
+TESTSUITE_AT = rpmtests.at rpmgeneral.at rpmquery.at rpmverify.at \
+ rpmdb.at rpmbuild.at rpmi.at rpmvercmp.at rpmdeps.at \
+ rpmconflict.at rpmconfig.at rpmmacro.at rpmpython.at \
+ rpmdepmatch.at
+
+# testsuite voodoo
+AUTOTEST = $(AUTOM4TE) --language=autotest
+DISTCLEANFILES = atlocal
+check_DATA = atconfig atlocal $(TESTSUITE) testing$(bindir)/rpmbuild
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/rpm.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_DATA)
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am: installcheck-local
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: all all-am check check-am check-local clean clean-generic \
+ clean-libtool clean-local distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installcheck-local \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am
+
+$(TESTSUITE): $(srcdir)/package.m4 local.at $(TESTSUITE_AT)
+ $(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
+ mv $@.tmp $@
+
+$(srcdir)/package.m4: $(top_srcdir)/configure.ac
+ @{ \
+ echo '# Signature of the current package.'; \
+ echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \
+ echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \
+ echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \
+ echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \
+ echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
+ } >'$(srcdir)/package.m4'
+
+atconfig: ${top_builddir}/config.status
+ (cd ${top_builddir} && ./config.status ${subdir}/atconfig)
+
+atlocal: atlocal.in Makefile
+ @sed \
+ -e "s,[@]rpmbindir[@],$(rpmbindir)," \
+ -e "s,[@]usrbindir[@],$(bindir)," \
+ -e "s,[@]usrlibdir[@],$(libdir)," \
+ -e "s,[@]RPMCONFIGDIR[@],$(rpmconfigdir)," \
+ < $(srcdir)/atlocal.in > atlocal
+
+# Hack: Abusing testing$(bindir)/rpmbuild as stamp file
+testing$(bindir)/rpmbuild: ../rpmbuild
+ rm -rf testing
+ (cd ${top_builddir} && \
+ $(MAKE) DESTDIR=`pwd`/${subdir}/testing install)
+
+check-local: $(check_DATA)
+ $(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS) ||:
+
+installcheck-local: $(check_DATA)
+ $(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir)' \
+ $(TESTSUITEFLAGS) ||:
+
+clean-local:
+ test ! -f '$(TESTSUITE)' || $(SHELL) '$(TESTSUITE)' --clean
+ rm -f *.tmp
+ rm -rf testing
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/atlocal.in b/tests/atlocal.in
new file mode 100644
index 0000000..d0ea0c8
--- /dev/null
+++ b/tests/atlocal.in
@@ -0,0 +1,36 @@
+LD_LIBRARY_PATH="${abs_builddir}/testing@usrlibdir@"
+export LD_LIBRARY_PATH
+PATH="${abs_builddir}/testing@rpmbindir@:${abs_builddir}/testing@usrbindir@:$PATH"
+export PATH
+
+PYLIBDIR=`python -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))"`
+PYTHONPATH="${abs_builddir}/testing${PYLIBDIR}"
+export PYTHONPATH
+
+RPMTEST="${abs_builddir}/testing"
+RPMDATA="${abs_srcdir}/data/"
+
+RPM_CONFIGDIR="${RPMTEST}/@RPMCONFIGDIR@"
+RPM_POPTEXEC_PATH="${RPMTEST}/@usrbindir@"
+export RPM_CONFIGDIR RPM_POPTEXEC_PATH
+
+# Popt looks into $HOME
+HOME="${RPMTEST}"
+export HOME
+
+TOPDIR="${RPMTEST}/build"
+
+RPM_XFAIL=${RPM_XFAIL-1}
+
+function run()
+{
+ "$@" --define "_topdir ${TOPDIR}"
+}
+
+function runroot()
+{
+ (cd ${RPMTEST} && \
+ mkdir -p etc && touch etc/mtab &&
+ FAKECHROOT_BASE="${RPMTEST}" fakechroot "$@" --define "_topdir ${TOPDIR}"
+ )
+}
diff --git a/tests/data/RPMS/foo-1.0-1.noarch.rpm b/tests/data/RPMS/foo-1.0-1.noarch.rpm
new file mode 100644
index 0000000..98c721b
--- /dev/null
+++ b/tests/data/RPMS/foo-1.0-1.noarch.rpm
Binary files differ
diff --git a/tests/data/RPMS/hello-1.0-1.i386.rpm b/tests/data/RPMS/hello-1.0-1.i386.rpm
new file mode 100644
index 0000000..73571e9
--- /dev/null
+++ b/tests/data/RPMS/hello-1.0-1.i386.rpm
Binary files differ
diff --git a/tests/data/RPMS/hello-1.0-1.ppc64.rpm b/tests/data/RPMS/hello-1.0-1.ppc64.rpm
new file mode 100644
index 0000000..c1b4e99
--- /dev/null
+++ b/tests/data/RPMS/hello-1.0-1.ppc64.rpm
Binary files differ
diff --git a/tests/data/SOURCES/hello-1.0-modernize.patch b/tests/data/SOURCES/hello-1.0-modernize.patch
new file mode 100644
index 0000000..bc3f3c8
--- /dev/null
+++ b/tests/data/SOURCES/hello-1.0-modernize.patch
@@ -0,0 +1,13 @@
+diff -up hello-1.0/hello.c.orig hello-1.0/hello.c
+--- hello-1.0/hello.c.orig 2010-08-18 11:45:55.000000000 +0300
++++ hello-1.0/hello.c 2010-08-18 11:48:23.000000000 +0300
+@@ -1,5 +1,7 @@
+-int
+-main()
++#include <stdio.h>
++
++int main(int argc, char *argv[])
+ {
+ printf("hello\n");
++ return 0;
+ }
diff --git a/tests/data/SOURCES/hello-1.0.tar.gz b/tests/data/SOURCES/hello-1.0.tar.gz
new file mode 100644
index 0000000..48b2cd7
--- /dev/null
+++ b/tests/data/SOURCES/hello-1.0.tar.gz
Binary files differ
diff --git a/tests/data/SOURCES/hello-2.0.tar.gz b/tests/data/SOURCES/hello-2.0.tar.gz
new file mode 100644
index 0000000..84976e2
--- /dev/null
+++ b/tests/data/SOURCES/hello-2.0.tar.gz
Binary files differ
diff --git a/tests/data/SPECS/configtest.spec b/tests/data/SPECS/configtest.spec
new file mode 100644
index 0000000..5ea7cae
--- /dev/null
+++ b/tests/data/SPECS/configtest.spec
@@ -0,0 +1,23 @@
+Name: configtest
+Version: %{ver}
+Release: 1
+Summary: Testing config file behavior
+
+Group: Testing
+License: GPL
+BuildArch: noarch
+
+%description
+%{summary}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}
+echo "%{filedata}" > $RPM_BUILD_ROOT/%{_sysconfdir}/my.conf
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%config %{_sysconfdir}/my.conf
diff --git a/tests/data/SPECS/conflicttest.spec b/tests/data/SPECS/conflicttest.spec
new file mode 100644
index 0000000..894b632
--- /dev/null
+++ b/tests/data/SPECS/conflicttest.spec
@@ -0,0 +1,23 @@
+Name: conflict%{pkg}
+Version: 1.0
+Release: 1
+Summary: Testing file conflict behavior
+
+Group: Testing
+License: GPL
+BuildArch: noarch
+
+%description
+%{summary}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/%{_datadir}
+echo "%{filedata}" > $RPM_BUILD_ROOT/%{_datadir}/my.version
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%{_datadir}/my.version
diff --git a/tests/data/SPECS/deptest.spec b/tests/data/SPECS/deptest.spec
new file mode 100644
index 0000000..3435325
--- /dev/null
+++ b/tests/data/SPECS/deptest.spec
@@ -0,0 +1,17 @@
+Name: deptest-%{pkg}
+Version: 1.0
+Release: 1
+Summary: Testing dependency behavior
+
+Group: Testing
+License: GPL
+BuildArch: noarch
+%{?reqs:Requires: %{reqs}}
+%{?provs:Provides: %{provs}}
+%{?cfls:Conflicts: %{cfls}}
+
+%description
+%{summary}
+
+%files
+%defattr(-,root,root,-)
diff --git a/tests/data/SPECS/flangtest.spec b/tests/data/SPECS/flangtest.spec
new file mode 100644
index 0000000..3f36795
--- /dev/null
+++ b/tests/data/SPECS/flangtest.spec
@@ -0,0 +1,29 @@
+Name: flangtest
+Version: 1.0
+Release: 1
+Summary: Testing file lang behavior
+Group: Testing
+License: GPL
+BuildArch: noarch
+
+%description
+%{summary}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+mkdir -p $RPM_BUILD_ROOT/%{_datadir}/%{name}
+for f in fi de en pl none; do
+ echo "This is $f language" > $RPM_BUILD_ROOT/%{_datadir}/%{name}/$f.txt
+done
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%lang(fi) %{_datadir}/%{name}/fi.txt
+%lang(de) %{_datadir}/%{name}/de.txt
+%lang(en) %{_datadir}/%{name}/en.txt
+%lang(pl) %{_datadir}/%{name}/pl.txt
+%{_datadir}/%{name}/none.txt
diff --git a/tests/data/SPECS/foo.spec b/tests/data/SPECS/foo.spec
new file mode 100644
index 0000000..986e6da
--- /dev/null
+++ b/tests/data/SPECS/foo.spec
@@ -0,0 +1,26 @@
+Summary: foo
+Name: foo
+Version: 1.0
+Release: 1
+Group: Utilities
+License: GPLv2+
+Distribution: RPM test suite.
+Provides: hi
+Conflicts: goodbye
+Obsoletes: howdy
+BuildArch: noarch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+%description
+Simple rpm demonstration.
+
+%prep
+
+%build
+
+%install
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
diff --git a/tests/data/SPECS/hello.spec b/tests/data/SPECS/hello.spec
new file mode 100644
index 0000000..066388f
--- /dev/null
+++ b/tests/data/SPECS/hello.spec
@@ -0,0 +1,56 @@
+Summary: hello -- hello, world rpm
+Name: hello
+Version: 1.0
+Release: 1
+Group: Utilities
+License: GPL
+Distribution: RPM test suite.
+Vendor: Red Hat Software
+Packager: Red Hat Software <bugs@redhat.com>
+URL: http://www.redhat.com
+Source0: hello-1.0.tar.gz
+Patch0: hello-1.0-modernize.patch
+Excludearch: lsi
+Excludeos: cpm
+Provides: hi
+Conflicts: goodbye
+Obsoletes: howdy
+Prefix: /usr
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+%description
+Simple rpm demonstration.
+
+%prep
+%setup -q
+%patch0 -p1 -b .modernize
+
+%build
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/local/bin
+make DESTDIR=$RPM_BUILD_ROOT install
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%pre
+
+%post
+
+%preun
+
+%postun
+
+%files
+%defattr(-,root,root)
+%doc FAQ
+#%readme README
+#%license COPYING
+%attr(0751,root,root) /usr/local/bin/hello
+
+%changelog
+* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com>
+- create.
diff --git a/tests/data/SPECS/symlinktest.spec b/tests/data/SPECS/symlinktest.spec
new file mode 100644
index 0000000..708ae85
--- /dev/null
+++ b/tests/data/SPECS/symlinktest.spec
@@ -0,0 +1,34 @@
+%bcond_with symlink
+
+Name: symlinktest
+Version: 1.0
+Release: %{rel}
+Summary: Testing symlink behavior
+Group: Testing
+License: GPL
+BuildArch: noarch
+
+%description
+%{summary}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/share
+%if %{with symlink}
+mkdir -p $RPM_BUILD_ROOT/usr/lib/%{name}
+echo %{name} > $RPM_BUILD_ROOT/usr/lib/%{name}/README
+ln -s ../lib/%{name} $RPM_BUILD_ROOT/usr/share/%{name}
+%else
+mkdir -p $RPM_BUILD_ROOT/usr/share/%{name}
+echo %{name} > $RPM_BUILD_ROOT/usr/share/%{name}/README
+%endif
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%if %{with symlink}
+/usr/lib/%{name}
+%endif
+/usr/share/%{name}
diff --git a/tests/data/SPECS/verifyscript.spec b/tests/data/SPECS/verifyscript.spec
new file mode 100644
index 0000000..cc7a124
--- /dev/null
+++ b/tests/data/SPECS/verifyscript.spec
@@ -0,0 +1,19 @@
+Name: verifyscript
+Version: 1.0
+Release: 1
+Summary: Testing verifyscript behavior
+
+Group: Testing
+License: GPL
+BuildArch: noarch
+
+%description
+%{summary}
+
+%verifyscript -p <lua>
+if not posix.access("/var/checkme", "f") then
+ error("bad")
+end
+
+%files
+%defattr(-,root,root)
diff --git a/tests/data/SPECS/versiontest.spec b/tests/data/SPECS/versiontest.spec
new file mode 100644
index 0000000..e241c83
--- /dev/null
+++ b/tests/data/SPECS/versiontest.spec
@@ -0,0 +1,17 @@
+Name: versiontest
+Version: %{ver}
+Release: 1
+Summary: Testing version behavior
+
+Group: Testing
+License: GPL
+BuildArch: noarch
+
+%description
+%{summary}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
diff --git a/tests/data/SRPMS/foo-1.0-1.src.rpm b/tests/data/SRPMS/foo-1.0-1.src.rpm
new file mode 100644
index 0000000..4ac3636
--- /dev/null
+++ b/tests/data/SRPMS/foo-1.0-1.src.rpm
Binary files differ
diff --git a/tests/data/SRPMS/hello-1.0-1.src.rpm b/tests/data/SRPMS/hello-1.0-1.src.rpm
new file mode 100644
index 0000000..2834d4e
--- /dev/null
+++ b/tests/data/SRPMS/hello-1.0-1.src.rpm
Binary files differ
diff --git a/tests/local.at b/tests/local.at
new file mode 100644
index 0000000..7ee8060
--- /dev/null
+++ b/tests/local.at
@@ -0,0 +1,30 @@
+AT_TESTED([rpm rpmbuild rpmquery])
+
+m4_define([RPMDB_INIT],[[
+run rpm \
+ --root="${abs_builddir}"/testing \
+ --initdb
+]])
+
+m4_define([RPMDB_CLEAR],[[
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+]])
+
+m4_define([RPMPY_RUN],[
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\n' % msg)
+$1
+EOF
+python test.py
+])
+
+m4_define([RPMPY_CHECK],[
+AT_SETUP([$1])
+AT_KEYWORDS([python])
+AT_CHECK([RPMPY_RUN([[$2]])], [], [$3], [$4])
+AT_CLEANUP
+])
+
+AT_INIT
diff --git a/tests/package.m4 b/tests/package.m4
new file mode 100644
index 0000000..e67580c
--- /dev/null
+++ b/tests/package.m4
@@ -0,0 +1,6 @@
+# Signature of the current package.
+m4_define([AT_PACKAGE_NAME], [rpm])
+m4_define([AT_PACKAGE_TARNAME], [rpm])
+m4_define([AT_PACKAGE_VERSION], [4.9.1])
+m4_define([AT_PACKAGE_STRING], [rpm 4.9.1])
+m4_define([AT_PACKAGE_BUGREPORT], [rpm-maint@lists.rpm.org])
diff --git a/tests/rpmbuild.at b/tests/rpmbuild.at
new file mode 100644
index 0000000..8263025
--- /dev/null
+++ b/tests/rpmbuild.at
@@ -0,0 +1,123 @@
+# rpmbuild.at: test rpmbuild
+#
+# Copyright (C) 2007 Ralf Corsépius <corsepiu@fedoraproject.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+AT_BANNER([RPM build])
+
+# ------------------------------
+# Check if rpmbuild -ba *.spec works
+AT_SETUP([rpmbuild -ba *.spec])
+AT_KEYWORDS([build])
+AT_CHECK([
+rm -rf ${TOPDIR}
+AS_MKDIR_P(${TOPDIR}/SOURCES)
+
+cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES
+
+run rpmbuild \
+ -ba "${abs_srcdir}"/data/SPECS/hello.spec
+],
+[0],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Check if rpmbuild -ba *.spec
+# honours a relative topdir with --root
+#AT_SETUP([rpmbuild --root=... -ba *.spec])
+#AT_KEYWORDS([build])
+#AT_XFAIL_IF([test $RPM_XFAIL -gt 0])
+#AT_CHECK([
+#rm -rf ${TOPDIR}
+#AS_MKDIR_P(${TOPDIR}/SOURCES)
+#
+#cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz ${TOPDIR}/SOURCES
+#
+#run rpmbuild \
+# --root="${abs_builddir}"/testing \
+# -ba "${abs_srcdir}"/data/SPECS/hello.spec
+#],
+#[0],
+#[ignore],
+#[ignore])
+#AT_CLEANUP
+
+# ------------------------------
+# Check if rpmbuild --rebuild *.src.rpm works
+AT_SETUP([rpmbuild --rebuild])
+AT_KEYWORDS([build])
+AT_CHECK([
+rm -rf ${TOPDIR}
+
+run rpmbuild \
+ --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+],
+[0],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Check if rpmbuild --rebuild *.src.rpm
+# honours a relative topdir with --root
+#AT_SETUP([rpmbuild --root=... --rebuild])
+#AT_KEYWORDS([build])
+#AT_XFAIL_IF([test $RPM_XFAIL -gt 0])
+#AT_CHECK([
+#rm -rf ${TOPDIR}
+#
+#run rpmbuild \
+# --root="${abs_builddir}"/testing \
+# --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+#],
+#[0],
+#[ignore],
+#[ignore])
+#AT_CLEANUP
+
+# ------------------------------
+# Check if tar unpacking works
+AT_SETUP([rpmbuild -tb <tar with bad spec>])
+AT_KEYWORDS([build])
+AT_CHECK([
+rm -rf ${TOPDIR}
+
+run rpmbuild \
+ -tb "${RPMDATA}/SOURCES/hello-1.0.tar.gz"
+],
+[1],
+[ignore],
+[error: line 5: Unknown tag: Serial: 1
+])
+AT_CLEANUP
+
+# ------------------------------
+# Check if tar build works
+# TODO: test that the rpms are actually created...
+AT_SETUP([rpmbuild -tb])
+AT_KEYWORDS([build])
+AT_CHECK([
+rm -rf ${TOPDIR}
+
+run rpmbuild \
+ -ta "${RPMDATA}/SOURCES/hello-2.0.tar.gz"
+],
+[0],
+[ignore],
+[ignore])
+AT_CLEANUP
diff --git a/tests/rpmconfig.at b/tests/rpmconfig.at
new file mode 100644
index 0000000..cbf4868
--- /dev/null
+++ b/tests/rpmconfig.at
@@ -0,0 +1,99 @@
+# rpmvercmp.at: rpm config file behavior tests
+
+AT_BANNER([RPM config file behavior])
+
+# ------------------------------
+# (Build and) upgrade package with config file, no backup here
+AT_SETUP([rpm -U to package with unchanged config file])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}/etc/my.conf"
+
+for v in "1.0" "2.0"; do
+ run rpmbuild --quiet -bb \
+ --define "ver $v" \
+ --define "filedata foo" \
+ ${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+],
+[0],
+)
+AT_CLEANUP
+#
+# ------------------------------
+# Upgrade package with locally modified config file, unchanged in pkg
+AT_SETUP([rpm -U to package with locally modified config file])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}/etc/my.conf"
+
+for v in "1.0" "2.0"; do
+ run rpmbuild --quiet -bb \
+ --define "ver $v" \
+ --define "filedata foo" \
+ ${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+echo "otherstuff" > "${RPMTEST}"/etc/my.conf
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+],
+[0],
+)
+AT_CLEANUP
+
+# ------------------------------
+# Upgrade package with unmodified config file, changed in pkg
+AT_SETUP([rpm -U to package with unchanged config file])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}/etc/my.conf"
+
+for v in "1.0" "2.0"; do
+ run rpmbuild --quiet -bb \
+ --define "ver $v" \
+ --define "filedata foo-$v" \
+ ${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+],
+[0],
+)
+AT_CLEANUP
+
+# ------------------------------
+# Upgrade package with locally modified config file, changed in pkg
+AT_SETUP([rpm -U to package with modified config file])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}/etc/my.conf"
+
+for v in "1.0" "2.0"; do
+ run rpmbuild --quiet -bb \
+ --define "ver $v" \
+ --define "filedata foo-$v" \
+ ${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+echo "otherstuff" > "${RPMTEST}"/etc/my.conf
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+],
+[0],
+[ignore],
+[warning: /etc/my.conf saved as /etc/my.conf.rpmsave]
+)
+AT_CLEANUP
diff --git a/tests/rpmconflict.at b/tests/rpmconflict.at
new file mode 100644
index 0000000..802804d
--- /dev/null
+++ b/tests/rpmconflict.at
@@ -0,0 +1,131 @@
+# rpmconflict.at: rpm file conflict tests
+
+AT_BANNER([RPM file conflicts])
+
+# ------------------------------
+# (Build and) install conflicting package (should fail)
+AT_SETUP([rpm -U to package with file conflict])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+for p in "one" "two"; do
+ run rpmbuild --quiet -bb \
+ --define "pkg $p" \
+ --define "filedata $p" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+],
+[1],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Install conflicting packages in same transaction (should fail)
+AT_SETUP([rpm -U two packages with a conflicting file])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+
+runroot rpm -U \
+ "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \
+ "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+],
+[2],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# (Build and) install package with shareable file
+AT_SETUP([rpm -U package with shareable file])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+for p in "one" "two"; do
+ run rpmbuild --quiet -bb \
+ --define "pkg $p" \
+ --define "filedata same_stuff" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+],
+[0],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Install packages with shareable file in same transaction
+AT_SETUP([rpm -U two packages with shareable file])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+
+runroot rpm -U \
+ "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \
+ "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+],
+[0],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+
+# ------------------------------
+# Replace directory with symlink, this is expected to fail
+AT_SETUP([rpm -U replacing directory with symlink])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}"/usr/{share,lib}/symlinktest*
+
+run rpmbuild --quiet -bb \
+ --define "rel 1" --without symlink ${RPMDATA}/SPECS/symlinktest.spec
+run rpmbuild --quiet -bb \
+ --define "rel 2" --with symlink ${RPMDATA}/SPECS/symlinktest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/symlinktest-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/symlinktest-1.0-2.noarch.rpm
+],
+[1],
+[],
+[error: unpacking of archive failed on file /usr/share/symlinktest: cpio: rename failed - Is a directory
+error: symlinktest-1.0-2.noarch: install failed
+error: symlinktest-1.0-1.noarch: erase skipped
+])
+AT_CLEANUP
+
+# ------------------------------
+# Replace symlink with a directory - the upgrade succeeds but leaves an
+# orphan directory that the symlink now points to. Should verify the
+# result more carefully...
+AT_SETUP([rpm -U replacing symlink with directory])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}"/usr/{share,lib}/symlinktest*
+
+run rpmbuild --quiet -bb \
+ --define "rel 1" --with symlink ${RPMDATA}/SPECS/symlinktest.spec
+run rpmbuild --quiet -bb \
+ --define "rel 2" --without symlink ${RPMDATA}/SPECS/symlinktest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/symlinktest-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/symlinktest-1.0-2.noarch.rpm
+],
+[0],
+[],
+[])
+AT_CLEANUP
diff --git a/tests/rpmdb.at b/tests/rpmdb.at
new file mode 100644
index 0000000..598d644
--- /dev/null
+++ b/tests/rpmdb.at
@@ -0,0 +1,220 @@
+# rpmdb.at: test rpmdb access
+#
+# Copyright (C) 2007 Ralf Corsépius <corsepiu@fedoraproject.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+AT_BANNER([RPM database access])
+
+# ------------------------------
+# Attempt to initialize a rpmdb
+AT_SETUP([rpm --initdb])
+AT_KEYWORDS([rpmdb])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+],
+[0],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Run rpm -qa on an empty rpmdb
+AT_SETUP([rpm -qa])
+AT_KEYWORDS([rpmdb query])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+runroot rpm \
+ -qa
+],
+[0])
+AT_CLEANUP
+
+
+# ------------------------------
+# install a noarch package into a local rpmdb without --relocate and --nodeps
+# * Should always succeed
+AT_SETUP([rpm -i *.noarch.rpm])
+AT_KEYWORDS([rpmdb install])
+
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+tpkg="foo-1.0-1.noarch.rpm"
+cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}"
+
+runroot rpm -i \
+ "${tpkg}"
+],
+[0])
+
+AT_CLEANUP
+
+# ------------------------------
+# reinstall a noarch package (with no files)
+AT_SETUP([rpm -U --replacepkgs])
+AT_KEYWORDS([rpmdb install])
+
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+tpkg="foo-1.0-1.noarch.rpm"
+cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}"
+
+runroot rpm -i "${tpkg}" && runroot rpm -U --replacepkgs "${tpkg}"
+],
+[0])
+
+AT_CLEANUP
+
+# ------------------------------
+# install a package into a local rpmdb
+# * Shall only work with relocation
+# * Use --ignorearch because we don't know the arch
+AT_SETUP([rpm -i --relocate=.. *.i386.rpm])
+AT_KEYWORDS([rpmdb install])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+tpkg="hello-1.0-1.i386.rpm"
+cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}"
+
+runroot rpm -i \
+ --noscripts --nodeps --ignorearch --relocate=/usr="${abs_builddir}"/testing/check \
+ "${tpkg}"
+],
+[0])
+
+AT_CLEANUP
+
+
+# ------------------------------
+# install a package into a local rpmdb
+# * Shall only work with relocation
+# * Use --ignorearch because we don't know the arch
+AT_SETUP([rpm -i --relocate=.. *.ppc64.rpm])
+AT_KEYWORDS([rpmdb install])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+tpkg="hello-1.0-1.ppc64.rpm"
+cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}"
+
+runroot rpm -i \
+ --noscripts --nodeps --ignorearch --relocate=/usr="${abs_builddir}"/testing/check \
+ "${tpkg}"
+],
+[0],
+[ignore],
+[ignore])
+
+AT_CLEANUP
+
+# ------------------------------
+# Install and verify status
+AT_SETUP([rpm -U and verify status])
+AT_KEYWORDS([install rpmdb query])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg status" \
+ --define "filedata same_stuff" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+runroot rpm -qls conflictstatus
+],
+[0],
+[normal /usr/share/my.version
+],
+[])
+AT_CLEANUP
+
+# ------------------------------
+# Install and verify status
+AT_SETUP([rpm -U with _install_lang and verify status])
+AT_KEYWORDS([install rpmdb query])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ ${RPMDATA}/SPECS/flangtest.spec
+
+runroot rpm -U --define "_install_langs de:fi" "${TOPDIR}"/RPMS/noarch/flangtest-1.0-1.noarch.rpm
+runroot rpm -qls flangtest
+],
+[0],
+[normal /usr/share/flangtest/de.txt
+not installed /usr/share/flangtest/en.txt
+normal /usr/share/flangtest/fi.txt
+normal /usr/share/flangtest/none.txt
+not installed /usr/share/flangtest/pl.txt
+],
+[])
+AT_CLEANUP
+
+# ------------------------------
+# Install and verify files exist on disk
+AT_SETUP([rpm -U and verify files on disk])
+AT_KEYWORDS([install rpmdb])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+rm -f "${RPMTEST}"/usr/share/my.version
+
+run rpmbuild --quiet -bb \
+ --define "pkg status" \
+ --define "filedata same_stuff" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+test -f "${RPMTEST}"/usr/share/my.version
+],
+[0],
+[],
+[])
+AT_CLEANUP
+
+# ------------------------------
+# Install, erase and verify files removed from disk
+AT_SETUP([rpm -e and verify files removed])
+AT_KEYWORDS([install rpmdb])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+rm -f "${RPMTEST}"/usr/share/my.version
+
+run rpmbuild --quiet -bb \
+ --define "pkg status" \
+ --define "filedata same_stuff" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+runroot rpm -e conflictstatus
+test -f "${RPMTEST}"/usr/share/my.version
+],
+[1],
+[],
+[])
+AT_CLEANUP
diff --git a/tests/rpmdepmatch.at b/tests/rpmdepmatch.at
new file mode 100644
index 0000000..3cef104
--- /dev/null
+++ b/tests/rpmdepmatch.at
@@ -0,0 +1,241 @@
+
+AT_BANNER([RPM dependency matching])
+
+RPMPY_CHECK([provide - require pairs],[
+# ((provides), (requires), match) expected values
+tests = [
+ # Different names never match
+ (('b',), ('a',), 0),
+ (('b',), ('a', '=', '1.2'), 0),
+ (('b',), ('a', '>=', '1.2'), 0),
+ (('b',), ('a', '<=', '1.2'), 0),
+ (('b',), ('a', '<', '1.2'), 0),
+ (('b',), ('a', '>', '1.2'), 0),
+ (('b',), ('a', '<>', '1.2'), 0),
+
+ # Unversioned provide matches all versions
+ (('a',), ('a',), 1),
+ (('a',), ('a', '=', '1.2'), 1),
+ (('a',), ('a', '>=', '1.2'), 1),
+ (('a',), ('a', '<=', '1.2'), 1),
+ (('a',), ('a', '<', '1.2'), 1),
+ (('a',), ('a', '>', '1.2'), 1),
+ (('a',), ('a', '<>', '1.2'), 1),
+
+ # Unversioned require matches all versions
+ (('a', '=', '1.2'), ('a',), 1),
+ (('a', '<', '1.2'), ('a',), 1),
+ (('a', '>', '1.2'), ('a',), 1),
+ (('a', '<=', '1.2'), ('a',), 1),
+ (('a', '>=', '1.2'), ('a',), 1),
+ (('a', '<>', '1.2'), ('a',), 1),
+
+ # Simple, obvious version comparisons
+ (('a', '=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1.2'), 0),
+
+ (('a', '=', '1.2'), ('a', '=', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '>=', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '<=', '1.3'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.3'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1.3'), 1),
+
+ # Simple, obvious version-release comparisons
+ (('a', '=', '1.2-1'), ('a', '=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2-1'), 0),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2-1'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2-1'), 0),
+
+ (('a', '=', '1.2-1'), ('a', '=', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2-2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2-2'), 1),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2-2'), 1),
+
+ (('a', '=', '1.3-1'), ('a', '=', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '>=', '1.2-2'), 1),
+ (('a', '=', '1.3-1'), ('a', '<=', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '<', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '>', '1.2-2'), 1),
+ (('a', '=', '1.3-1'), ('a', '<>', '1.2-2'), 1),
+
+ # Zero epoch is same as no epoch
+ (('a', '=', '0:1.2'), ('a', '=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '0:1.2'), ('a', '>', '1.2'), 0),
+ (('a', '=', '0:1.2'), ('a', '<>', '1.2'), 0),
+
+ (('a', '=', '1.2'), ('a', '=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '0:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>', '0:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '0:1.2'), 0),
+
+ # Non-zero epochs
+ (('a', '=', '1:1.2'), ('a', '=', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1:1.2'), ('a', '<=', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '>', '1.2'), 1),
+ (('a', '=', '1:1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '=', '1.2'), ('a', '=', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>=', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<=', '1:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1:1.2'), 1),
+
+ (('a', '=', '2:1.2'), ('a', '=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '>=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '<=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '<', '2:1.2'), 0),
+ (('a', '=', '2:1.2'), ('a', '>', '2:1.2'), 0),
+ (('a', '=', '2:1.2'), ('a', '<>', '2:1.2'), 0),
+
+ # Simple, obvious version comparisons with provide ranges
+ (('a', '>', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '>', '1.2'), ('a', '<=', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '>', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '>=', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '>=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '>=', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '<=', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<>', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '<>', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<>', '1.2'), 1),
+
+ # Missing release should be considered "any release will do"
+ # but this is not always so (the cases with "???")
+ (('a', '=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2'), 0),
+
+ (('a', '>', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '>', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '<', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '>=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '>=', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '<=', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<>', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '>', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '>', '1.2'), ('a', '<=', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '<', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '>', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '>=', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<', '1.2'), ('a', '>', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '>=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<>', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '<>', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<>', '1.2-1'), 1),
+]
+
+ms = ['no match', 'match']
+
+myprint() # dumb kludge to fixup expected output
+for p, r, res in tests:
+ d1 = rpm.ds(p, 'provides')
+ d2 = rpm.ds(r, 'requires')
+ match = d1.Compare(d2)
+ if match != res:
+ myprint('FAILED: %s with %s: %s' % (d1.DNEVR(), d2.DNEVR(),ms[res]))
+],
+[]
+)
diff --git a/tests/rpmdeps.at b/tests/rpmdeps.at
new file mode 100644
index 0000000..0254a11
--- /dev/null
+++ b/tests/rpmdeps.at
@@ -0,0 +1,182 @@
+# rpmdeps.at: rpm dependency tests
+
+AT_BANNER([RPM dependencies])
+
+# ------------------------------
+#
+AT_SETUP([missing dependency])
+AT_KEYWORDS([install])
+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 "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm
+],
+[1],
+[],
+[error: Failed dependencies:
+ deptest-two is needed by deptest-one-1.0-1.noarch
+])
+AT_CLEANUP
+
+# ------------------------------
+#
+AT_SETUP([cross-depending packages])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-two" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ --define "reqs deptest-one" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+],
+[0],
+[],
+[])
+AT_CLEANUP
+
+# ------------------------------
+#
+AT_SETUP([unsatisfied versioned require])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-two >= 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ --define "provs deptest-foo = 1.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+],
+[2],
+[],
+[error: Failed dependencies:
+ deptest-two >= 2.0 is needed by deptest-one-1.0-1.noarch
+])
+AT_CLEANUP
+
+# ------------------------------
+#
+AT_SETUP([satisfied versioned require])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-foo >= 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ --define "provs deptest-foo = 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+],
+[0],
+[],
+[])
+AT_CLEANUP
+
+# ------------------------------
+#
+AT_SETUP([versioned conflict in transaction])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "cfls deptest-two < 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+],
+[2],
+[],
+[error: Failed dependencies:
+ deptest-two < 2.0 conflicts with deptest-one-1.0-1.noarch
+])
+AT_CLEANUP
+
+# ------------------------------
+#
+AT_SETUP([versioned conflict in database])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "cfls deptest-two < 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+],
+[1],
+[],
+[error: Failed dependencies:
+ deptest-two < 2.0 conflicts with (installed) deptest-one-1.0-1.noarch
+])
+AT_CLEANUP
+# ------------------------------
+#
+AT_SETUP([erase to break dependencies])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-foo >= 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ --define "provs deptest-foo = 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+runroot rpm -e deptest-two
+],
+[1],
+[],
+[error: Failed dependencies:
+ deptest-foo >= 2.0 is needed by (installed) deptest-one-1.0-1.noarch
+])
+AT_CLEANUP
diff --git a/tests/rpmgeneral.at b/tests/rpmgeneral.at
new file mode 100644
index 0000000..cd90118
--- /dev/null
+++ b/tests/rpmgeneral.at
@@ -0,0 +1,255 @@
+# rpmgeneral.at: Some very basic checks
+#
+# Copyright (C) 2007 Ralf Corsépius <corsepiu@fedoraproject.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+AT_BANNER([Basic tests])
+
+# ------------------------------
+AT_SETUP([rpm --version])
+AT_KEYWORDS([basic])
+AT_CHECK([run rpm --version],[0],
+[RPM version AT_PACKAGE_VERSION
+])
+AT_CLEANUP
+
+
+# ------------------------------
+AT_SETUP([rpmbuild --version])
+AT_KEYWORDS([basic])
+AT_CHECK([run rpmbuild --version],[0],
+[RPM version AT_PACKAGE_VERSION
+])
+AT_CLEANUP
+
+
+# ------------------------------
+AT_SETUP([rpm --version])
+AT_KEYWORDS([basic])
+AT_CHECK([run rpm --version],[0],
+[RPM version AT_PACKAGE_VERSION
+])
+AT_CLEANUP
+
+
+# ------------------------------
+AT_SETUP([rpm --version])
+AT_KEYWORDS([basic])
+AT_CHECK([run rpm --version],[0],
+[RPM version AT_PACKAGE_VERSION
+])
+AT_CLEANUP
+
+
+# ------------------------------
+AT_SETUP([rpm --showrc])
+AT_KEYWORDS([basic])
+AT_CHECK([run rpm --showrc],[0],
+[ignore])
+AT_CLEANUP
+
+
+# ------------------------------
+# Check rpm --querytags
+# * Some versions of rpm append extraneous whitespaces
+AT_SETUP([rpm --querytags])
+AT_KEYWORDS([basic])
+AT_CHECK([run rpm --querytags],[0],
+[ARCH
+ARCHIVESIZE
+BASENAMES
+BUGURL
+BUILDARCHS
+BUILDHOST
+BUILDTIME
+C
+CHANGELOGNAME
+CHANGELOGTEXT
+CHANGELOGTIME
+CLASSDICT
+COLLECTIONS
+CONFLICTFLAGS
+CONFLICTNAME
+CONFLICTS
+CONFLICTVERSION
+COOKIE
+DBINSTANCE
+DEPENDSDICT
+DESCRIPTION
+DIRINDEXES
+DIRNAMES
+DISTRIBUTION
+DISTTAG
+DISTURL
+DSAHEADER
+E
+EPOCH
+EPOCHNUM
+EVR
+EXCLUDEARCH
+EXCLUDEOS
+EXCLUSIVEARCH
+EXCLUSIVEOS
+FILECAPS
+FILECLASS
+FILECOLORS
+FILECONTEXTS
+FILEDEPENDSN
+FILEDEPENDSX
+FILEDEVICES
+FILEDIGESTALGO
+FILEDIGESTS
+FILEFLAGS
+FILEGROUPNAME
+FILEINODES
+FILELANGS
+FILELINKTOS
+FILEMD5S
+FILEMODES
+FILEMTIMES
+FILENAMES
+FILEPROVIDE
+FILERDEVS
+FILEREQUIRE
+FILESIZES
+FILESTATES
+FILEUSERNAME
+FILEVERIFYFLAGS
+FSCONTEXTS
+GIF
+GROUP
+HDRID
+HEADERCOLOR
+HEADERI18NTABLE
+HEADERIMAGE
+HEADERIMMUTABLE
+HEADERREGIONS
+HEADERSIGNATURES
+ICON
+INSTALLCOLOR
+INSTALLTID
+INSTALLTIME
+INSTPREFIXES
+LICENSE
+LONGARCHIVESIZE
+LONGFILESIZES
+LONGSIGSIZE
+LONGSIZE
+N
+NAME
+NEVR
+NEVRA
+NOPATCH
+NOSOURCE
+NVR
+NVRA
+O
+OBSOLETEFLAGS
+OBSOLETENAME
+OBSOLETES
+OBSOLETEVERSION
+OLDFILENAMES
+OPTFLAGS
+ORDERFLAGS
+ORDERNAME
+ORDERVERSION
+ORIGBASENAMES
+ORIGDIRINDEXES
+ORIGDIRNAMES
+ORIGFILENAMES
+OS
+P
+PACKAGER
+PATCH
+PATCHESFLAGS
+PATCHESNAME
+PATCHESVERSION
+PAYLOADCOMPRESSOR
+PAYLOADFLAGS
+PAYLOADFORMAT
+PKGID
+PLATFORM
+POLICIES
+POLICYFLAGS
+POLICYNAMES
+POLICYTYPES
+POLICYTYPESINDEXES
+POSTIN
+POSTINFLAGS
+POSTINPROG
+POSTTRANS
+POSTTRANSFLAGS
+POSTTRANSPROG
+POSTUN
+POSTUNFLAGS
+POSTUNPROG
+PREFIXES
+PREIN
+PREINFLAGS
+PREINPROG
+PRETRANS
+PRETRANSFLAGS
+PRETRANSPROG
+PREUN
+PREUNFLAGS
+PREUNPROG
+PROVIDEFLAGS
+PROVIDENAME
+PROVIDES
+PROVIDEVERSION
+PUBKEYS
+R
+RECONTEXTS
+RELEASE
+REMOVETID
+REQUIREFLAGS
+REQUIRENAME
+REQUIRES
+REQUIREVERSION
+RPMVERSION
+RSAHEADER
+SHA1HEADER
+SIGGPG
+SIGMD5
+SIGPGP
+SIGSIZE
+SIZE
+SOURCE
+SOURCEPACKAGE
+SOURCEPKGID
+SOURCERPM
+SUMMARY
+TRIGGERCONDS
+TRIGGERFLAGS
+TRIGGERINDEX
+TRIGGERNAME
+TRIGGERSCRIPTFLAGS
+TRIGGERSCRIPTPROG
+TRIGGERSCRIPTS
+TRIGGERTYPE
+TRIGGERVERSION
+URL
+V
+VCS
+VENDOR
+VERBOSE
+VERIFYSCRIPT
+VERIFYSCRIPTFLAGS
+VERIFYSCRIPTPROG
+VERSION
+XPM
+])
+AT_CLEANUP
diff --git a/tests/rpmi.at b/tests/rpmi.at
new file mode 100644
index 0000000..5500a31
--- /dev/null
+++ b/tests/rpmi.at
@@ -0,0 +1,202 @@
+# rpmi.at: test various aspects of rpm install
+#
+# Copyright (C) 2007 Ralf Corsépius <corsepiu@fedoraproject.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+AT_BANNER([RPM install tests])
+
+# ------------------------------
+# Check if rpm -U *.src.rpm works
+AT_SETUP([rpm -U *.src.rpm])
+AT_KEYWORDS([install])
+AT_CHECK([
+rm -rf ${TOPDIR}
+
+run rpm \
+ -U "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+],
+[0],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Check if rpm -i *.src.rpm works
+AT_SETUP([rpm -i *.src.rpm])
+AT_KEYWORDS([install])
+AT_CHECK([
+rm -rf ${TOPDIR}
+
+run rpm \
+ -i "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+],
+[0],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Various error behavior tests
+#
+AT_SETUP([rpm -i <nonexistent file>])
+AT_KEYWORDS([install])
+AT_CHECK([
+run rpm \
+ -i no_such_file
+],
+[1],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+# XXX hmm, --nomanifest seems broken atm...
+AT_SETUP([rpm -i --nomanifest <garbage text file>])
+AT_KEYWORDS([install])
+AT_CHECK([
+junk="${RPMTEST}/textfile"
+cat << EOF > "${junk}"
+no_such.file
+not_an.rpm
+EOF
+
+run rpm \
+ -Uvv --nomanifest "${junk}"
+],
+[1],
+[ignore],
+[ignore])
+AT_CLEANUP
+
+AT_SETUP([rpm -i <garbage text file])
+AT_KEYWORDS([install])
+AT_CHECK([
+junk="${RPMTEST}/not_an.rpm"
+cat << EOF > "${junk}"
+no_such.file
+not_an.rpm
+EOF
+
+run rpm \
+ -Uvv "${junk}"
+],
+[2],
+[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
diff --git a/tests/rpmmacro.at b/tests/rpmmacro.at
new file mode 100644
index 0000000..dfec846
--- /dev/null
+++ b/tests/rpmmacro.at
@@ -0,0 +1,144 @@
+# rpmmacro.at: test rpm macros
+#
+AT_BANNER([RPM macros])
+
+# ------------------------------
+AT_SETUP([simple rpm --eval])
+AT_KEYWORDS([macros])
+AT_CHECK([
+run rpm --define "this that" --eval '%{this}'
+],
+[0],
+[that
+])
+AT_CLEANUP
+
+AT_SETUP([simple true conditional rpm --eval])
+AT_KEYWORDS([macros])
+AT_CHECK([
+run rpm --define "this that" --eval '%{?this}'
+],
+[0],
+[that
+])
+AT_CLEANUP
+
+AT_SETUP([simple false conditional rpm --eval])
+AT_KEYWORDS([macros])
+AT_CHECK([
+run rpm --define "this that" --eval '%{?that}'
+],
+[0],
+[
+])
+AT_CLEANUP
+
+AT_SETUP([uncompress macro])
+AT_KEYWORDS([macros])
+AT_CHECK([
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --define "__gzip /my/bin/gzip" \
+ --eval "%{uncompress:hello-2.0.tar.gz}"
+)
+],
+[0],
+[/my/bin/gzip -dc hello-2.0.tar.gz
+])
+AT_CLEANUP
+
+AT_SETUP([basename macro])
+AT_KEYWORDS([macros])
+AT_CHECK([
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --eval "%{basename:${RPMDATA}/SOURCES/hello-2.0.tar.gz}"
+)
+],
+[0],
+[hello-2.0.tar.gz
+])
+AT_CLEANUP
+
+AT_SETUP([suffix macro])
+AT_KEYWORDS([macros])
+AT_CHECK([
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --eval "%{suffix:${RPMDATA}/SOURCES/hello-2.0.tar.gz}"
+)
+],
+[0],
+[gz
+])
+AT_CLEANUP
+
+AT_SETUP([url2path macro])
+AT_KEYWORDS([macros])
+AT_CHECK([
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --eval "%{url2path:http://hello.org/releases/hello-2.0.tar.gz}"
+)
+],
+[0],
+[/releases/hello-2.0.tar.gz
+])
+AT_CLEANUP
+
+AT_SETUP([shell expansion])
+AT_KEYWORDS([macros])
+AT_CHECK([
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --eval "%(echo foo)"
+)
+],
+[0],
+[foo
+])
+AT_CLEANUP
+
+AT_SETUP([simple lua --eval])
+AT_KEYWORDS([macros lua])
+AT_CHECK([
+run rpm --eval '%{lua:print(5*5)}'
+],
+[0],
+[25
+])
+AT_CLEANUP
+
+AT_SETUP([lua rpm extensions])
+AT_KEYWORDS([macros lua])
+AT_CHECK([
+run rpm --eval '%{lua: rpm.define("foo bar") print(rpm.expand("%{foo}"))}'
+],
+[0],
+[bar
+])
+AT_CLEANUP
+
+AT_SETUP([lua posix extensions])
+AT_KEYWORDS([macros lua])
+AT_CHECK([
+run rpm \
+ --eval '%{lua: posix.putenv("LUATEST=ok") print(posix.getenv("LUATEST"))}'
+],
+[0],
+[ok
+])
+AT_CLEANUP
+
+AT_SETUP([lua script exit behavior])
+AT_KEYWORDS([macros lua])
+AT_CHECK([
+run rpm \
+ --eval '%{lua: os.exit()}))}'
+],
+[0],
+[
+],
+[error: lua script failed: [[string "<lua>"]]:1: exit not permitted in this context]
+)
+AT_CLEANUP
diff --git a/tests/rpmpython.at b/tests/rpmpython.at
new file mode 100644
index 0000000..e314615
--- /dev/null
+++ b/tests/rpmpython.at
@@ -0,0 +1,42 @@
+# rpmpython.at: test rpm python bindings
+# TODO: conditionalize on python availability
+
+AT_BANNER([Python bindings])
+
+RPMPY_CHECK([module import],[
+myprint(rpm.__version__)
+],
+[AT_PACKAGE_VERSION]
+)
+
+RPMPY_CHECK([basic header manipulation],[
+h = rpm.hdr()
+h['name'] = 'testpkg'
+h['version'] = '1.0'
+h['release'] = '1'
+h['epoch'] = 5
+h['arch'] = 'noarch'
+myprint(h['nevra'])
+del h['epoch']
+myprint(h['nevra'])
+],
+[testpkg-5:1.0-1.noarch
+testpkg-1.0-1.noarch]
+)
+
+RPMPY_CHECK([reading a package file],[
+ts = rpm.ts()
+h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-1.0-1.ppc64.rpm')
+myprint(h['arch'])
+],
+[ppc64]
+)
+
+RPMPY_CHECK([add package to transaction],[
+ts = rpm.ts()
+ts.addInstall('${RPMDATA}/RPMS/foo-1.0-1.noarch.rpm', 'u')
+for e in ts:
+ myprint(e.NEVRA())
+],
+[foo-1.0-1.noarch]
+)
diff --git a/tests/rpmquery.at b/tests/rpmquery.at
new file mode 100644
index 0000000..b7b800a
--- /dev/null
+++ b/tests/rpmquery.at
@@ -0,0 +1,385 @@
+# rpmquery.at: test rpmquery
+#
+# Copyright (C) 2007 Ralf Corsépius <corsepiu@fedoraproject.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+AT_BANNER([RPM queries])
+
+# ------------------------------
+AT_SETUP([rpm --qf -p *.i386.rpm])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \
+ -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[hello-1.0-1.i386
+],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([rpm --qf -p *.src.rpm])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \
+ -p "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+],
+[0],
+[hello-1.0-1.i386
+],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([rpm -ql -p *.src.rpm])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ -ql \
+ -p "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+],
+[0],
+[hello-1.0.tar.gz
+hello.spec
+],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([rpmspec -q])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpmspec \
+ -q --qf "%{name}" "${abs_srcdir}"/data/SPECS/hello.spec
+],
+[0],
+[hello],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([rpm -ql -p *.i386.rpm])
+AT_KEYWORDS([query])
+AT_CHECK([
+rpm \
+ -ql \
+ -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[/usr/local/bin/hello
+/usr/share/doc/hello-1.0
+/usr/share/doc/hello-1.0/FAQ
+],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Test query on manifest
+AT_SETUP([rpm -qp <manifest>])
+AT_KEYWORDS([query])
+AT_CHECK([
+cat << EOF > query.mft
+"${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+"${abs_srcdir}"/data/RPMS/hello-1.0-1.ppc64.rpm
+"${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+EOF
+run rpm -qp --qf "%{nvr}\n" query.mft
+],
+[0],
+[hello-1.0-1
+hello-1.0-1
+foo-1.0-1
+],
+[])
+AT_CLEANUP
+
+# ------------------------------
+# Try to check "scripts"
+# * Gets rpmpopt-$(VERSION) involved
+AT_SETUP([rpm -q --scripts -p *.i386.rpm])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ -q --scripts \
+ -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[preinstall program: /bin/sh
+postinstall program: /bin/sh
+preuninstall program: /bin/sh
+postuninstall program: /bin/sh
+],
+[ignore])
+AT_CLEANUP
+
+
+# ------------------------------
+# install a package into a local rpmdb
+# * Shall only work with relocation
+# * Use --ignorearch because we don't know the arch
+AT_SETUP([rpm -qil hello])
+AT_KEYWORDS([rpmdb install query])
+
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+tpkg="hello-1.0-1.ppc64.rpm"
+cp "${RPMDATA}/RPMS/$tpkg" "${RPMTEST}"
+
+runroot rpm \
+ --noscripts --nodeps --ignorearch --relocate=/usr="${abs_builddir}"/testing/check \
+ -i "${tpkg}"
+],
+[0])
+
+AT_CHECK([
+runroot rpm \
+ -q hello
+],
+[0],
+[hello-1.0-1.ppc64
+],
+[ignore])
+
+cat > expout << _ATEOF
+${abs_builddir}/testing/check/local/bin/hello
+${abs_builddir}/testing/check/share/doc/hello-1.0
+${abs_builddir}/testing/check/share/doc/hello-1.0/FAQ
+_ATEOF
+
+AT_CHECK([
+runroot rpm \
+ -ql hello
+],
+[0],
+[expout],
+[ignore])
+
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([integer array query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="[[%{filemodes}\n]]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[33257
+16877
+33188
+],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([formatted filesbypkg query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="[[%-10{=NAME} %{FILENAMES}\n]]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[hello /usr/local/bin/hello
+hello /usr/share/doc/hello-1.0
+hello /usr/share/doc/hello-1.0/FAQ
+],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([hex formatted integer array extension query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="[[%5{longfilesizes:hex}\n]]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[ b40
+ 1000
+ 24
+],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([base64 extension query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="%{pkgid:base64}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[qt8W635v5FKy1pILrW+0uw==
+],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([integer array perms format query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="[[%{filemodes:perms}\n]]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[-rwxr-x--x
+drwxr-xr-x
+-rw-r--r--
+],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([string array query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="[[%{basenames} ]]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[hello hello-1.0 FAQ ],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([empty string array query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="[[%{basenames}]]" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([empty string array extension array format])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="[[%{filenames}]]" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([empty string array extension query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="%{filenames}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[(none)],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([different sizes arrays query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="[[%{basenames} %{changelogname}]]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+],
+[0],
+[],
+[error: incorrect format: array iterator used with different sized arrays
+])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([non-existent string tag])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="%{vendor}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[(none)],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([non-existent integer tag query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="%{installcolor}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[(none)],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([conditional queryformat])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="%|name?{%{name}}:{no}| %|installtime?{%{installtime}}:{(not installed)}|" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[foo (not installed)],
+[])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([invalid tag query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="%{notag}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[],
+[error: incorrect format: unknown tag
+])
+AT_CLEANUP
+
+# ------------------------------
+AT_SETUP([invalid data for format query])
+AT_KEYWORDS([query])
+AT_CHECK([
+run rpm \
+ --queryformat="%{name:depflags}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+],
+[0],
+[(not a number)],
+[])
+AT_CLEANUP
diff --git a/tests/rpmtests b/tests/rpmtests
new file mode 100755
index 0000000..b9f1889
--- /dev/null
+++ b/tests/rpmtests
@@ -0,0 +1,7511 @@
+#! /bin/sh
+# Generated from local.at by GNU Autoconf 2.68.
+#
+# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+#
+# This test suite is free software; the Free Software Foundation gives
+# unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# How were we run?
+at_cli_args="$@"
+
+
+# Not all shells have the 'times' builtin; the subshell is needed to make
+# sure we discard the 'times: not found' message from the shell.
+at_times_p=false
+(times) >/dev/null 2>&1 && at_times_p=:
+
+# CLI Arguments to pass to the debugging scripts.
+at_debug_args=
+# -e sets to true
+at_errexit_p=false
+# Shall we be verbose? ':' means no, empty means yes.
+at_verbose=:
+at_quiet=
+# Running several jobs in parallel, 0 means as many as test groups.
+at_jobs=1
+at_traceon=:
+at_trace_echo=:
+at_check_filter_trace=:
+
+# Shall we keep the debug scripts? Must be `:' when the suite is
+# run by a debug script, so that the script doesn't remove itself.
+at_debug_p=false
+# Display help message?
+at_help_p=false
+# Display the version message?
+at_version_p=false
+# List test groups?
+at_list_p=false
+# --clean
+at_clean=false
+# Test groups to run
+at_groups=
+# Whether to rerun failed tests.
+at_recheck=
+# Whether a write failure occurred
+at_write_fail=0
+
+# The directory we run the suite in. Default to . if no -C option.
+at_dir=`pwd`
+# An absolute reference to this testsuite script.
+case $as_myself in
+ [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
+ * ) at_myself=$at_dir/$as_myself ;;
+esac
+# Whether -C is in effect.
+at_change_dir=false
+
+# Whether to enable colored test results.
+at_color=no
+# List of the tested programs.
+at_tested='rpm
+rpmbuild
+rpmquery'
+# As many question marks as there are digits in the last test group number.
+# Used to normalize the test group numbers so that `ls' lists them in
+# numerical order.
+at_format='???'
+# Description of all the test groups.
+at_help_all="1;rpmgeneral.at:22;rpm --version;basic;
+2;rpmgeneral.at:31;rpmbuild --version;basic;
+3;rpmgeneral.at:40;rpm --version;basic;
+4;rpmgeneral.at:49;rpm --version;basic;
+5;rpmgeneral.at:58;rpm --showrc;basic;
+6;rpmgeneral.at:68;rpm --querytags;basic;
+7;rpmquery.at:22;rpm --qf -p *.i386.rpm;query;
+8;rpmquery.at:36;rpm --qf -p *.src.rpm;query;
+9;rpmquery.at:50;rpm -ql -p *.src.rpm;query;
+10;rpmquery.at:65;rpmspec -q;query;
+11;rpmquery.at:77;rpm -ql -p *.i386.rpm;query;
+12;rpmquery.at:94;rpm -qp <manifest>;query;
+13;rpmquery.at:115;rpm -q --scripts -p *.i386.rpm;query;
+14;rpmquery.at:136;rpm -qil hello;rpmdb install query;
+15;rpmquery.at:178;integer array query;query;
+16;rpmquery.at:194;formatted filesbypkg query;query;
+17;rpmquery.at:210;hex formatted integer array extension query;query;
+18;rpmquery.at:226;base64 extension query;query;
+19;rpmquery.at:240;integer array perms format query;query;
+20;rpmquery.at:256;string array query;query;
+21;rpmquery.at:269;empty string array query;query;
+22;rpmquery.at:282;empty string array extension array format;query;
+23;rpmquery.at:295;empty string array extension query;query;
+24;rpmquery.at:308;different sizes arrays query;query;
+25;rpmquery.at:322;non-existent string tag;query;
+26;rpmquery.at:335;non-existent integer tag query;query;
+27;rpmquery.at:348;conditional queryformat;query;
+28;rpmquery.at:361;invalid tag query;query;
+29;rpmquery.at:375;invalid data for format query;query;
+30;rpmverify.at:7;dependency problems;verify;
+31;rpmverify.at:31;files with no problems;verify;
+32;rpmverify.at:48;files with no problems in verbose mode;verify;
+33;rpmverify.at:68;verify files with problems present;verify;
+34;rpmverify.at:92;verifyscript failure;verify;
+35;rpmverify.at:108;verifyscript success;verify;
+36;rpmdb.at:23;rpm --initdb;rpmdb;
+37;rpmdb.at:36;rpm -qa;rpmdb query;
+38;rpmdb.at:51;rpm -i *.noarch.rpm;rpmdb install;
+39;rpmdb.at:70;rpm -U --replacepkgs;rpmdb install;
+40;rpmdb.at:90;rpm -i --relocate=.. *.i386.rpm;rpmdb install;
+41;rpmdb.at:112;rpm -i --relocate=.. *.ppc64.rpm;rpmdb install;
+42;rpmdb.at:133;rpm -U and verify status;install rpmdb query;
+43;rpmdb.at:155;rpm -U with _install_lang and verify status;install rpmdb query;
+44;rpmdb.at:179;rpm -U and verify files on disk;install rpmdb;
+45;rpmdb.at:201;rpm -e and verify files removed;install rpmdb;
+46;rpmi.at:23;rpm -U *.src.rpm;install;
+47;rpmi.at:38;rpm -i *.src.rpm;install;
+48;rpmi.at:54;rpm -i <nonexistent file>;install;
+49;rpmi.at:66;rpm -i --nomanifest <garbage text file>;install;
+50;rpmi.at:83;rpm -i <garbage text file;install;
+51;rpmi.at:102;rpm -U upgrade to newer;;
+52;rpmi.at:124;rpm -U upgrade to older;;
+53;rpmi.at:138;rpm -U --oldpackage downgrade;;
+54;rpmi.at:153;rpm -U two versions of same package;;
+55;rpmi.at:169;rpm -i two versions of same package;;
+56;rpmi.at:187;rpm -i identical versions of same package;;
+57;rpmbuild.at:23;rpmbuild -ba *.spec;build;
+58;rpmbuild.at:62;rpmbuild --rebuild;build;
+59;rpmbuild.at:95;rpmbuild -tb <tar with bad spec>;build;
+60;rpmbuild.at:112;rpmbuild -tb;build;
+61;rpmvercmp.at:13;rpmvercmp(1.0, 1.0) = 0;vercmp;
+62;rpmvercmp.at:14;rpmvercmp(1.0, 2.0) = -1;vercmp;
+63;rpmvercmp.at:15;rpmvercmp(2.0, 2.0.1) = -1;vercmp;
+64;rpmvercmp.at:16;rpmvercmp(2.0.1a, 2.0.1) = 1;vercmp;
+65;rpmvercmp.at:17;rpmvercmp(5.5p1, 5.5p2) = -1;vercmp;
+66;rpmvercmp.at:18;rpmvercmp(5.6p1, 5.5p2) = 1;vercmp;
+67;rpmvercmp.at:19;rpmvercmp(10a2, 10b2) = -1;vercmp;
+68;rpmvercmp.at:20;rpmvercmp(1.0a, 1.0aa) = -1;vercmp;
+69;rpmvercmp.at:21;rpmvercmp(6.0rc1, 6.0) = 1;vercmp;
+70;rpmvercmp.at:22;rpmvercmp(6.0.rc1, 6.0) = 1;vercmp;
+71;rpmvercmp.at:23;rpmvercmp(10.1.1.0001, 10.1.1.39) = -1;vercmp;
+72;rpmvercmp.at:24;rpmvercmp(5.0, 4.999.9) = 1;vercmp;
+73;rpmvercmp.at:25;rpmvercmp(2.030, 2.031) = -1;vercmp;
+74;rpmvercmp.at:26;rpmvercmp(20101122, 20101121) = 1;vercmp;
+75;rpmvercmp.at:27;rpmvercmp(2.0, 2_0) = 0;vercmp;
+76;rpmdeps.at:7;missing dependency;install;
+77;rpmdeps.at:29;cross-depending packages;install;
+78;rpmdeps.at:54;unsatisfied versioned require;install;
+79;rpmdeps.at:81;satisfied versioned require;install;
+80;rpmdeps.at:106;versioned conflict in transaction;install;
+81;rpmdeps.at:132;versioned conflict in database;install;
+82;rpmdeps.at:158;erase to break dependencies;install;
+83;rpmconflict.at:7;rpm -U to package with file conflict;install;
+84;rpmconflict.at:30;rpm -U two packages with a conflicting file;install;
+85;rpmconflict.at:46;rpm -U package with shareable file;install;
+86;rpmconflict.at:69;rpm -U two packages with shareable file;install;
+87;rpmconflict.at:86;rpm -U replacing directory with symlink;install;
+88;rpmconflict.at:113;rpm -U replacing symlink with directory;install;
+89;rpmconfig.at:7;rpm -U to package with unchanged config file;install;
+90;rpmconfig.at:30;rpm -U to package with locally modified config file;install;
+91;rpmconfig.at:54;rpm -U to package with unchanged config file;install;
+92;rpmconfig.at:77;rpm -U to package with modified config file;install;
+93;rpmmacro.at:6;simple rpm --eval;macros;
+94;rpmmacro.at:16;simple true conditional rpm --eval;macros;
+95;rpmmacro.at:26;simple false conditional rpm --eval;macros;
+96;rpmmacro.at:36;uncompress macro;macros;
+97;rpmmacro.at:50;basename macro;macros;
+98;rpmmacro.at:63;suffix macro;macros;
+99;rpmmacro.at:76;url2path macro;macros;
+100;rpmmacro.at:89;shell expansion;macros;
+101;rpmmacro.at:102;simple lua --eval;macros lua;
+102;rpmmacro.at:112;lua rpm extensions;macros lua;
+103;rpmmacro.at:122;lua posix extensions;macros lua;
+104;rpmmacro.at:133;lua script exit behavior;macros lua;
+105;rpmpython.at:6;module import;python;
+106;rpmpython.at:12;basic header manipulation;python;
+107;rpmpython.at:27;reading a package file;python;
+108;rpmpython.at:35;add package to transaction;python;
+109;rpmdepmatch.at:4;provide - require pairs;python;
+"
+# List of the all the test groups.
+at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
+
+# at_fn_validate_ranges NAME...
+# -----------------------------
+# Validate and normalize the test group number contained in each variable
+# NAME. Leading zeroes are treated as decimal.
+at_fn_validate_ranges ()
+{
+ for at_grp
+ do
+ eval at_value=\$$at_grp
+ if test $at_value -lt 1 || test $at_value -gt 109; then
+ $as_echo "invalid test group: $at_value" >&2
+ exit 1
+ fi
+ case $at_value in
+ 0*) # We want to treat leading 0 as decimal, like expr and test, but
+ # AS_VAR_ARITH treats it as octal if it uses $(( )).
+ # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
+ # expr fork, but it is not worth the effort to determine if the
+ # shell supports XSI when the user can just avoid leading 0.
+ eval $at_grp='`expr $at_value + 0`' ;;
+ esac
+ done
+}
+
+at_prev=
+for at_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$at_prev"; then
+ at_option=$at_prev=$at_option
+ at_prev=
+ fi
+
+ case $at_option in
+ *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
+ *) at_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $at_option in
+ --help | -h )
+ at_help_p=:
+ ;;
+
+ --list | -l )
+ at_list_p=:
+ ;;
+
+ --version | -V )
+ at_version_p=:
+ ;;
+
+ --clean | -c )
+ at_clean=:
+ ;;
+
+ --color )
+ at_color=always
+ ;;
+ --color=* )
+ case $at_optarg in
+ no | never | none) at_color=never ;;
+ auto | tty | if-tty) at_color=auto ;;
+ always | yes | force) at_color=always ;;
+ *) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
+ as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
+ esac
+ ;;
+
+ --debug | -d )
+ at_debug_p=:
+ ;;
+
+ --errexit | -e )
+ at_debug_p=:
+ at_errexit_p=:
+ ;;
+
+ --verbose | -v )
+ at_verbose=; at_quiet=:
+ ;;
+
+ --trace | -x )
+ at_traceon='set -x'
+ at_trace_echo=echo
+ at_check_filter_trace=at_fn_filter_trace
+ ;;
+
+ [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
+ at_fn_validate_ranges at_option
+ as_fn_append at_groups "$at_option$as_nl"
+ ;;
+
+ # Ranges
+ [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
+ at_range_start=`echo $at_option |tr -d X-`
+ at_fn_validate_ranges at_range_start
+ at_range=`$as_echo "$at_groups_all" | \
+ sed -ne '/^'$at_range_start'$/,$p'`
+ as_fn_append at_groups "$at_range$as_nl"
+ ;;
+
+ -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
+ at_range_end=`echo $at_option |tr -d X-`
+ at_fn_validate_ranges at_range_end
+ at_range=`$as_echo "$at_groups_all" | \
+ sed -ne '1,/^'$at_range_end'$/p'`
+ as_fn_append at_groups "$at_range$as_nl"
+ ;;
+
+ [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
+ [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
+ [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
+ [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
+ [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
+ [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
+ at_range_start=`expr $at_option : '\(.*\)-'`
+ at_range_end=`expr $at_option : '.*-\(.*\)'`
+ if test $at_range_start -gt $at_range_end; then
+ at_tmp=$at_range_end
+ at_range_end=$at_range_start
+ at_range_start=$at_tmp
+ fi
+ at_fn_validate_ranges at_range_start at_range_end
+ at_range=`$as_echo "$at_groups_all" | \
+ sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
+ as_fn_append at_groups "$at_range$as_nl"
+ ;;
+
+ # Directory selection.
+ --directory | -C )
+ at_prev=--directory
+ ;;
+ --directory=* )
+ at_change_dir=:
+ at_dir=$at_optarg
+ if test x- = "x$at_dir" ; then
+ at_dir=./-
+ fi
+ ;;
+
+ # Parallel execution.
+ --jobs | -j )
+ at_jobs=0
+ ;;
+ --jobs=* | -j[0-9]* )
+ if test -n "$at_optarg"; then
+ at_jobs=$at_optarg
+ else
+ at_jobs=`expr X$at_option : 'X-j\(.*\)'`
+ fi
+ case $at_jobs in *[!0-9]*)
+ at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
+ as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
+ esac
+ ;;
+
+ # Keywords.
+ --keywords | -k )
+ at_prev=--keywords
+ ;;
+ --keywords=* )
+ at_groups_selected=$at_help_all
+ at_save_IFS=$IFS
+ IFS=,
+ set X $at_optarg
+ shift
+ IFS=$at_save_IFS
+ for at_keyword
+ do
+ at_invert=
+ case $at_keyword in
+ '!'*)
+ at_invert="-v"
+ at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
+ ;;
+ esac
+ # It is on purpose that we match the test group titles too.
+ at_groups_selected=`$as_echo "$at_groups_selected" |
+ grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
+ done
+ # Smash the keywords.
+ at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
+ as_fn_append at_groups "$at_groups_selected$as_nl"
+ ;;
+ --recheck)
+ at_recheck=:
+ ;;
+
+ *=*)
+ at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $at_envvar in
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
+ esac
+ at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ # Export now, but save eval for later and for debug scripts.
+ export $at_envvar
+ as_fn_append at_debug_args " $at_envvar='$at_value'"
+ ;;
+
+ *) $as_echo "$as_me: invalid option: $at_option" >&2
+ $as_echo "Try \`$0 --help' for more information." >&2
+ exit 1
+ ;;
+ esac
+done
+
+# Verify our last option didn't require an argument
+if test -n "$at_prev"; then :
+ as_fn_error $? "\`$at_prev' requires an argument"
+fi
+
+# The file containing the suite.
+at_suite_log=$at_dir/$as_me.log
+
+# Selected test groups.
+if test -z "$at_groups$at_recheck"; then
+ at_groups=$at_groups_all
+else
+ if test -n "$at_recheck" && test -r "$at_suite_log"; then
+ at_oldfails=`sed -n '
+ /^Failed tests:$/,/^Skipped tests:$/{
+ s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+ }
+ /^Unexpected passes:$/,/^## Detailed failed tests/{
+ s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+ }
+ /^## Detailed failed tests/q
+ ' "$at_suite_log"`
+ as_fn_append at_groups "$at_oldfails$as_nl"
+ fi
+ # Sort the tests, removing duplicates.
+ at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
+fi
+
+if test x"$at_color" = xalways \
+ || { test x"$at_color" = xauto && test -t 1; }; then
+ at_red=`printf '\033[0;31m'`
+ at_grn=`printf '\033[0;32m'`
+ at_lgn=`printf '\033[1;32m'`
+ at_blu=`printf '\033[1;34m'`
+ at_std=`printf '\033[m'`
+else
+ at_red= at_grn= at_lgn= at_blu= at_std=
+fi
+
+# Help message.
+if $at_help_p; then
+ cat <<_ATEOF || at_write_fail=1
+Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
+
+Run all the tests, or the selected TESTS, given by numeric ranges, and
+save a detailed log file. Upon failure, create debugging scripts.
+
+Do not change environment variables directly. Instead, set them via
+command line arguments. Set \`AUTOTEST_PATH' to select the executables
+to exercise. Each relative directory is expanded as build and source
+directories relative to the top level of this distribution.
+E.g., from within the build directory /tmp/foo-1.0, invoking this:
+
+ $ $0 AUTOTEST_PATH=bin
+
+is equivalent to the following, assuming the source directory is /src/foo-1.0:
+
+ PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
+_ATEOF
+cat <<_ATEOF || at_write_fail=1
+
+Operation modes:
+ -h, --help print the help message, then exit
+ -V, --version print version number, then exit
+ -c, --clean remove all the files this test suite might create and exit
+ -l, --list describes all the tests, or the selected TESTS
+_ATEOF
+cat <<_ATEOF || at_write_fail=1
+
+Execution tuning:
+ -C, --directory=DIR
+ change to directory DIR before starting
+ --color[=never|auto|always]
+ enable colored test results on terminal, or always
+ -j, --jobs[=N]
+ Allow N jobs at once; infinite jobs with no arg (default 1)
+ -k, --keywords=KEYWORDS
+ select the tests matching all the comma-separated KEYWORDS
+ multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
+ --recheck select all tests that failed or passed unexpectedly last time
+ -e, --errexit abort as soon as a test fails; implies --debug
+ -v, --verbose force more detailed output
+ default for debugging scripts
+ -d, --debug inhibit clean up and top-level logging
+ default for debugging scripts
+ -x, --trace enable tests shell tracing
+_ATEOF
+cat <<_ATEOF || at_write_fail=1
+
+Report bugs to <rpm-maint@lists.rpm.org>.
+_ATEOF
+ exit $at_write_fail
+fi
+
+# List of tests.
+if $at_list_p; then
+ cat <<_ATEOF || at_write_fail=1
+rpm 4.9.1 test suite test groups:
+
+ NUM: FILE-NAME:LINE TEST-GROUP-NAME
+ KEYWORDS
+
+_ATEOF
+ # Pass an empty line as separator between selected groups and help.
+ $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
+ awk 'NF == 1 && FS != ";" {
+ selected[$ 1] = 1
+ next
+ }
+ /^$/ { FS = ";" }
+ NF > 0 {
+ if (selected[$ 1]) {
+ printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
+ if ($ 4) {
+ lmax = 79
+ indent = " "
+ line = indent
+ len = length (line)
+ n = split ($ 4, a, " ")
+ for (i = 1; i <= n; i++) {
+ l = length (a[i]) + 1
+ if (i > 1 && len + l > lmax) {
+ print line
+ line = indent " " a[i]
+ len = length (line)
+ } else {
+ line = line " " a[i]
+ len += l
+ }
+ }
+ if (n)
+ print line
+ }
+ }
+ }' || at_write_fail=1
+ exit $at_write_fail
+fi
+if $at_version_p; then
+ $as_echo "$as_me (rpm 4.9.1)" &&
+ cat <<\_ATEOF || at_write_fail=1
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This test suite is free software; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+_ATEOF
+ exit $at_write_fail
+fi
+
+# Should we print banners? Yes if more than one test is run.
+case $at_groups in #(
+ *$as_nl* )
+ at_print_banners=: ;; #(
+ * ) at_print_banners=false ;;
+esac
+# Text for banner N, set to a single space once printed.
+# Banner 1. rpmgeneral.at:19
+# Category starts at test group 1.
+at_banner_text_1="Basic tests"
+# Banner 2. rpmquery.at:19
+# Category starts at test group 7.
+at_banner_text_2="RPM queries"
+# Banner 3. rpmverify.at:3
+# Category starts at test group 30.
+at_banner_text_3="RPM verification"
+# Banner 4. rpmdb.at:19
+# Category starts at test group 36.
+at_banner_text_4="RPM database access"
+# Banner 5. rpmi.at:19
+# Category starts at test group 46.
+at_banner_text_5="RPM install tests"
+# Banner 6. rpmbuild.at:19
+# Category starts at test group 57.
+at_banner_text_6="RPM build"
+# Banner 7. rpmvercmp.at:11
+# Category starts at test group 61.
+at_banner_text_7="RPM version comparison"
+# Banner 8. rpmdeps.at:3
+# Category starts at test group 76.
+at_banner_text_8="RPM dependencies"
+# Banner 9. rpmconflict.at:3
+# Category starts at test group 83.
+at_banner_text_9="RPM file conflicts"
+# Banner 10. rpmconfig.at:3
+# Category starts at test group 89.
+at_banner_text_10="RPM config file behavior"
+# Banner 11. rpmmacro.at:3
+# Category starts at test group 93.
+at_banner_text_11="RPM macros"
+# Banner 12. rpmpython.at:4
+# Category starts at test group 105.
+at_banner_text_12="Python bindings"
+# Banner 13. rpmdepmatch.at:2
+# Category starts at test group 109.
+at_banner_text_13="RPM dependency matching"
+
+# Take any -C into account.
+if $at_change_dir ; then
+ test x != "x$at_dir" && cd "$at_dir" \
+ || as_fn_error $? "unable to change directory"
+ at_dir=`pwd`
+fi
+
+# Load the config files for any default variable assignments.
+for at_file in atconfig atlocal
+do
+ test -r $at_file || continue
+ . ./$at_file || as_fn_error $? "invalid content: $at_file"
+done
+
+# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
+: "${at_top_build_prefix=$at_top_builddir}"
+
+# Perform any assignments requested during argument parsing.
+eval "$at_debug_args"
+
+# atconfig delivers names relative to the directory the test suite is
+# in, but the groups themselves are run in testsuite-dir/group-dir.
+if test -n "$at_top_srcdir"; then
+ builddir=../..
+ for at_dir_var in srcdir top_srcdir top_build_prefix
+ do
+ eval at_val=\$at_$at_dir_var
+ case $at_val in
+ [\\/$]* | ?:[\\/]* ) at_prefix= ;;
+ *) at_prefix=../../ ;;
+ esac
+ eval "$at_dir_var=\$at_prefix\$at_val"
+ done
+fi
+
+## -------------------- ##
+## Directory structure. ##
+## -------------------- ##
+
+# This is the set of directories and files used by this script
+# (non-literals are capitalized):
+#
+# TESTSUITE - the testsuite
+# TESTSUITE.log - summarizes the complete testsuite run
+# TESTSUITE.dir/ - created during a run, remains after -d or failed test
+# + at-groups/ - during a run: status of all groups in run
+# | + NNN/ - during a run: meta-data about test group NNN
+# | | + check-line - location (source file and line) of current AT_CHECK
+# | | + status - exit status of current AT_CHECK
+# | | + stdout - stdout of current AT_CHECK
+# | | + stder1 - stderr, including trace
+# | | + stderr - stderr, with trace filtered out
+# | | + test-source - portion of testsuite that defines group
+# | | + times - timestamps for computing duration
+# | | + pass - created if group passed
+# | | + xpass - created if group xpassed
+# | | + fail - created if group failed
+# | | + xfail - created if group xfailed
+# | | + skip - created if group skipped
+# + at-stop - during a run: end the run if this file exists
+# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
+# + 0..NNN/ - created for each group NNN, remains after -d or failed test
+# | + TESTSUITE.log - summarizes the group results
+# | + ... - files created during the group
+
+# The directory the whole suite works in.
+# Should be absolute to let the user `cd' at will.
+at_suite_dir=$at_dir/$as_me.dir
+# The file containing the suite ($at_dir might have changed since earlier).
+at_suite_log=$at_dir/$as_me.log
+# The directory containing helper files per test group.
+at_helper_dir=$at_suite_dir/at-groups
+# Stop file: if it exists, do not start new jobs.
+at_stop_file=$at_suite_dir/at-stop
+# The fifo used for the job dispatcher.
+at_job_fifo=$at_suite_dir/at-job-fifo
+
+if $at_clean; then
+ test -d "$at_suite_dir" &&
+ find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+ rm -f -r "$at_suite_dir" "$at_suite_log"
+ exit $?
+fi
+
+# Don't take risks: use only absolute directories in PATH.
+#
+# For stand-alone test suites (ie. atconfig was not found),
+# AUTOTEST_PATH is relative to `.'.
+#
+# For embedded test suites, AUTOTEST_PATH is relative to the top level
+# of the package. Then expand it into build/src parts, since users
+# may create executables in both places.
+AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
+at_path=
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $AUTOTEST_PATH $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
+case $as_dir in
+ [\\/]* | ?:[\\/]* )
+ as_fn_append at_path "$as_dir"
+ ;;
+ * )
+ if test -z "$at_top_build_prefix"; then
+ # Stand-alone test suite.
+ as_fn_append at_path "$as_dir"
+ else
+ # Embedded test suite.
+ as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
+ as_fn_append at_path "$at_top_srcdir/$as_dir"
+ fi
+ ;;
+esac
+ done
+IFS=$as_save_IFS
+
+
+# Now build and simplify PATH.
+#
+# There might be directories that don't exist, but don't redirect
+# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
+at_new_path=
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $at_path
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -d "$as_dir" || continue
+case $as_dir in
+ [\\/]* | ?:[\\/]* ) ;;
+ * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
+esac
+case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
+ *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
+ $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
+ *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
+esac
+ done
+IFS=$as_save_IFS
+
+PATH=$at_new_path
+export PATH
+
+# Setting up the FDs.
+
+
+
+# 5 is the log file. Not to be overwritten if `-d'.
+if $at_debug_p; then
+ at_suite_log=/dev/null
+else
+ : >"$at_suite_log"
+fi
+exec 5>>"$at_suite_log"
+
+# Banners and logs.
+$as_echo "## --------------------- ##
+## rpm 4.9.1 test suite. ##
+## --------------------- ##"
+{
+ $as_echo "## --------------------- ##
+## rpm 4.9.1 test suite. ##
+## --------------------- ##"
+ echo
+
+ $as_echo "$as_me: command line was:"
+ $as_echo " \$ $0 $at_cli_args"
+ echo
+
+ # If ChangeLog exists, list a few lines in case it might help determining
+ # the exact version.
+ if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
+ $as_echo "## ---------- ##
+## ChangeLog. ##
+## ---------- ##"
+ echo
+ sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
+ echo
+ fi
+
+ {
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+}
+ echo
+
+ # Contents of the config files.
+ for at_file in atconfig atlocal
+ do
+ test -r $at_file || continue
+ $as_echo "$as_me: $at_file:"
+ sed 's/^/| /' $at_file
+ echo
+ done
+} >&5
+
+
+## ------------------------- ##
+## Autotest shell functions. ##
+## ------------------------- ##
+
+# at_fn_banner NUMBER
+# -------------------
+# Output banner NUMBER, provided the testsuite is running multiple groups and
+# this particular banner has not yet been printed.
+at_fn_banner ()
+{
+ $at_print_banners || return 0
+ eval at_banner_text=\$at_banner_text_$1
+ test "x$at_banner_text" = "x " && return 0
+ eval "at_banner_text_$1=\" \""
+ if test -z "$at_banner_text"; then
+ $at_first || echo
+ else
+ $as_echo "$as_nl$at_banner_text$as_nl"
+ fi
+} # at_fn_banner
+
+# at_fn_check_prepare_notrace REASON LINE
+# ---------------------------------------
+# Perform AT_CHECK preparations for the command at LINE for an untraceable
+# command; REASON is the reason for disabling tracing.
+at_fn_check_prepare_notrace ()
+{
+ $at_trace_echo "Not enabling shell tracing (command contains $1)"
+ $as_echo "$2" >"$at_check_line_file"
+ at_check_trace=: at_check_filter=:
+ : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_trace LINE
+# ------------------------------
+# Perform AT_CHECK preparations for the command at LINE for a traceable
+# command.
+at_fn_check_prepare_trace ()
+{
+ $as_echo "$1" >"$at_check_line_file"
+ at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
+ : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_dynamic COMMAND LINE
+# ----------------------------------------
+# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
+# preparation function.
+at_fn_check_prepare_dynamic ()
+{
+ case $1 in
+ *$as_nl*)
+ at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
+ *)
+ at_fn_check_prepare_trace "$2" ;;
+ esac
+}
+
+# at_fn_filter_trace
+# ------------------
+# Remove the lines in the file "$at_stderr" generated by "set -x" and print
+# them to stderr.
+at_fn_filter_trace ()
+{
+ mv "$at_stderr" "$at_stder1"
+ grep '^ *+' "$at_stder1" >&2
+ grep -v '^ *+' "$at_stder1" >"$at_stderr"
+}
+
+# at_fn_log_failure FILE-LIST
+# ---------------------------
+# Copy the files in the list on stdout with a "> " prefix, and exit the shell
+# with a failure exit code.
+at_fn_log_failure ()
+{
+ for file
+ do $as_echo "$file:"; sed 's/^/> /' "$file"; done
+ echo 1 > "$at_status_file"
+ exit 1
+}
+
+# at_fn_check_skip EXIT-CODE LINE
+# -------------------------------
+# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
+# the test group subshell with that same exit code. Use LINE in any report
+# about test failure.
+at_fn_check_skip ()
+{
+ case $1 in
+ 99) echo 99 > "$at_status_file"; at_failed=:
+ $as_echo "$2: hard failure"; exit 99;;
+ 77) echo 77 > "$at_status_file"; exit 77;;
+ esac
+}
+
+# at_fn_check_status EXPECTED EXIT-CODE LINE
+# ------------------------------------------
+# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
+# Otherwise, if it is 77 or 99, exit the test group subshell with that same
+# exit code; if it is anything else print an error message referring to LINE,
+# and fail the test.
+at_fn_check_status ()
+{
+ case $2 in
+ $1 ) ;;
+ 77) echo 77 > "$at_status_file"; exit 77;;
+ 99) echo 99 > "$at_status_file"; at_failed=:
+ $as_echo "$3: hard failure"; exit 99;;
+ *) $as_echo "$3: exit code was $2, expected $1"
+ at_failed=:;;
+ esac
+}
+
+# at_fn_diff_devnull FILE
+# -----------------------
+# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
+# invocations.
+at_fn_diff_devnull ()
+{
+ test -s "$1" || return 0
+ $at_diff "$at_devnull" "$1"
+}
+
+# at_fn_test NUMBER
+# -----------------
+# Parse out test NUMBER from the tail of this file.
+at_fn_test ()
+{
+ eval at_sed=\$at_sed$1
+ sed "$at_sed" "$at_myself" > "$at_test_source"
+}
+
+# at_fn_create_debugging_script
+# -----------------------------
+# Create the debugging script $at_group_dir/run which will reproduce the
+# current test group.
+at_fn_create_debugging_script ()
+{
+ {
+ echo "#! /bin/sh" &&
+ echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
+ $as_echo "cd '$at_dir'" &&
+ $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
+ echo 'exit 1'
+ } >"$at_group_dir/run" &&
+ chmod +x "$at_group_dir/run"
+}
+
+## -------------------------------- ##
+## End of autotest shell functions. ##
+## -------------------------------- ##
+{
+ $as_echo "## ---------------- ##
+## Tested programs. ##
+## ---------------- ##"
+ echo
+} >&5
+
+# Report what programs are being tested.
+for at_program in : $at_tested
+do
+ test "$at_program" = : && continue
+ case $at_program in
+ [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
+ * )
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -f "$as_dir/$at_program" && break
+ done
+IFS=$as_save_IFS
+
+ at_program_=$as_dir/$at_program ;;
+ esac
+ if test -f "$at_program_"; then
+ {
+ $as_echo "$at_srcdir/local.at:30: $at_program_ --version"
+ "$at_program_" --version </dev/null
+ echo
+ } >&5 2>&1
+ else
+ as_fn_error $? "cannot find $at_program" "$LINENO" 5
+ fi
+done
+
+{
+ $as_echo "## ------------------ ##
+## Running the tests. ##
+## ------------------ ##"
+} >&5
+
+at_start_date=`date`
+at_start_time=`date +%s 2>/dev/null`
+$as_echo "$as_me: starting at: $at_start_date" >&5
+
+# Create the master directory if it doesn't already exist.
+as_dir="$at_suite_dir"; as_fn_mkdir_p ||
+ as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
+
+# Can we diff with `/dev/null'? DU 5.0 refuses.
+if diff /dev/null /dev/null >/dev/null 2>&1; then
+ at_devnull=/dev/null
+else
+ at_devnull=$at_suite_dir/devnull
+ >"$at_devnull"
+fi
+
+# Use `diff -u' when possible.
+if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
+then
+ at_diff='diff -u'
+else
+ at_diff=diff
+fi
+
+# Get the last needed group.
+for at_group in : $at_groups; do :; done
+
+# Extract the start and end lines of each test group at the tail
+# of this file
+awk '
+BEGIN { FS="" }
+/^#AT_START_/ {
+ start = NR
+}
+/^#AT_STOP_/ {
+ test = substr ($ 0, 10)
+ print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
+ if (test == "'"$at_group"'") exit
+}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
+. "$at_suite_dir/at-source-lines" ||
+ as_fn_error $? "cannot create test line number cache" "$LINENO" 5
+rm -f "$at_suite_dir/at-source-lines"
+
+# Set number of jobs for `-j'; avoid more jobs than test groups.
+set X $at_groups; shift; at_max_jobs=$#
+if test $at_max_jobs -eq 0; then
+ at_jobs=1
+fi
+if test $at_jobs -ne 1 &&
+ { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
+ at_jobs=$at_max_jobs
+fi
+
+# If parallel mode, don't output banners, don't split summary lines.
+if test $at_jobs -ne 1; then
+ at_print_banners=false
+ at_quiet=:
+fi
+
+# Set up helper dirs.
+rm -rf "$at_helper_dir" &&
+mkdir "$at_helper_dir" &&
+cd "$at_helper_dir" &&
+{ test -z "$at_groups" || mkdir $at_groups; } ||
+as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
+
+# Functions for running a test group. We leave the actual
+# test group execution outside of a shell function in order
+# to avoid hitting zsh 4.x exit status bugs.
+
+# at_fn_group_prepare
+# -------------------
+# Prepare for running a test group.
+at_fn_group_prepare ()
+{
+ # The directory for additional per-group helper files.
+ at_job_dir=$at_helper_dir/$at_group
+ # The file containing the location of the last AT_CHECK.
+ at_check_line_file=$at_job_dir/check-line
+ # The file containing the exit status of the last command.
+ at_status_file=$at_job_dir/status
+ # The files containing the output of the tested commands.
+ at_stdout=$at_job_dir/stdout
+ at_stder1=$at_job_dir/stder1
+ at_stderr=$at_job_dir/stderr
+ # The file containing the code for a test group.
+ at_test_source=$at_job_dir/test-source
+ # The file containing dates.
+ at_times_file=$at_job_dir/times
+
+ # Be sure to come back to the top test directory.
+ cd "$at_suite_dir"
+
+ # Clearly separate the test groups when verbose.
+ $at_first || $at_verbose echo
+
+ at_group_normalized=$at_group
+
+ eval 'while :; do
+ case $at_group_normalized in #(
+ '"$at_format"'*) break;;
+ esac
+ at_group_normalized=0$at_group_normalized
+ done'
+
+
+ # Create a fresh directory for the next test group, and enter.
+ # If one already exists, the user may have invoked ./run from
+ # within that directory; we remove the contents, but not the
+ # directory itself, so that we aren't pulling the rug out from
+ # under the shell's notion of the current directory.
+ at_group_dir=$at_suite_dir/$at_group_normalized
+ at_group_log=$at_group_dir/$as_me.log
+ if test -d "$at_group_dir"; then
+ find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
+ rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
+fi ||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
+$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
+ # Be tolerant if the above `rm' was not able to remove the directory.
+ as_dir="$at_group_dir"; as_fn_mkdir_p
+
+ echo 0 > "$at_status_file"
+
+ # In verbose mode, append to the log file *and* show on
+ # the standard output; in quiet mode only write to the log.
+ if test -z "$at_verbose"; then
+ at_tee_pipe='tee -a "$at_group_log"'
+ else
+ at_tee_pipe='cat >> "$at_group_log"'
+ fi
+}
+
+# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
+# -------------------------------------------------
+# Declare the test group ORDINAL, located at LINE with group description DESC,
+# and residing under BANNER. Use PAD to align the status column.
+at_fn_group_banner ()
+{
+ at_setup_line="$2"
+ test -n "$5" && at_fn_banner $5
+ at_desc="$3"
+ case $1 in
+ [0-9]) at_desc_line=" $1: ";;
+ [0-9][0-9]) at_desc_line=" $1: " ;;
+ *) at_desc_line="$1: " ;;
+ esac
+ as_fn_append at_desc_line "$3$4"
+ $at_quiet $as_echo_n "$at_desc_line"
+ echo "# -*- compilation -*-" >> "$at_group_log"
+}
+
+# at_fn_group_postprocess
+# -----------------------
+# Perform cleanup after running a test group.
+at_fn_group_postprocess ()
+{
+ # Be sure to come back to the suite directory, in particular
+ # since below we might `rm' the group directory we are in currently.
+ cd "$at_suite_dir"
+
+ if test ! -f "$at_check_line_file"; then
+ sed "s/^ */$as_me: WARNING: /" <<_ATEOF
+ A failure happened in a test group before any test could be
+ run. This means that test suite is improperly designed. Please
+ report this failure to <rpm-maint@lists.rpm.org>.
+_ATEOF
+ $as_echo "$at_setup_line" >"$at_check_line_file"
+ at_status=99
+ fi
+ $at_verbose $as_echo_n "$at_group. $at_setup_line: "
+ $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
+ case $at_xfail:$at_status in
+ yes:0)
+ at_msg="UNEXPECTED PASS"
+ at_res=xpass
+ at_errexit=$at_errexit_p
+ at_color=$at_red
+ ;;
+ no:0)
+ at_msg="ok"
+ at_res=pass
+ at_errexit=false
+ at_color=$at_grn
+ ;;
+ *:77)
+ at_msg='skipped ('`cat "$at_check_line_file"`')'
+ at_res=skip
+ at_errexit=false
+ at_color=$at_blu
+ ;;
+ no:* | *:99)
+ at_msg='FAILED ('`cat "$at_check_line_file"`')'
+ at_res=fail
+ at_errexit=$at_errexit_p
+ at_color=$at_red
+ ;;
+ yes:*)
+ at_msg='expected failure ('`cat "$at_check_line_file"`')'
+ at_res=xfail
+ at_errexit=false
+ at_color=$at_lgn
+ ;;
+ esac
+ echo "$at_res" > "$at_job_dir/$at_res"
+ # In parallel mode, output the summary line only afterwards.
+ if test $at_jobs -ne 1 && test -n "$at_verbose"; then
+ $as_echo "$at_desc_line $at_color$at_msg$at_std"
+ else
+ # Make sure there is a separator even with long titles.
+ $as_echo " $at_color$at_msg$at_std"
+ fi
+ at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
+ case $at_status in
+ 0|77)
+ # $at_times_file is only available if the group succeeded.
+ # We're not including the group log, so the success message
+ # is written in the global log separately. But we also
+ # write to the group log in case they're using -d.
+ if test -f "$at_times_file"; then
+ at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')'
+ rm -f "$at_times_file"
+ fi
+ $as_echo "$at_log_msg" >> "$at_group_log"
+ $as_echo "$at_log_msg" >&5
+
+ # Cleanup the group directory, unless the user wants the files
+ # or the success was unexpected.
+ if $at_debug_p || test $at_res = xpass; then
+ at_fn_create_debugging_script
+ if test $at_res = xpass && $at_errexit; then
+ echo stop > "$at_stop_file"
+ fi
+ else
+ if test -d "$at_group_dir"; then
+ find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+ rm -fr "$at_group_dir"
+ fi
+ rm -f "$at_test_source"
+ fi
+ ;;
+ *)
+ # Upon failure, include the log into the testsuite's global
+ # log. The failure message is written in the group log. It
+ # is later included in the global log.
+ $as_echo "$at_log_msg" >> "$at_group_log"
+
+ # Upon failure, keep the group directory for autopsy, and create
+ # the debugging script. With -e, do not start any further tests.
+ at_fn_create_debugging_script
+ if $at_errexit; then
+ echo stop > "$at_stop_file"
+ fi
+ ;;
+ esac
+}
+
+
+## ------------ ##
+## Driver loop. ##
+## ------------ ##
+
+
+if (set -m && set +m && set +b) >/dev/null 2>&1; then
+ set +b
+ at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
+else
+ at_job_control_on=: at_job_control_off=: at_job_group=
+fi
+
+for at_signal in 1 2 15; do
+ trap 'set +x; set +e
+ $at_job_control_off
+ at_signal='"$at_signal"'
+ echo stop > "$at_stop_file"
+ trap "" $at_signal
+ at_pgids=
+ for at_pgid in `jobs -p 2>/dev/null`; do
+ at_pgids="$at_pgids $at_job_group$at_pgid"
+ done
+ test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
+ wait
+ if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
+ echo >&2
+ fi
+ at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
+ set x $at_signame
+ test 0 -gt 2 && at_signame=$at_signal
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
+$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
+ as_fn_arith 128 + $at_signal && exit_status=$as_val
+ as_fn_exit $exit_status' $at_signal
+done
+
+rm -f "$at_stop_file"
+at_first=:
+
+if test $at_jobs -ne 1 &&
+ rm -f "$at_job_fifo" &&
+ test -n "$at_job_group" &&
+ ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
+then
+ # FIFO job dispatcher.
+
+ trap 'at_pids=
+ for at_pid in `jobs -p`; do
+ at_pids="$at_pids $at_job_group$at_pid"
+ done
+ if test -n "$at_pids"; then
+ at_sig=TSTP
+ test "${TMOUT+set}" = set && at_sig=STOP
+ kill -$at_sig $at_pids 2>/dev/null
+ fi
+ kill -STOP $$
+ test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
+
+ echo
+ # Turn jobs into a list of numbers, starting from 1.
+ at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
+
+ set X $at_joblist
+ shift
+ for at_group in $at_groups; do
+ $at_job_control_on 2>/dev/null
+ (
+ # Start one test group.
+ $at_job_control_off
+ if $at_first; then
+ exec 7>"$at_job_fifo"
+ else
+ exec 6<&-
+ fi
+ trap 'set +x; set +e
+ trap "" PIPE
+ echo stop > "$at_stop_file"
+ echo >&7
+ as_fn_exit 141' PIPE
+ at_fn_group_prepare
+ if cd "$at_group_dir" &&
+ at_fn_test $at_group &&
+ . "$at_test_source"
+ then :; else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+ at_failed=:
+ fi
+ at_fn_group_postprocess
+ echo >&7
+ ) &
+ $at_job_control_off
+ if $at_first; then
+ at_first=false
+ exec 6<"$at_job_fifo" 7>"$at_job_fifo"
+ fi
+ shift # Consume one token.
+ if test $# -gt 0; then :; else
+ read at_token <&6 || break
+ set x $*
+ fi
+ test -f "$at_stop_file" && break
+ done
+ exec 7>&-
+ # Read back the remaining ($at_jobs - 1) tokens.
+ set X $at_joblist
+ shift
+ if test $# -gt 0; then
+ shift
+ for at_job
+ do
+ read at_token
+ done <&6
+ fi
+ exec 6<&-
+ wait
+else
+ # Run serially, avoid forks and other potential surprises.
+ for at_group in $at_groups; do
+ at_fn_group_prepare
+ if cd "$at_group_dir" &&
+ at_fn_test $at_group &&
+ . "$at_test_source"; then :; else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+ at_failed=:
+ fi
+ at_fn_group_postprocess
+ test -f "$at_stop_file" && break
+ at_first=false
+ done
+fi
+
+# Wrap up the test suite with summary statistics.
+cd "$at_helper_dir"
+
+# Use ?..???? when the list must remain sorted, the faster * otherwise.
+at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
+at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
+at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
+at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
+ echo $f; done | sed '/?/d; s,/xpass,,'`
+at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
+ echo $f; done | sed '/?/d; s,/fail,,'`
+
+set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
+shift; at_group_count=$#
+set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
+set X $at_xfail_list; shift; at_xfail_count=$#
+set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
+set X $at_skip_list; shift; at_skip_count=$#
+
+as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
+as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
+as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
+
+# Back to the top directory.
+cd "$at_dir"
+rm -rf "$at_helper_dir"
+
+# Compute the duration of the suite.
+at_stop_date=`date`
+at_stop_time=`date +%s 2>/dev/null`
+$as_echo "$as_me: ending at: $at_stop_date" >&5
+case $at_start_time,$at_stop_time in
+ [0-9]*,[0-9]*)
+ as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
+ as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
+ as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
+ as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
+ as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
+ at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
+ $as_echo "$as_me: test suite duration: $at_duration" >&5
+ ;;
+esac
+
+echo
+$as_echo "## ------------- ##
+## Test results. ##
+## ------------- ##"
+echo
+{
+ echo
+ $as_echo "## ------------- ##
+## Test results. ##
+## ------------- ##"
+ echo
+} >&5
+
+if test $at_run_count = 1; then
+ at_result="1 test"
+ at_were=was
+else
+ at_result="$at_run_count tests"
+ at_were=were
+fi
+if $at_errexit_p && test $at_unexpected_count != 0; then
+ if test $at_xpass_count = 1; then
+ at_result="$at_result $at_were run, one passed"
+ else
+ at_result="$at_result $at_were run, one failed"
+ fi
+ at_result="$at_result unexpectedly and inhibited subsequent tests."
+ at_color=$at_red
+else
+ # Don't you just love exponential explosion of the number of cases?
+ at_color=$at_red
+ case $at_xpass_count:$at_fail_count:$at_xfail_count in
+ # So far, so good.
+ 0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
+ 0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
+
+ # Some unexpected failures
+ 0:*:0) at_result="$at_result $at_were run,
+$at_fail_count failed unexpectedly." ;;
+
+ # Some failures, both expected and unexpected
+ 0:*:1) at_result="$at_result $at_were run,
+$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
+ 0:*:*) at_result="$at_result $at_were run,
+$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
+
+ # No unexpected failures, but some xpasses
+ *:0:*) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly." ;;
+
+ # No expected failures, but failures and xpasses
+ *:1:0) at_result="$at_result $at_were run,
+$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
+ *:*:0) at_result="$at_result $at_were run,
+$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
+
+ # All of them.
+ *:*:1) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly,
+$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
+ *:*:*) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly,
+$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
+ esac
+
+ if test $at_skip_count = 0 && test $at_run_count -gt 1; then
+ at_result="All $at_result"
+ fi
+fi
+
+# Now put skips in the mix.
+case $at_skip_count in
+ 0) ;;
+ 1) at_result="$at_result
+1 test was skipped." ;;
+ *) at_result="$at_result
+$at_skip_count tests were skipped." ;;
+esac
+
+if test $at_unexpected_count = 0; then
+ echo "$at_color$at_result$at_std"
+ echo "$at_result" >&5
+else
+ echo "${at_color}ERROR: $at_result$at_std" >&2
+ echo "ERROR: $at_result" >&5
+ {
+ echo
+ $as_echo "## ------------------------ ##
+## Summary of the failures. ##
+## ------------------------ ##"
+
+ # Summary of failed and skipped tests.
+ if test $at_fail_count != 0; then
+ echo "Failed tests:"
+ $SHELL "$at_myself" $at_fail_list --list
+ echo
+ fi
+ if test $at_skip_count != 0; then
+ echo "Skipped tests:"
+ $SHELL "$at_myself" $at_skip_list --list
+ echo
+ fi
+ if test $at_xpass_count != 0; then
+ echo "Unexpected passes:"
+ $SHELL "$at_myself" $at_xpass_list --list
+ echo
+ fi
+ if test $at_fail_count != 0; then
+ $as_echo "## ---------------------- ##
+## Detailed failed tests. ##
+## ---------------------- ##"
+ echo
+ for at_group in $at_fail_list
+ do
+ at_group_normalized=$at_group
+
+ eval 'while :; do
+ case $at_group_normalized in #(
+ '"$at_format"'*) break;;
+ esac
+ at_group_normalized=0$at_group_normalized
+ done'
+
+ cat "$at_suite_dir/$at_group_normalized/$as_me.log"
+ echo
+ done
+ echo
+ fi
+ if test -n "$at_top_srcdir"; then
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## ${at_top_build_prefix}config.log ##
+_ASBOX
+ sed 's/^/| /' ${at_top_build_prefix}config.log
+ echo
+ fi
+ } >&5
+
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## $as_me.log was created. ##
+_ASBOX
+
+ echo
+ if $at_debug_p; then
+ at_msg='per-test log files'
+ else
+ at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
+ fi
+ $as_echo "Please send $at_msg and all information you think might help:
+
+ To: <rpm-maint@lists.rpm.org>
+ Subject: [rpm 4.9.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
+
+You may investigate any problem if you feel able to do so, in which
+case the test suite provides a good starting point. Its output may
+be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
+"
+ exit 1
+fi
+
+exit 0
+
+## ------------- ##
+## Actual tests. ##
+## ------------- ##
+#AT_START_1
+at_fn_group_banner 1 'rpmgeneral.at:22' \
+ "rpm --version" " " 1
+at_xfail=no
+(
+ $as_echo "1. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmgeneral.at:24: run rpm --version"
+at_fn_check_prepare_trace "rpmgeneral.at:24"
+( $at_check_trace; run rpm --version
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "RPM version 4.9.1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmgeneral.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_1
+#AT_START_2
+at_fn_group_banner 2 'rpmgeneral.at:31' \
+ "rpmbuild --version" " " 1
+at_xfail=no
+(
+ $as_echo "2. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmgeneral.at:33: run rpmbuild --version"
+at_fn_check_prepare_trace "rpmgeneral.at:33"
+( $at_check_trace; run rpmbuild --version
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "RPM version 4.9.1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmgeneral.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_2
+#AT_START_3
+at_fn_group_banner 3 'rpmgeneral.at:40' \
+ "rpm --version" " " 1
+at_xfail=no
+(
+ $as_echo "3. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmgeneral.at:42: run rpm --version"
+at_fn_check_prepare_trace "rpmgeneral.at:42"
+( $at_check_trace; run rpm --version
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "RPM version 4.9.1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmgeneral.at:42"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_3
+#AT_START_4
+at_fn_group_banner 4 'rpmgeneral.at:49' \
+ "rpm --version" " " 1
+at_xfail=no
+(
+ $as_echo "4. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmgeneral.at:51: run rpm --version"
+at_fn_check_prepare_trace "rpmgeneral.at:51"
+( $at_check_trace; run rpm --version
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "RPM version 4.9.1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmgeneral.at:51"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_4
+#AT_START_5
+at_fn_group_banner 5 'rpmgeneral.at:58' \
+ "rpm --showrc" " " 1
+at_xfail=no
+(
+ $as_echo "5. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmgeneral.at:60: run rpm --showrc"
+at_fn_check_prepare_trace "rpmgeneral.at:60"
+( $at_check_trace; run rpm --showrc
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmgeneral.at:60"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_5
+#AT_START_6
+at_fn_group_banner 6 'rpmgeneral.at:68' \
+ "rpm --querytags" " " 1
+at_xfail=no
+(
+ $as_echo "6. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmgeneral.at:70: run rpm --querytags"
+at_fn_check_prepare_trace "rpmgeneral.at:70"
+( $at_check_trace; run rpm --querytags
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "ARCH
+ARCHIVESIZE
+BASENAMES
+BUGURL
+BUILDARCHS
+BUILDHOST
+BUILDTIME
+C
+CHANGELOGNAME
+CHANGELOGTEXT
+CHANGELOGTIME
+CLASSDICT
+COLLECTIONS
+CONFLICTFLAGS
+CONFLICTNAME
+CONFLICTS
+CONFLICTVERSION
+COOKIE
+DBINSTANCE
+DEPENDSDICT
+DESCRIPTION
+DIRINDEXES
+DIRNAMES
+DISTRIBUTION
+DISTTAG
+DISTURL
+DSAHEADER
+E
+EPOCH
+EPOCHNUM
+EVR
+EXCLUDEARCH
+EXCLUDEOS
+EXCLUSIVEARCH
+EXCLUSIVEOS
+FILECAPS
+FILECLASS
+FILECOLORS
+FILECONTEXTS
+FILEDEPENDSN
+FILEDEPENDSX
+FILEDEVICES
+FILEDIGESTALGO
+FILEDIGESTS
+FILEFLAGS
+FILEGROUPNAME
+FILEINODES
+FILELANGS
+FILELINKTOS
+FILEMD5S
+FILEMODES
+FILEMTIMES
+FILENAMES
+FILEPROVIDE
+FILERDEVS
+FILEREQUIRE
+FILESIZES
+FILESTATES
+FILEUSERNAME
+FILEVERIFYFLAGS
+FSCONTEXTS
+GIF
+GROUP
+HDRID
+HEADERCOLOR
+HEADERI18NTABLE
+HEADERIMAGE
+HEADERIMMUTABLE
+HEADERREGIONS
+HEADERSIGNATURES
+ICON
+INSTALLCOLOR
+INSTALLTID
+INSTALLTIME
+INSTPREFIXES
+LICENSE
+LONGARCHIVESIZE
+LONGFILESIZES
+LONGSIGSIZE
+LONGSIZE
+N
+NAME
+NEVR
+NEVRA
+NOPATCH
+NOSOURCE
+NVR
+NVRA
+O
+OBSOLETEFLAGS
+OBSOLETENAME
+OBSOLETES
+OBSOLETEVERSION
+OLDFILENAMES
+OPTFLAGS
+ORDERFLAGS
+ORDERNAME
+ORDERVERSION
+ORIGBASENAMES
+ORIGDIRINDEXES
+ORIGDIRNAMES
+ORIGFILENAMES
+OS
+P
+PACKAGER
+PATCH
+PATCHESFLAGS
+PATCHESNAME
+PATCHESVERSION
+PAYLOADCOMPRESSOR
+PAYLOADFLAGS
+PAYLOADFORMAT
+PKGID
+PLATFORM
+POLICIES
+POLICYFLAGS
+POLICYNAMES
+POLICYTYPES
+POLICYTYPESINDEXES
+POSTIN
+POSTINFLAGS
+POSTINPROG
+POSTTRANS
+POSTTRANSFLAGS
+POSTTRANSPROG
+POSTUN
+POSTUNFLAGS
+POSTUNPROG
+PREFIXES
+PREIN
+PREINFLAGS
+PREINPROG
+PRETRANS
+PRETRANSFLAGS
+PRETRANSPROG
+PREUN
+PREUNFLAGS
+PREUNPROG
+PROVIDEFLAGS
+PROVIDENAME
+PROVIDES
+PROVIDEVERSION
+PUBKEYS
+R
+RECONTEXTS
+RELEASE
+REMOVETID
+REQUIREFLAGS
+REQUIRENAME
+REQUIRES
+REQUIREVERSION
+RPMVERSION
+RSAHEADER
+SHA1HEADER
+SIGGPG
+SIGMD5
+SIGPGP
+SIGSIZE
+SIZE
+SOURCE
+SOURCEPACKAGE
+SOURCEPKGID
+SOURCERPM
+SUMMARY
+TRIGGERCONDS
+TRIGGERFLAGS
+TRIGGERINDEX
+TRIGGERNAME
+TRIGGERSCRIPTFLAGS
+TRIGGERSCRIPTPROG
+TRIGGERSCRIPTS
+TRIGGERTYPE
+TRIGGERVERSION
+URL
+V
+VCS
+VENDOR
+VERBOSE
+VERIFYSCRIPT
+VERIFYSCRIPTFLAGS
+VERIFYSCRIPTPROG
+VERSION
+XPM
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmgeneral.at:70"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_6
+#AT_START_7
+at_fn_group_banner 7 'rpmquery.at:22' \
+ "rpm --qf -p *.i386.rpm" " " 2
+at_xfail=no
+(
+ $as_echo "7. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:24:
+run rpm \\
+ -q --qf \"%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\\n\" \\
+ -p \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:24"
+( $at_check_trace;
+run rpm \
+ -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \
+ -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo "hello-1.0-1.i386
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_7
+#AT_START_8
+at_fn_group_banner 8 'rpmquery.at:36' \
+ "rpm --qf -p *.src.rpm" " " 2
+at_xfail=no
+(
+ $as_echo "8. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:38:
+run rpm \\
+ -q --qf \"%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\\n\" \\
+ -p \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:38"
+( $at_check_trace;
+run rpm \
+ -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \
+ -p "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo "hello-1.0-1.i386
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:38"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_8
+#AT_START_9
+at_fn_group_banner 9 'rpmquery.at:50' \
+ "rpm -ql -p *.src.rpm" " " 2
+at_xfail=no
+(
+ $as_echo "9. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:52:
+run rpm \\
+ -ql \\
+ -p \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:52"
+( $at_check_trace;
+run rpm \
+ -ql \
+ -p "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo "hello-1.0.tar.gz
+hello.spec
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:52"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_9
+#AT_START_10
+at_fn_group_banner 10 'rpmquery.at:65' \
+ "rpmspec -q" " " 2
+at_xfail=no
+(
+ $as_echo "10. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:67:
+run rpmspec \\
+ -q --qf \"%{name}\" \"\${abs_srcdir}\"/data/SPECS/hello.spec
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:67"
+( $at_check_trace;
+run rpmspec \
+ -q --qf "%{name}" "${abs_srcdir}"/data/SPECS/hello.spec
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "hello" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:67"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_10
+#AT_START_11
+at_fn_group_banner 11 'rpmquery.at:77' \
+ "rpm -ql -p *.i386.rpm" " " 2
+at_xfail=no
+(
+ $as_echo "11. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:79:
+rpm \\
+ -ql \\
+ -p \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:79"
+( $at_check_trace;
+rpm \
+ -ql \
+ -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo "/usr/local/bin/hello
+/usr/share/doc/hello-1.0
+/usr/share/doc/hello-1.0/FAQ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:79"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_11
+#AT_START_12
+at_fn_group_banner 12 'rpmquery.at:94' \
+ "rpm -qp <manifest>" " " 2
+at_xfail=no
+(
+ $as_echo "12. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:96:
+cat << EOF > query.mft
+\"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+\"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.ppc64.rpm
+\"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+EOF
+run rpm -qp --qf \"%{nvr}\\n\" query.mft
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:96"
+( $at_check_trace;
+cat << EOF > query.mft
+"${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+"${abs_srcdir}"/data/RPMS/hello-1.0-1.ppc64.rpm
+"${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+EOF
+run rpm -qp --qf "%{nvr}\n" query.mft
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "hello-1.0-1
+hello-1.0-1
+foo-1.0-1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:96"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_12
+#AT_START_13
+at_fn_group_banner 13 'rpmquery.at:115' \
+ "rpm -q --scripts -p *.i386.rpm" " " 2
+at_xfail=no
+(
+ $as_echo "13. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:117:
+run rpm \\
+ -q --scripts \\
+ -p \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:117"
+( $at_check_trace;
+run rpm \
+ -q --scripts \
+ -p "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo "preinstall program: /bin/sh
+postinstall program: /bin/sh
+preuninstall program: /bin/sh
+postuninstall program: /bin/sh
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:117"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_13
+#AT_START_14
+at_fn_group_banner 14 'rpmquery.at:136' \
+ "rpm -qil hello" " " 2
+at_xfail=no
+(
+ $as_echo "14. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:139:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+run rpm \\
+ --root=\"\${abs_builddir}\"/testing \\
+ --initdb
+
+
+tpkg=\"hello-1.0-1.ppc64.rpm\"
+cp \"\${RPMDATA}/RPMS/\$tpkg\" \"\${RPMTEST}\"
+
+runroot rpm \\
+ --noscripts --nodeps --ignorearch --relocate=/usr=\"\${abs_builddir}\"/testing/check \\
+ -i \"\${tpkg}\"
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmquery.at:139"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+run rpm \
+ --root="${abs_builddir}"/testing \
+ --initdb
+
+
+tpkg="hello-1.0-1.ppc64.rpm"
+cp "${RPMDATA}/RPMS/$tpkg" "${RPMTEST}"
+
+runroot rpm \
+ --noscripts --nodeps --ignorearch --relocate=/usr="${abs_builddir}"/testing/check \
+ -i "${tpkg}"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:139"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:152:
+runroot rpm \\
+ -q hello
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:152"
+( $at_check_trace;
+runroot rpm \
+ -q hello
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo "hello-1.0-1.ppc64
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:152"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+cat > expout << _ATEOF
+${abs_builddir}/testing/check/local/bin/hello
+${abs_builddir}/testing/check/share/doc/hello-1.0
+${abs_builddir}/testing/check/share/doc/hello-1.0/FAQ
+_ATEOF
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:167:
+runroot rpm \\
+ -ql hello
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:167"
+( $at_check_trace;
+runroot rpm \
+ -ql hello
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:167"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_14
+#AT_START_15
+at_fn_group_banner 15 'rpmquery.at:178' \
+ "integer array query" " " 2
+at_xfail=no
+(
+ $as_echo "15. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:180:
+run rpm \\
+ --queryformat=\"[%{filemodes}\\n]\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:180"
+( $at_check_trace;
+run rpm \
+ --queryformat="[%{filemodes}\n]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "33257
+16877
+33188
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:180"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_15
+#AT_START_16
+at_fn_group_banner 16 'rpmquery.at:194' \
+ "formatted filesbypkg query" " " 2
+at_xfail=no
+(
+ $as_echo "16. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:196:
+run rpm \\
+ --queryformat=\"[%-10{=NAME} %{FILENAMES}\\n]\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:196"
+( $at_check_trace;
+run rpm \
+ --queryformat="[%-10{=NAME} %{FILENAMES}\n]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "hello /usr/local/bin/hello
+hello /usr/share/doc/hello-1.0
+hello /usr/share/doc/hello-1.0/FAQ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:196"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_16
+#AT_START_17
+at_fn_group_banner 17 'rpmquery.at:210' \
+ "hex formatted integer array extension query" " " 2
+at_xfail=no
+(
+ $as_echo "17. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:212:
+run rpm \\
+ --queryformat=\"[%5{longfilesizes:hex}\\n]\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:212"
+( $at_check_trace;
+run rpm \
+ --queryformat="[%5{longfilesizes:hex}\n]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo " b40
+ 1000
+ 24
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:212"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_17
+#AT_START_18
+at_fn_group_banner 18 'rpmquery.at:226' \
+ "base64 extension query" " " 2
+at_xfail=no
+(
+ $as_echo "18. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:228:
+run rpm \\
+ --queryformat=\"%{pkgid:base64}\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:228"
+( $at_check_trace;
+run rpm \
+ --queryformat="%{pkgid:base64}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "qt8W635v5FKy1pILrW+0uw==
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:228"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_18
+#AT_START_19
+at_fn_group_banner 19 'rpmquery.at:240' \
+ "integer array perms format query" " " 2
+at_xfail=no
+(
+ $as_echo "19. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:242:
+run rpm \\
+ --queryformat=\"[%{filemodes:perms}\\n]\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:242"
+( $at_check_trace;
+run rpm \
+ --queryformat="[%{filemodes:perms}\n]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-rwxr-x--x
+drwxr-xr-x
+-rw-r--r--
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:242"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_19
+#AT_START_20
+at_fn_group_banner 20 'rpmquery.at:256' \
+ "string array query" " " 2
+at_xfail=no
+(
+ $as_echo "20. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:258:
+run rpm \\
+ --queryformat=\"[%{basenames} ]\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:258"
+( $at_check_trace;
+run rpm \
+ --queryformat="[%{basenames} ]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "hello hello-1.0 FAQ " | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:258"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_20
+#AT_START_21
+at_fn_group_banner 21 'rpmquery.at:269' \
+ "empty string array query" " " 2
+at_xfail=no
+(
+ $as_echo "21. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:271:
+run rpm \\
+ --queryformat=\"[%{basenames}]\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:271"
+( $at_check_trace;
+run rpm \
+ --queryformat="[%{basenames}]" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:271"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_21
+#AT_START_22
+at_fn_group_banner 22 'rpmquery.at:282' \
+ "empty string array extension array format" " " 2
+at_xfail=no
+(
+ $as_echo "22. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:284:
+run rpm \\
+ --queryformat=\"[%{filenames}]\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:284"
+( $at_check_trace;
+run rpm \
+ --queryformat="[%{filenames}]" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:284"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_22
+#AT_START_23
+at_fn_group_banner 23 'rpmquery.at:295' \
+ "empty string array extension query" " " 2
+at_xfail=no
+(
+ $as_echo "23. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:297:
+run rpm \\
+ --queryformat=\"%{filenames}\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:297"
+( $at_check_trace;
+run rpm \
+ --queryformat="%{filenames}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "(none)" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:297"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_23
+#AT_START_24
+at_fn_group_banner 24 'rpmquery.at:308' \
+ "different sizes arrays query" " " 2
+at_xfail=no
+(
+ $as_echo "24. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:310:
+run rpm \\
+ --queryformat=\"[%{basenames} %{changelogname}]\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/hello-1.0-1.i386.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:310"
+( $at_check_trace;
+run rpm \
+ --queryformat="[%{basenames} %{changelogname}]" \
+ -qp "${abs_srcdir}"/data/RPMS/hello-1.0-1.i386.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: incorrect format: array iterator used with different sized arrays
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:310"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_24
+#AT_START_25
+at_fn_group_banner 25 'rpmquery.at:322' \
+ "non-existent string tag" " " 2
+at_xfail=no
+(
+ $as_echo "25. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:324:
+run rpm \\
+ --queryformat=\"%{vendor}\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:324"
+( $at_check_trace;
+run rpm \
+ --queryformat="%{vendor}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "(none)" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:324"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_25
+#AT_START_26
+at_fn_group_banner 26 'rpmquery.at:335' \
+ "non-existent integer tag query" " " 2
+at_xfail=no
+(
+ $as_echo "26. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:337:
+run rpm \\
+ --queryformat=\"%{installcolor}\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:337"
+( $at_check_trace;
+run rpm \
+ --queryformat="%{installcolor}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "(none)" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:337"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_26
+#AT_START_27
+at_fn_group_banner 27 'rpmquery.at:348' \
+ "conditional queryformat" " " 2
+at_xfail=no
+(
+ $as_echo "27. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:350:
+run rpm \\
+ --queryformat=\"%|name?{%{name}}:{no}| %|installtime?{%{installtime}}:{(not installed)}|\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:350"
+( $at_check_trace;
+run rpm \
+ --queryformat="%|name?{%{name}}:{no}| %|installtime?{%{installtime}}:{(not installed)}|" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo (not installed)" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:350"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_27
+#AT_START_28
+at_fn_group_banner 28 'rpmquery.at:361' \
+ "invalid tag query" " " 2
+at_xfail=no
+(
+ $as_echo "28. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:363:
+run rpm \\
+ --queryformat=\"%{notag}\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:363"
+( $at_check_trace;
+run rpm \
+ --queryformat="%{notag}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: incorrect format: unknown tag
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:363"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_28
+#AT_START_29
+at_fn_group_banner 29 'rpmquery.at:375' \
+ "invalid data for format query" " " 2
+at_xfail=no
+(
+ $as_echo "29. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmquery.at:377:
+run rpm \\
+ --queryformat=\"%{name:depflags}\" \\
+ -qp \"\${abs_srcdir}\"/data/RPMS/foo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:377"
+( $at_check_trace;
+run rpm \
+ --queryformat="%{name:depflags}" \
+ -qp "${abs_srcdir}"/data/RPMS/foo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "(not a number)" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:377"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_29
+#AT_START_30
+at_fn_group_banner 30 'rpmverify.at:7' \
+ "dependency problems" " " 3
+at_xfail=no
+(
+ $as_echo "30. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmverify.at:9:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:9"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Unsatisfied dependencies for deptest-one-1.0-1.noarch:
+ deptest-two is needed by (installed) deptest-one-1.0-1.noarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:9"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_30
+#AT_START_31
+at_fn_group_banner 31 'rpmverify.at:31' \
+ "files with no problems" " " 3
+at_xfail=no
+(
+ $as_echo "31. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmverify.at:33:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:33"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_31
+#AT_START_32
+at_fn_group_banner 32 'rpmverify.at:48' \
+ "files with no problems in verbose mode" " " 3
+at_xfail=no
+(
+ $as_echo "32. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmverify.at:50:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:50"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "......... /usr/local/bin/hello
+......... /usr/share/doc/hello-1.0
+......... d /usr/share/doc/hello-1.0/FAQ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:50"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_32
+#AT_START_33
+at_fn_group_banner 33 'rpmverify.at:68' \
+ "verify files with problems present" " " 3
+at_xfail=no
+(
+ $as_echo "33. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmverify.at:70:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:70"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "5..T...M. /usr/local/bin/hello
+missing d /usr/share/doc/hello-1.0/FAQ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:70"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_33
+#AT_START_34
+at_fn_group_banner 34 'rpmverify.at:92' \
+ "verifyscript failure" " " 3
+at_xfail=no
+(
+ $as_echo "34. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmverify.at:94:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:94"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:94"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_34
+#AT_START_35
+at_fn_group_banner 35 'rpmverify.at:108' \
+ "verifyscript success" " " 3
+at_xfail=no
+(
+ $as_echo "35. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmverify.at:110:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:110"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:110"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_35
+#AT_START_36
+at_fn_group_banner 36 'rpmdb.at:23' \
+ "rpm --initdb" " " 4
+at_xfail=no
+(
+ $as_echo "36. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:25:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+run rpm \\
+ --root=\"\${abs_builddir}\"/testing \\
+ --initdb
+
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:25"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+run rpm \
+ --root="${abs_builddir}"/testing \
+ --initdb
+
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:25"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_36
+#AT_START_37
+at_fn_group_banner 37 'rpmdb.at:36' \
+ "rpm -qa" " " 4
+at_xfail=no
+(
+ $as_echo "37. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:38:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+run rpm \\
+ --root=\"\${abs_builddir}\"/testing \\
+ --initdb
+
+runroot rpm \\
+ -qa
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:38"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+run rpm \
+ --root="${abs_builddir}"/testing \
+ --initdb
+
+runroot rpm \
+ -qa
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:38"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_37
+#AT_START_38
+at_fn_group_banner 38 'rpmdb.at:51' \
+ "rpm -i *.noarch.rpm" " " 4
+at_xfail=no
+(
+ $as_echo "38. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:54:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+run rpm \\
+ --root=\"\${abs_builddir}\"/testing \\
+ --initdb
+
+
+tpkg=\"foo-1.0-1.noarch.rpm\"
+cp \"\${RPMDATA}/RPMS/\${tpkg}\" \"\${RPMTEST}\"
+
+runroot rpm -i \\
+ \"\${tpkg}\"
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:54"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+run rpm \
+ --root="${abs_builddir}"/testing \
+ --initdb
+
+
+tpkg="foo-1.0-1.noarch.rpm"
+cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}"
+
+runroot rpm -i \
+ "${tpkg}"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:54"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_38
+#AT_START_39
+at_fn_group_banner 39 'rpmdb.at:70' \
+ "rpm -U --replacepkgs" " " 4
+at_xfail=no
+(
+ $as_echo "39. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:73:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+run rpm \\
+ --root=\"\${abs_builddir}\"/testing \\
+ --initdb
+
+
+tpkg=\"foo-1.0-1.noarch.rpm\"
+cp \"\${RPMDATA}/RPMS/\${tpkg}\" \"\${RPMTEST}\"
+
+runroot rpm -i \"\${tpkg}\" && runroot rpm -U --replacepkgs \"\${tpkg}\"
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:73"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+run rpm \
+ --root="${abs_builddir}"/testing \
+ --initdb
+
+
+tpkg="foo-1.0-1.noarch.rpm"
+cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}"
+
+runroot rpm -i "${tpkg}" && runroot rpm -U --replacepkgs "${tpkg}"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:73"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_39
+#AT_START_40
+at_fn_group_banner 40 'rpmdb.at:90' \
+ "rpm -i --relocate=.. *.i386.rpm" " " 4
+at_xfail=no
+(
+ $as_echo "40. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:92:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+run rpm \\
+ --root=\"\${abs_builddir}\"/testing \\
+ --initdb
+
+
+tpkg=\"hello-1.0-1.i386.rpm\"
+cp \"\${RPMDATA}/RPMS/\${tpkg}\" \"\${RPMTEST}\"
+
+runroot rpm -i \\
+ --noscripts --nodeps --ignorearch --relocate=/usr=\"\${abs_builddir}\"/testing/check \\
+ \"\${tpkg}\"
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:92"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+run rpm \
+ --root="${abs_builddir}"/testing \
+ --initdb
+
+
+tpkg="hello-1.0-1.i386.rpm"
+cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}"
+
+runroot rpm -i \
+ --noscripts --nodeps --ignorearch --relocate=/usr="${abs_builddir}"/testing/check \
+ "${tpkg}"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:92"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_40
+#AT_START_41
+at_fn_group_banner 41 'rpmdb.at:112' \
+ "rpm -i --relocate=.. *.ppc64.rpm" " " 4
+at_xfail=no
+(
+ $as_echo "41. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:114:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+run rpm \\
+ --root=\"\${abs_builddir}\"/testing \\
+ --initdb
+
+
+tpkg=\"hello-1.0-1.ppc64.rpm\"
+cp \"\${RPMDATA}/RPMS/\${tpkg}\" \"\${RPMTEST}\"
+
+runroot rpm -i \\
+ --noscripts --nodeps --ignorearch --relocate=/usr=\"\${abs_builddir}\"/testing/check \\
+ \"\${tpkg}\"
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:114"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+run rpm \
+ --root="${abs_builddir}"/testing \
+ --initdb
+
+
+tpkg="hello-1.0-1.ppc64.rpm"
+cp "${RPMDATA}/RPMS/${tpkg}" "${RPMTEST}"
+
+runroot rpm -i \
+ --noscripts --nodeps --ignorearch --relocate=/usr="${abs_builddir}"/testing/check \
+ "${tpkg}"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:114"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_41
+#AT_START_42
+at_fn_group_banner 42 'rpmdb.at:133' \
+ "rpm -U and verify status" " " 4
+at_xfail=no
+(
+ $as_echo "42. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:135:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg status\" \\
+ --define \"filedata same_stuff\" \\
+ \${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+runroot rpm -qls conflictstatus
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:135"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg status" \
+ --define "filedata same_stuff" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+runroot rpm -qls conflictstatus
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "normal /usr/share/my.version
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:135"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_42
+#AT_START_43
+at_fn_group_banner 43 'rpmdb.at:155' \
+ "rpm -U with _install_lang and verify status" " " 4
+at_xfail=no
+(
+ $as_echo "43. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:157:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ \${RPMDATA}/SPECS/flangtest.spec
+
+runroot rpm -U --define \"_install_langs de:fi\" \"\${TOPDIR}\"/RPMS/noarch/flangtest-1.0-1.noarch.rpm
+runroot rpm -qls flangtest
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:157"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ ${RPMDATA}/SPECS/flangtest.spec
+
+runroot rpm -U --define "_install_langs de:fi" "${TOPDIR}"/RPMS/noarch/flangtest-1.0-1.noarch.rpm
+runroot rpm -qls flangtest
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "normal /usr/share/flangtest/de.txt
+not installed /usr/share/flangtest/en.txt
+normal /usr/share/flangtest/fi.txt
+normal /usr/share/flangtest/none.txt
+not installed /usr/share/flangtest/pl.txt
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:157"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_43
+#AT_START_44
+at_fn_group_banner 44 'rpmdb.at:179' \
+ "rpm -U and verify files on disk" " " 4
+at_xfail=no
+(
+ $as_echo "44. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:181:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+rm -f \"\${RPMTEST}\"/usr/share/my.version
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg status\" \\
+ --define \"filedata same_stuff\" \\
+ \${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+test -f \"\${RPMTEST}\"/usr/share/my.version
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:181"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+rm -f "${RPMTEST}"/usr/share/my.version
+
+run rpmbuild --quiet -bb \
+ --define "pkg status" \
+ --define "filedata same_stuff" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+test -f "${RPMTEST}"/usr/share/my.version
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:181"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_44
+#AT_START_45
+at_fn_group_banner 45 'rpmdb.at:201' \
+ "rpm -e and verify files removed" " " 4
+at_xfail=no
+(
+ $as_echo "45. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdb.at:203:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+rm -f \"\${RPMTEST}\"/usr/share/my.version
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg status\" \\
+ --define \"filedata same_stuff\" \\
+ \${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+runroot rpm -e conflictstatus
+test -f \"\${RPMTEST}\"/usr/share/my.version
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:203"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+rm -f "${RPMTEST}"/usr/share/my.version
+
+run rpmbuild --quiet -bb \
+ --define "pkg status" \
+ --define "filedata same_stuff" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm
+runroot rpm -e conflictstatus
+test -f "${RPMTEST}"/usr/share/my.version
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/rpmdb.at:203"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_45
+#AT_START_46
+at_fn_group_banner 46 'rpmi.at:23' \
+ "rpm -U *.src.rpm" " " 5
+at_xfail=no
+(
+ $as_echo "46. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:25:
+rm -rf \${TOPDIR}
+
+run rpm \\
+ -U \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmi.at:25"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+
+run rpm \
+ -U "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:25"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_46
+#AT_START_47
+at_fn_group_banner 47 'rpmi.at:38' \
+ "rpm -i *.src.rpm" " " 5
+at_xfail=no
+(
+ $as_echo "47. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:40:
+rm -rf \${TOPDIR}
+
+run rpm \\
+ -i \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmi.at:40"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+
+run rpm \
+ -i "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:40"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_47
+#AT_START_48
+at_fn_group_banner 48 'rpmi.at:54' \
+ "rpm -i <nonexistent file>" " " 5
+at_xfail=no
+(
+ $as_echo "48. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:56:
+run rpm \\
+ -i no_such_file
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmi.at:56"
+( $at_check_trace;
+run rpm \
+ -i no_such_file
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/rpmi.at:56"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_48
+#AT_START_49
+at_fn_group_banner 49 'rpmi.at:66' \
+ "rpm -i --nomanifest <garbage text file>" " " 5
+at_xfail=no
+(
+ $as_echo "49. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:68:
+junk=\"\${RPMTEST}/textfile\"
+cat << EOF > \"\${junk}\"
+no_such.file
+not_an.rpm
+EOF
+
+run rpm \\
+ -Uvv --nomanifest \"\${junk}\"
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmi.at:68"
+( $at_check_trace;
+junk="${RPMTEST}/textfile"
+cat << EOF > "${junk}"
+no_such.file
+not_an.rpm
+EOF
+
+run rpm \
+ -Uvv --nomanifest "${junk}"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/rpmi.at:68"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_49
+#AT_START_50
+at_fn_group_banner 50 'rpmi.at:83' \
+ "rpm -i <garbage text file" " " 5
+at_xfail=no
+(
+ $as_echo "50. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:85:
+junk=\"\${RPMTEST}/not_an.rpm\"
+cat << EOF > \"\${junk}\"
+no_such.file
+not_an.rpm
+EOF
+
+run rpm \\
+ -Uvv \"\${junk}\"
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmi.at:85"
+( $at_check_trace;
+junk="${RPMTEST}/not_an.rpm"
+cat << EOF > "${junk}"
+no_such.file
+not_an.rpm
+EOF
+
+run rpm \
+ -Uvv "${junk}"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/rpmi.at:85"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_50
+#AT_START_51
+at_fn_group_banner 51 'rpmi.at:102' \
+ "rpm -U upgrade to newer" " " 5
+at_xfail=no
+(
+ $as_echo "51. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:103:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:103"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "versiontest-2.0-1.noarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:103"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_51
+#AT_START_52
+at_fn_group_banner 52 'rpmi.at:124' \
+ "rpm -U upgrade to older" " " 5
+at_xfail=no
+(
+ $as_echo "52. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:125:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/versiontest-2.0-1.noarch.rpm
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/versiontest-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:125"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo " package versiontest-2.0-1.noarch (which is newer than versiontest-1.0-1.noarch) is already installed
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/rpmi.at:125"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_52
+#AT_START_53
+at_fn_group_banner 53 'rpmi.at:138' \
+ "rpm -U --oldpackage downgrade" " " 5
+at_xfail=no
+(
+ $as_echo "53. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:139:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:139"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo "versiontest-1.0-1.noarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:139"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_53
+#AT_START_54
+at_fn_group_banner 54 'rpmi.at:153' \
+ "rpm -U two versions of same package" " " 5
+at_xfail=no
+(
+ $as_echo "54. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:154:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:154"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "versiontest-2.0-1.noarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:154"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_54
+#AT_START_55
+at_fn_group_banner 55 'rpmi.at:169' \
+ "rpm -i two versions of same package" " " 5
+at_xfail=no
+(
+ $as_echo "55. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:170:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:170"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "versiontest-2.0-1.noarch
+versiontest-1.0-1.noarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:170"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_55
+#AT_START_56
+at_fn_group_banner 56 'rpmi.at:187' \
+ "rpm -i identical versions of same package" " " 5
+at_xfail=no
+(
+ $as_echo "56. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:188:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+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
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:188"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+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
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "versiontest-1.0-1.noarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:188"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_56
+#AT_START_57
+at_fn_group_banner 57 'rpmbuild.at:23' \
+ "rpmbuild -ba *.spec" " " 6
+at_xfail=no
+(
+ $as_echo "57. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:25:
+rm -rf \${TOPDIR}
+as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p
+
+cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES
+
+run rpmbuild \\
+ -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:25"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p
+
+cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES
+
+run rpmbuild \
+ -ba "${abs_srcdir}"/data/SPECS/hello.spec
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:25"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_57
+#AT_START_58
+at_fn_group_banner 58 'rpmbuild.at:62' \
+ "rpmbuild --rebuild" " " 6
+at_xfail=no
+(
+ $as_echo "58. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:64:
+rm -rf \${TOPDIR}
+
+run rpmbuild \\
+ --rebuild \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:64"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+
+run rpmbuild \
+ --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:64"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_58
+#AT_START_59
+at_fn_group_banner 59 'rpmbuild.at:95' \
+ "rpmbuild -tb <tar with bad spec>" " " 6
+at_xfail=no
+(
+ $as_echo "59. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:97:
+rm -rf \${TOPDIR}
+
+run rpmbuild \\
+ -tb \"\${RPMDATA}/SOURCES/hello-1.0.tar.gz\"
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:97"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+
+run rpmbuild \
+ -tb "${RPMDATA}/SOURCES/hello-1.0.tar.gz"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: line 5: Unknown tag: Serial: 1
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/rpmbuild.at:97"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_59
+#AT_START_60
+at_fn_group_banner 60 'rpmbuild.at:112' \
+ "rpmbuild -tb" " " 6
+at_xfail=no
+(
+ $as_echo "60. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:114:
+rm -rf \${TOPDIR}
+
+run rpmbuild \\
+ -ta \"\${RPMDATA}/SOURCES/hello-2.0.tar.gz\"
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:114"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+
+run rpmbuild \
+ -ta "${RPMDATA}/SOURCES/hello-2.0.tar.gz"
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:114"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_60
+#AT_START_61
+at_fn_group_banner 61 'rpmvercmp.at:13' \
+ "rpmvercmp(1.0, 1.0) = 0" " " 7
+at_xfail=no
+(
+ $as_echo "61. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:13: run rpm --eval '%{lua: print(rpm.vercmp(\"1.0\", \"1.0\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:13"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("1.0", "1.0"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "0
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:13"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_61
+#AT_START_62
+at_fn_group_banner 62 'rpmvercmp.at:14' \
+ "rpmvercmp(1.0, 2.0) = -1" " " 7
+at_xfail=no
+(
+ $as_echo "62. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:14: run rpm --eval '%{lua: print(rpm.vercmp(\"1.0\", \"2.0\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:14"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("1.0", "2.0"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:14"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_62
+#AT_START_63
+at_fn_group_banner 63 'rpmvercmp.at:15' \
+ "rpmvercmp(2.0, 2.0.1) = -1" " " 7
+at_xfail=no
+(
+ $as_echo "63. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:15: run rpm --eval '%{lua: print(rpm.vercmp(\"2.0\", \"2.0.1\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:15"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("2.0", "2.0.1"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:15"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_63
+#AT_START_64
+at_fn_group_banner 64 'rpmvercmp.at:16' \
+ "rpmvercmp(2.0.1a, 2.0.1) = 1" " " 7
+at_xfail=no
+(
+ $as_echo "64. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:16: run rpm --eval '%{lua: print(rpm.vercmp(\"2.0.1a\", \"2.0.1\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:16"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("2.0.1a", "2.0.1"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:16"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_64
+#AT_START_65
+at_fn_group_banner 65 'rpmvercmp.at:17' \
+ "rpmvercmp(5.5p1, 5.5p2) = -1" " " 7
+at_xfail=no
+(
+ $as_echo "65. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:17: run rpm --eval '%{lua: print(rpm.vercmp(\"5.5p1\", \"5.5p2\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:17"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("5.5p1", "5.5p2"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:17"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_65
+#AT_START_66
+at_fn_group_banner 66 'rpmvercmp.at:18' \
+ "rpmvercmp(5.6p1, 5.5p2) = 1" " " 7
+at_xfail=no
+(
+ $as_echo "66. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:18: run rpm --eval '%{lua: print(rpm.vercmp(\"5.6p1\", \"5.5p2\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:18"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("5.6p1", "5.5p2"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:18"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_66
+#AT_START_67
+at_fn_group_banner 67 'rpmvercmp.at:19' \
+ "rpmvercmp(10a2, 10b2) = -1" " " 7
+at_xfail=no
+(
+ $as_echo "67. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:19: run rpm --eval '%{lua: print(rpm.vercmp(\"10a2\", \"10b2\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:19"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("10a2", "10b2"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:19"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_67
+#AT_START_68
+at_fn_group_banner 68 'rpmvercmp.at:20' \
+ "rpmvercmp(1.0a, 1.0aa) = -1" " " 7
+at_xfail=no
+(
+ $as_echo "68. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:20: run rpm --eval '%{lua: print(rpm.vercmp(\"1.0a\", \"1.0aa\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:20"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("1.0a", "1.0aa"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:20"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_68
+#AT_START_69
+at_fn_group_banner 69 'rpmvercmp.at:21' \
+ "rpmvercmp(6.0rc1, 6.0) = 1" " " 7
+at_xfail=no
+(
+ $as_echo "69. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:21: run rpm --eval '%{lua: print(rpm.vercmp(\"6.0rc1\", \"6.0\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:21"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("6.0rc1", "6.0"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:21"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_69
+#AT_START_70
+at_fn_group_banner 70 'rpmvercmp.at:22' \
+ "rpmvercmp(6.0.rc1, 6.0) = 1" " " 7
+at_xfail=no
+(
+ $as_echo "70. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:22: run rpm --eval '%{lua: print(rpm.vercmp(\"6.0.rc1\", \"6.0\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:22"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("6.0.rc1", "6.0"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_70
+#AT_START_71
+at_fn_group_banner 71 'rpmvercmp.at:23' \
+ "rpmvercmp(10.1.1.0001, 10.1.1.39) = -1" " " 7
+at_xfail=no
+(
+ $as_echo "71. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:23: run rpm --eval '%{lua: print(rpm.vercmp(\"10.1.1.0001\", \"10.1.1.39\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:23"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("10.1.1.0001", "10.1.1.39"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:23"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_71
+#AT_START_72
+at_fn_group_banner 72 'rpmvercmp.at:24' \
+ "rpmvercmp(5.0, 4.999.9) = 1" " " 7
+at_xfail=no
+(
+ $as_echo "72. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:24: run rpm --eval '%{lua: print(rpm.vercmp(\"5.0\", \"4.999.9\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:24"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("5.0", "4.999.9"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_72
+#AT_START_73
+at_fn_group_banner 73 'rpmvercmp.at:25' \
+ "rpmvercmp(2.030, 2.031) = -1" " " 7
+at_xfail=no
+(
+ $as_echo "73. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:25: run rpm --eval '%{lua: print(rpm.vercmp(\"2.030\", \"2.031\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:25"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("2.030", "2.031"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:25"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_73
+#AT_START_74
+at_fn_group_banner 74 'rpmvercmp.at:26' \
+ "rpmvercmp(20101122, 20101121) = 1" " " 7
+at_xfail=no
+(
+ $as_echo "74. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:26: run rpm --eval '%{lua: print(rpm.vercmp(\"20101122\", \"20101121\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:26"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("20101122", "20101121"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_74
+#AT_START_75
+at_fn_group_banner 75 'rpmvercmp.at:27' \
+ "rpmvercmp(2.0, 2_0) = 0" " " 7
+at_xfail=no
+(
+ $as_echo "75. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmvercmp.at:27: run rpm --eval '%{lua: print(rpm.vercmp(\"2.0\", \"2_0\"))}'"
+at_fn_check_prepare_trace "rpmvercmp.at:27"
+( $at_check_trace; run rpm --eval '%{lua: print(rpm.vercmp("2.0", "2_0"))}'
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "0
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmvercmp.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_75
+#AT_START_76
+at_fn_group_banner 76 'rpmdeps.at:7' \
+ "missing dependency" " " 8
+at_xfail=no
+(
+ $as_echo "76. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdeps.at:9:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg one\" \\
+ --define \"reqs deptest-two\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:9"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-two" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: Failed dependencies:
+ deptest-two is needed by deptest-one-1.0-1.noarch
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/rpmdeps.at:9"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_76
+#AT_START_77
+at_fn_group_banner 77 'rpmdeps.at:29' \
+ "cross-depending packages" " " 8
+at_xfail=no
+(
+ $as_echo "77. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdeps.at:31:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg one\" \\
+ --define \"reqs deptest-two\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg two\" \\
+ --define \"reqs deptest-one\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \"\${TOPDIR}\"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:31"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-two" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ --define "reqs deptest-one" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdeps.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_77
+#AT_START_78
+at_fn_group_banner 78 'rpmdeps.at:54' \
+ "unsatisfied versioned require" " " 8
+at_xfail=no
+(
+ $as_echo "78. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdeps.at:56:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg one\" \\
+ --define \"reqs deptest-two >= 2.0\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg two\" \\
+ --define \"provs deptest-foo = 1.0\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \"\${TOPDIR}\"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:56"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-two >= 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ --define "provs deptest-foo = 1.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: Failed dependencies:
+ deptest-two >= 2.0 is needed by deptest-one-1.0-1.noarch
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/rpmdeps.at:56"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_78
+#AT_START_79
+at_fn_group_banner 79 'rpmdeps.at:81' \
+ "satisfied versioned require" " " 8
+at_xfail=no
+(
+ $as_echo "79. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdeps.at:83:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg one\" \\
+ --define \"reqs deptest-foo >= 2.0\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg two\" \\
+ --define \"provs deptest-foo = 2.0\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \"\${TOPDIR}\"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:83"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-foo >= 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ --define "provs deptest-foo = 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdeps.at:83"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_79
+#AT_START_80
+at_fn_group_banner 80 'rpmdeps.at:106' \
+ "versioned conflict in transaction" " " 8
+at_xfail=no
+(
+ $as_echo "80. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdeps.at:108:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg one\" \\
+ --define \"cfls deptest-two < 2.0\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg two\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \"\${TOPDIR}\"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:108"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "cfls deptest-two < 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: Failed dependencies:
+ deptest-two < 2.0 conflicts with deptest-one-1.0-1.noarch
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/rpmdeps.at:108"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_80
+#AT_START_81
+at_fn_group_banner 81 'rpmdeps.at:132' \
+ "versioned conflict in database" " " 8
+at_xfail=no
+(
+ $as_echo "81. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdeps.at:134:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg one\" \\
+ --define \"cfls deptest-two < 2.0\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg two\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:134"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "cfls deptest-two < 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: Failed dependencies:
+ deptest-two < 2.0 conflicts with (installed) deptest-one-1.0-1.noarch
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/rpmdeps.at:134"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_81
+#AT_START_82
+at_fn_group_banner 82 'rpmdeps.at:158' \
+ "erase to break dependencies" " " 8
+at_xfail=no
+(
+ $as_echo "82. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdeps.at:160:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg one\" \\
+ --define \"reqs deptest-foo >= 2.0\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \\
+ --define \"pkg two\" \\
+ --define \"provs deptest-foo = 2.0\" \\
+ \${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \"\${TOPDIR}\"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+runroot rpm -e deptest-two
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:160"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+run rpmbuild --quiet -bb \
+ --define "pkg one" \
+ --define "reqs deptest-foo >= 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+run rpmbuild --quiet -bb \
+ --define "pkg two" \
+ --define "provs deptest-foo = 2.0" \
+ ${RPMDATA}/SPECS/deptest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
+runroot rpm -e deptest-two
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: Failed dependencies:
+ deptest-foo >= 2.0 is needed by (installed) deptest-one-1.0-1.noarch
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/rpmdeps.at:160"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_82
+#AT_START_83
+at_fn_group_banner 83 'rpmconflict.at:7' \
+ "rpm -U to package with file conflict" " " 9
+at_xfail=no
+(
+ $as_echo "83. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconflict.at:9:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+for p in \"one\" \"two\"; do
+ run rpmbuild --quiet -bb \\
+ --define \"pkg \$p\" \\
+ --define \"filedata \$p\" \\
+ \${RPMDATA}/SPECS/conflicttest.spec
+done
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/conflictone-1.0-1.noarch.rpm
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:9"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+for p in "one" "two"; do
+ run rpmbuild --quiet -bb \
+ --define "pkg $p" \
+ --define "filedata $p" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/rpmconflict.at:9"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_83
+#AT_START_84
+at_fn_group_banner 84 'rpmconflict.at:30' \
+ "rpm -U two packages with a conflicting file" " " 9
+at_xfail=no
+(
+ $as_echo "84. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconflict.at:32:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+runroot rpm -U \\
+ \"\${TOPDIR}\"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \\
+ \"\${TOPDIR}\"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:32"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+runroot rpm -U \
+ "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \
+ "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/rpmconflict.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_84
+#AT_START_85
+at_fn_group_banner 85 'rpmconflict.at:46' \
+ "rpm -U package with shareable file" " " 9
+at_xfail=no
+(
+ $as_echo "85. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconflict.at:48:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+
+for p in \"one\" \"two\"; do
+ run rpmbuild --quiet -bb \\
+ --define \"pkg \$p\" \\
+ --define \"filedata same_stuff\" \\
+ \${RPMDATA}/SPECS/conflicttest.spec
+done
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/conflictone-1.0-1.noarch.rpm
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:48"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+
+for p in "one" "two"; do
+ run rpmbuild --quiet -bb \
+ --define "pkg $p" \
+ --define "filedata same_stuff" \
+ ${RPMDATA}/SPECS/conflicttest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:48"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_85
+#AT_START_86
+at_fn_group_banner 86 'rpmconflict.at:69' \
+ "rpm -U two packages with shareable file" " " 9
+at_xfail=no
+(
+ $as_echo "86. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconflict.at:71:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+
+runroot rpm -U \\
+ \"\${TOPDIR}\"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \\
+ \"\${TOPDIR}\"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:71"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+
+runroot rpm -U \
+ "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \
+ "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:71"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_86
+#AT_START_87
+at_fn_group_banner 87 'rpmconflict.at:86' \
+ "rpm -U replacing directory with symlink" " " 9
+at_xfail=no
+(
+ $as_echo "87. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconflict.at:88:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+rm -rf \"\${RPMTEST}\"/usr/{share,lib}/symlinktest*
+
+run rpmbuild --quiet -bb \\
+ --define \"rel 1\" --without symlink \${RPMDATA}/SPECS/symlinktest.spec
+run rpmbuild --quiet -bb \\
+ --define \"rel 2\" --with symlink \${RPMDATA}/SPECS/symlinktest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/symlinktest-1.0-1.noarch.rpm
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/symlinktest-1.0-2.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:88"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}"/usr/{share,lib}/symlinktest*
+
+run rpmbuild --quiet -bb \
+ --define "rel 1" --without symlink ${RPMDATA}/SPECS/symlinktest.spec
+run rpmbuild --quiet -bb \
+ --define "rel 2" --with symlink ${RPMDATA}/SPECS/symlinktest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/symlinktest-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/symlinktest-1.0-2.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: unpacking of archive failed on file /usr/share/symlinktest: cpio: rename failed - Is a directory
+error: symlinktest-1.0-2.noarch: install failed
+error: symlinktest-1.0-1.noarch: erase skipped
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/rpmconflict.at:88"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_87
+#AT_START_88
+at_fn_group_banner 88 'rpmconflict.at:113' \
+ "rpm -U replacing symlink with directory" " " 9
+at_xfail=no
+(
+ $as_echo "88. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconflict.at:115:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+rm -rf \"\${RPMTEST}\"/usr/{share,lib}/symlinktest*
+
+run rpmbuild --quiet -bb \\
+ --define \"rel 1\" --with symlink \${RPMDATA}/SPECS/symlinktest.spec
+run rpmbuild --quiet -bb \\
+ --define \"rel 2\" --without symlink \${RPMDATA}/SPECS/symlinktest.spec
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/symlinktest-1.0-1.noarch.rpm
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/symlinktest-1.0-2.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:115"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}"/usr/{share,lib}/symlinktest*
+
+run rpmbuild --quiet -bb \
+ --define "rel 1" --with symlink ${RPMDATA}/SPECS/symlinktest.spec
+run rpmbuild --quiet -bb \
+ --define "rel 2" --without symlink ${RPMDATA}/SPECS/symlinktest.spec
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/symlinktest-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/symlinktest-1.0-2.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:115"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_88
+#AT_START_89
+at_fn_group_banner 89 'rpmconfig.at:7' \
+ "rpm -U to package with unchanged config file" " " 10
+at_xfail=no
+(
+ $as_echo "89. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconfig.at:9:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+rm -rf \"\${RPMTEST}/etc/my.conf\"
+
+for v in \"1.0\" \"2.0\"; do
+ run rpmbuild --quiet -bb \\
+ --define \"ver \$v\" \\
+ --define \"filedata foo\" \\
+ \${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:9"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}/etc/my.conf"
+
+for v in "1.0" "2.0"; do
+ run rpmbuild --quiet -bb \
+ --define "ver $v" \
+ --define "filedata foo" \
+ ${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:9"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_89
+#AT_START_90
+at_fn_group_banner 90 'rpmconfig.at:30' \
+ "rpm -U to package with locally modified config file" "" 10
+at_xfail=no
+(
+ $as_echo "90. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconfig.at:32:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+rm -rf \"\${RPMTEST}/etc/my.conf\"
+
+for v in \"1.0\" \"2.0\"; do
+ run rpmbuild --quiet -bb \\
+ --define \"ver \$v\" \\
+ --define \"filedata foo\" \\
+ \${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+echo \"otherstuff\" > \"\${RPMTEST}\"/etc/my.conf
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:32"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}/etc/my.conf"
+
+for v in "1.0" "2.0"; do
+ run rpmbuild --quiet -bb \
+ --define "ver $v" \
+ --define "filedata foo" \
+ ${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+echo "otherstuff" > "${RPMTEST}"/etc/my.conf
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_90
+#AT_START_91
+at_fn_group_banner 91 'rpmconfig.at:54' \
+ "rpm -U to package with unchanged config file" " " 10
+at_xfail=no
+(
+ $as_echo "91. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconfig.at:56:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+rm -rf \"\${RPMTEST}/etc/my.conf\"
+
+for v in \"1.0\" \"2.0\"; do
+ run rpmbuild --quiet -bb \\
+ --define \"ver \$v\" \\
+ --define \"filedata foo-\$v\" \\
+ \${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:56"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}/etc/my.conf"
+
+for v in "1.0" "2.0"; do
+ run rpmbuild --quiet -bb \
+ --define "ver $v" \
+ --define "filedata foo-$v" \
+ ${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:56"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_91
+#AT_START_92
+at_fn_group_banner 92 'rpmconfig.at:77' \
+ "rpm -U to package with modified config file" " " 10
+at_xfail=no
+(
+ $as_echo "92. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmconfig.at:79:
+
+rm -rf \"\${abs_builddir}\"/testing\`run rpm --eval '%_dbpath'\`/*
+
+rm -rf \"\${TOPDIR}\"
+rm -rf \"\${RPMTEST}/etc/my.conf\"
+
+for v in \"1.0\" \"2.0\"; do
+ run rpmbuild --quiet -bb \\
+ --define \"ver \$v\" \\
+ --define \"filedata foo-\$v\" \\
+ \${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+echo \"otherstuff\" > \"\${RPMTEST}\"/etc/my.conf
+runroot rpm -U \"\${TOPDIR}\"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:79"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`run rpm --eval '%_dbpath'`/*
+
+rm -rf "${TOPDIR}"
+rm -rf "${RPMTEST}/etc/my.conf"
+
+for v in "1.0" "2.0"; do
+ run rpmbuild --quiet -bb \
+ --define "ver $v" \
+ --define "filedata foo-$v" \
+ ${RPMDATA}/SPECS/configtest.spec
+done
+
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm
+echo "otherstuff" > "${RPMTEST}"/etc/my.conf
+runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "warning: /etc/my.conf saved as /etc/my.conf.rpmsave
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:79"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_92
+#AT_START_93
+at_fn_group_banner 93 'rpmmacro.at:6' \
+ "simple rpm --eval" " " 11
+at_xfail=no
+(
+ $as_echo "93. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:8:
+run rpm --define \"this that\" --eval '%{this}'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:8"
+( $at_check_trace;
+run rpm --define "this that" --eval '%{this}'
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "that
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:8"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_93
+#AT_START_94
+at_fn_group_banner 94 'rpmmacro.at:16' \
+ "simple true conditional rpm --eval" " " 11
+at_xfail=no
+(
+ $as_echo "94. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:18:
+run rpm --define \"this that\" --eval '%{?this}'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:18"
+( $at_check_trace;
+run rpm --define "this that" --eval '%{?this}'
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "that
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:18"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_94
+#AT_START_95
+at_fn_group_banner 95 'rpmmacro.at:26' \
+ "simple false conditional rpm --eval" " " 11
+at_xfail=no
+(
+ $as_echo "95. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:28:
+run rpm --define \"this that\" --eval '%{?that}'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:28"
+( $at_check_trace;
+run rpm --define "this that" --eval '%{?that}'
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_95
+#AT_START_96
+at_fn_group_banner 96 'rpmmacro.at:36' \
+ "uncompress macro" " " 11
+at_xfail=no
+(
+ $as_echo "96. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:38:
+(cd \${RPMDATA}/SOURCES/ &&
+ run rpm \\
+ --define \"__gzip /my/bin/gzip\" \\
+ --eval \"%{uncompress:hello-2.0.tar.gz}\"
+)
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmmacro.at:38"
+( $at_check_trace;
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --define "__gzip /my/bin/gzip" \
+ --eval "%{uncompress:hello-2.0.tar.gz}"
+)
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "/my/bin/gzip -dc hello-2.0.tar.gz
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:38"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_96
+#AT_START_97
+at_fn_group_banner 97 'rpmmacro.at:50' \
+ "basename macro" " " 11
+at_xfail=no
+(
+ $as_echo "97. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:52:
+(cd \${RPMDATA}/SOURCES/ &&
+ run rpm \\
+ --eval \"%{basename:\${RPMDATA}/SOURCES/hello-2.0.tar.gz}\"
+)
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmmacro.at:52"
+( $at_check_trace;
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --eval "%{basename:${RPMDATA}/SOURCES/hello-2.0.tar.gz}"
+)
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "hello-2.0.tar.gz
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:52"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_97
+#AT_START_98
+at_fn_group_banner 98 'rpmmacro.at:63' \
+ "suffix macro" " " 11
+at_xfail=no
+(
+ $as_echo "98. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:65:
+(cd \${RPMDATA}/SOURCES/ &&
+ run rpm \\
+ --eval \"%{suffix:\${RPMDATA}/SOURCES/hello-2.0.tar.gz}\"
+)
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmmacro.at:65"
+( $at_check_trace;
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --eval "%{suffix:${RPMDATA}/SOURCES/hello-2.0.tar.gz}"
+)
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "gz
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:65"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_98
+#AT_START_99
+at_fn_group_banner 99 'rpmmacro.at:76' \
+ "url2path macro" " " 11
+at_xfail=no
+(
+ $as_echo "99. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:78:
+(cd \${RPMDATA}/SOURCES/ &&
+ run rpm \\
+ --eval \"%{url2path:http://hello.org/releases/hello-2.0.tar.gz}\"
+)
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmmacro.at:78"
+( $at_check_trace;
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --eval "%{url2path:http://hello.org/releases/hello-2.0.tar.gz}"
+)
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "/releases/hello-2.0.tar.gz
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:78"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_99
+#AT_START_100
+at_fn_group_banner 100 'rpmmacro.at:89' \
+ "shell expansion" " " 11
+at_xfail=no
+(
+ $as_echo "100. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:91:
+(cd \${RPMDATA}/SOURCES/ &&
+ run rpm \\
+ --eval \"%(echo foo)\"
+)
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmmacro.at:91"
+( $at_check_trace;
+(cd ${RPMDATA}/SOURCES/ &&
+ run rpm \
+ --eval "%(echo foo)"
+)
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:91"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_100
+#AT_START_101
+at_fn_group_banner 101 'rpmmacro.at:102' \
+ "simple lua --eval" " " 11
+at_xfail=no
+(
+ $as_echo "101. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:104:
+run rpm --eval '%{lua:print(5*5)}'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:104"
+( $at_check_trace;
+run rpm --eval '%{lua:print(5*5)}'
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "25
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:104"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_101
+#AT_START_102
+at_fn_group_banner 102 'rpmmacro.at:112' \
+ "lua rpm extensions" " " 11
+at_xfail=no
+(
+ $as_echo "102. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:114:
+run rpm --eval '%{lua: rpm.define(\"foo bar\") print(rpm.expand(\"%{foo}\"))}'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:114"
+( $at_check_trace;
+run rpm --eval '%{lua: rpm.define("foo bar") print(rpm.expand("%{foo}"))}'
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "bar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:114"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_102
+#AT_START_103
+at_fn_group_banner 103 'rpmmacro.at:122' \
+ "lua posix extensions" " " 11
+at_xfail=no
+(
+ $as_echo "103. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:124:
+run rpm \\
+ --eval '%{lua: posix.putenv(\"LUATEST=ok\") print(posix.getenv(\"LUATEST\"))}'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:124"
+( $at_check_trace;
+run rpm \
+ --eval '%{lua: posix.putenv("LUATEST=ok") print(posix.getenv("LUATEST"))}'
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "ok
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:124"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_103
+#AT_START_104
+at_fn_group_banner 104 'rpmmacro.at:133' \
+ "lua script exit behavior" " " 11
+at_xfail=no
+(
+ $as_echo "104. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmmacro.at:135:
+run rpm \\
+ --eval '%{lua: os.exit()}))}'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:135"
+( $at_check_trace;
+run rpm \
+ --eval '%{lua: os.exit()}))}'
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "error: lua script failed: [string \"<lua>\"]:1: exit not permitted in this context
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:135"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_104
+#AT_START_105
+at_fn_group_banner 105 'rpmpython.at:6' \
+ "module import" " " 12
+at_xfail=no
+(
+ $as_echo "105. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmpython.at:6:
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\\n' % msg)
+
+myprint(rpm.__version__)
+
+EOF
+python test.py
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmpython.at:6"
+( $at_check_trace;
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\n' % msg)
+
+myprint(rpm.__version__)
+
+EOF
+python test.py
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "4.9.1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:6"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_105
+#AT_START_106
+at_fn_group_banner 106 'rpmpython.at:12' \
+ "basic header manipulation" " " 12
+at_xfail=no
+(
+ $as_echo "106. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmpython.at:12:
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\\n' % msg)
+
+h = rpm.hdr()
+h['name'] = 'testpkg'
+h['version'] = '1.0'
+h['release'] = '1'
+h['epoch'] = 5
+h['arch'] = 'noarch'
+myprint(h['nevra'])
+del h['epoch']
+myprint(h['nevra'])
+
+EOF
+python test.py
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmpython.at:12"
+( $at_check_trace;
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\n' % msg)
+
+h = rpm.hdr()
+h['name'] = 'testpkg'
+h['version'] = '1.0'
+h['release'] = '1'
+h['epoch'] = 5
+h['arch'] = 'noarch'
+myprint(h['nevra'])
+del h['epoch']
+myprint(h['nevra'])
+
+EOF
+python test.py
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testpkg-5:1.0-1.noarch
+testpkg-1.0-1.noarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:12"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_106
+#AT_START_107
+at_fn_group_banner 107 'rpmpython.at:27' \
+ "reading a package file" " " 12
+at_xfail=no
+(
+ $as_echo "107. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmpython.at:27:
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\\n' % msg)
+
+ts = rpm.ts()
+h = ts.hdrFromFdno('\${RPMDATA}/RPMS/hello-1.0-1.ppc64.rpm')
+myprint(h['arch'])
+
+EOF
+python test.py
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:27"
+( $at_check_trace;
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\n' % msg)
+
+ts = rpm.ts()
+h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-1.0-1.ppc64.rpm')
+myprint(h['arch'])
+
+EOF
+python test.py
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "ppc64
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_107
+#AT_START_108
+at_fn_group_banner 108 'rpmpython.at:35' \
+ "add package to transaction" " " 12
+at_xfail=no
+(
+ $as_echo "108. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmpython.at:35:
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\\n' % msg)
+
+ts = rpm.ts()
+ts.addInstall('\${RPMDATA}/RPMS/foo-1.0-1.noarch.rpm', 'u')
+for e in ts:
+ myprint(e.NEVRA())
+
+EOF
+python test.py
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:35"
+( $at_check_trace;
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\n' % msg)
+
+ts = rpm.ts()
+ts.addInstall('${RPMDATA}/RPMS/foo-1.0-1.noarch.rpm', 'u')
+for e in ts:
+ myprint(e.NEVRA())
+
+EOF
+python test.py
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo-1.0-1.noarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:35"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_108
+#AT_START_109
+at_fn_group_banner 109 'rpmdepmatch.at:4' \
+ "provide - require pairs" " " 13
+at_xfail=no
+(
+ $as_echo "109. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmdepmatch.at:4:
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\\n' % msg)
+
+# ((provides), (requires), match) expected values
+tests = [
+ # Different names never match
+ (('b',), ('a',), 0),
+ (('b',), ('a', '=', '1.2'), 0),
+ (('b',), ('a', '>=', '1.2'), 0),
+ (('b',), ('a', '<=', '1.2'), 0),
+ (('b',), ('a', '<', '1.2'), 0),
+ (('b',), ('a', '>', '1.2'), 0),
+ (('b',), ('a', '<>', '1.2'), 0),
+
+ # Unversioned provide matches all versions
+ (('a',), ('a',), 1),
+ (('a',), ('a', '=', '1.2'), 1),
+ (('a',), ('a', '>=', '1.2'), 1),
+ (('a',), ('a', '<=', '1.2'), 1),
+ (('a',), ('a', '<', '1.2'), 1),
+ (('a',), ('a', '>', '1.2'), 1),
+ (('a',), ('a', '<>', '1.2'), 1),
+
+ # Unversioned require matches all versions
+ (('a', '=', '1.2'), ('a',), 1),
+ (('a', '<', '1.2'), ('a',), 1),
+ (('a', '>', '1.2'), ('a',), 1),
+ (('a', '<=', '1.2'), ('a',), 1),
+ (('a', '>=', '1.2'), ('a',), 1),
+ (('a', '<>', '1.2'), ('a',), 1),
+
+ # Simple, obvious version comparisons
+ (('a', '=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1.2'), 0),
+
+ (('a', '=', '1.2'), ('a', '=', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '>=', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '<=', '1.3'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.3'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1.3'), 1),
+
+ # Simple, obvious version-release comparisons
+ (('a', '=', '1.2-1'), ('a', '=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2-1'), 0),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2-1'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2-1'), 0),
+
+ (('a', '=', '1.2-1'), ('a', '=', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2-2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2-2'), 1),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2-2'), 1),
+
+ (('a', '=', '1.3-1'), ('a', '=', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '>=', '1.2-2'), 1),
+ (('a', '=', '1.3-1'), ('a', '<=', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '<', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '>', '1.2-2'), 1),
+ (('a', '=', '1.3-1'), ('a', '<>', '1.2-2'), 1),
+
+ # Zero epoch is same as no epoch
+ (('a', '=', '0:1.2'), ('a', '=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '0:1.2'), ('a', '>', '1.2'), 0),
+ (('a', '=', '0:1.2'), ('a', '<>', '1.2'), 0),
+
+ (('a', '=', '1.2'), ('a', '=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '0:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>', '0:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '0:1.2'), 0),
+
+ # Non-zero epochs
+ (('a', '=', '1:1.2'), ('a', '=', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1:1.2'), ('a', '<=', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '>', '1.2'), 1),
+ (('a', '=', '1:1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '=', '1.2'), ('a', '=', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>=', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<=', '1:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1:1.2'), 1),
+
+ (('a', '=', '2:1.2'), ('a', '=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '>=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '<=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '<', '2:1.2'), 0),
+ (('a', '=', '2:1.2'), ('a', '>', '2:1.2'), 0),
+ (('a', '=', '2:1.2'), ('a', '<>', '2:1.2'), 0),
+
+ # Simple, obvious version comparisons with provide ranges
+ (('a', '>', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '>', '1.2'), ('a', '<=', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '>', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '>=', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '>=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '>=', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '<=', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<>', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '<>', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<>', '1.2'), 1),
+
+ # Missing release should be considered \"any release will do\"
+ # but this is not always so (the cases with \"???\")
+ (('a', '=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2'), 0),
+
+ (('a', '>', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '>', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '<', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '>=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '>=', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '<=', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<>', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '>', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '>', '1.2'), ('a', '<=', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '<', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '>', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '>=', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<', '1.2'), ('a', '>', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '>=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<>', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '<>', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<>', '1.2-1'), 1),
+]
+
+ms = ['no match', 'match']
+
+myprint() # dumb kludge to fixup expected output
+for p, r, res in tests:
+ d1 = rpm.ds(p, 'provides')
+ d2 = rpm.ds(r, 'requires')
+ match = d1.Compare(d2)
+ if match != res:
+ myprint('FAILED: %s with %s: %s' % (d1.DNEVR(), d2.DNEVR(),ms[res]))
+
+EOF
+python test.py
+"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmdepmatch.at:4"
+( $at_check_trace;
+cat << EOF > test.py
+import rpm, sys
+def myprint(msg = ''):
+ sys.stdout.write('%s\n' % msg)
+
+# ((provides), (requires), match) expected values
+tests = [
+ # Different names never match
+ (('b',), ('a',), 0),
+ (('b',), ('a', '=', '1.2'), 0),
+ (('b',), ('a', '>=', '1.2'), 0),
+ (('b',), ('a', '<=', '1.2'), 0),
+ (('b',), ('a', '<', '1.2'), 0),
+ (('b',), ('a', '>', '1.2'), 0),
+ (('b',), ('a', '<>', '1.2'), 0),
+
+ # Unversioned provide matches all versions
+ (('a',), ('a',), 1),
+ (('a',), ('a', '=', '1.2'), 1),
+ (('a',), ('a', '>=', '1.2'), 1),
+ (('a',), ('a', '<=', '1.2'), 1),
+ (('a',), ('a', '<', '1.2'), 1),
+ (('a',), ('a', '>', '1.2'), 1),
+ (('a',), ('a', '<>', '1.2'), 1),
+
+ # Unversioned require matches all versions
+ (('a', '=', '1.2'), ('a',), 1),
+ (('a', '<', '1.2'), ('a',), 1),
+ (('a', '>', '1.2'), ('a',), 1),
+ (('a', '<=', '1.2'), ('a',), 1),
+ (('a', '>=', '1.2'), ('a',), 1),
+ (('a', '<>', '1.2'), ('a',), 1),
+
+ # Simple, obvious version comparisons
+ (('a', '=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1.2'), 0),
+
+ (('a', '=', '1.2'), ('a', '=', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '>=', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '<=', '1.3'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.3'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1.3'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1.3'), 1),
+
+ # Simple, obvious version-release comparisons
+ (('a', '=', '1.2-1'), ('a', '=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2-1'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2-1'), 0),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2-1'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2-1'), 0),
+
+ (('a', '=', '1.2-1'), ('a', '=', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2-2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2-2'), 1),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2-2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2-2'), 1),
+
+ (('a', '=', '1.3-1'), ('a', '=', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '>=', '1.2-2'), 1),
+ (('a', '=', '1.3-1'), ('a', '<=', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '<', '1.2-2'), 0),
+ (('a', '=', '1.3-1'), ('a', '>', '1.2-2'), 1),
+ (('a', '=', '1.3-1'), ('a', '<>', '1.2-2'), 1),
+
+ # Zero epoch is same as no epoch
+ (('a', '=', '0:1.2'), ('a', '=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '0:1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '0:1.2'), ('a', '>', '1.2'), 0),
+ (('a', '=', '0:1.2'), ('a', '<>', '1.2'), 0),
+
+ (('a', '=', '1.2'), ('a', '=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '0:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '0:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>', '0:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '0:1.2'), 0),
+
+ # Non-zero epochs
+ (('a', '=', '1:1.2'), ('a', '=', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1:1.2'), ('a', '<=', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1:1.2'), ('a', '>', '1.2'), 1),
+ (('a', '=', '1:1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '=', '1.2'), ('a', '=', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '>=', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<=', '1:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1:1.2'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1:1.2'), 0),
+ (('a', '=', '1.2'), ('a', '<>', '1:1.2'), 1),
+
+ (('a', '=', '2:1.2'), ('a', '=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '>=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '<=', '2:1.2'), 1),
+ (('a', '=', '2:1.2'), ('a', '<', '2:1.2'), 0),
+ (('a', '=', '2:1.2'), ('a', '>', '2:1.2'), 0),
+ (('a', '=', '2:1.2'), ('a', '<>', '2:1.2'), 0),
+
+ # Simple, obvious version comparisons with provide ranges
+ (('a', '>', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '>', '1.2'), ('a', '<=', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '>', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '>', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '>=', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '<', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '>=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<', '1.2'), 0),
+ (('a', '>=', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '>=', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<=', '1.2'), ('a', '=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<=', '1.2'), ('a', '>', '1.2'), 0),
+ (('a', '<=', '1.2'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<>', '1.2'), ('a', '=', '1.2'), 0),
+ (('a', '<>', '1.2'), ('a', '>=', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<=', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '>', '1.2'), 1),
+ (('a', '<>', '1.2'), ('a', '<>', '1.2'), 1),
+
+ # Missing release should be considered "any release will do"
+ # but this is not always so (the cases with "???")
+ (('a', '=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '=', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '=', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '=', '1.2-1'), ('a', '<>', '1.2'), 0),
+
+ (('a', '>', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '>', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '>', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '<', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '>=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<', '1.2'), 0),
+ (('a', '>=', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '>=', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<=', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<=', '1.2-1'), ('a', '>', '1.2'), 0),
+ (('a', '<=', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '<>', '1.2-1'), ('a', '=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '>=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<=', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '>', '1.2'), 1),
+ (('a', '<>', '1.2-1'), ('a', '<>', '1.2'), 1),
+
+ (('a', '=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '>', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '>', '1.2'), ('a', '<=', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '<', '1.2-1'), 0),
+ (('a', '>', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '>', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '>=', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<', '1.2'), ('a', '>', '1.2-1'), 0),
+ (('a', '<', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '>=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '>=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<=', '1.2'), ('a', '=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '<=', '1.2'), ('a', '<>', '1.2-1'), 1),
+
+ (('a', '<>', '1.2'), ('a', '=', '1.2-1'), 0),
+ (('a', '<>', '1.2'), ('a', '>=', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<=', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '>', '1.2-1'), 1),
+ (('a', '<>', '1.2'), ('a', '<>', '1.2-1'), 1),
+]
+
+ms = ['no match', 'match']
+
+myprint() # dumb kludge to fixup expected output
+for p, r, res in tests:
+ d1 = rpm.ds(p, 'provides')
+ d2 = rpm.ds(r, 'requires')
+ match = d1.Compare(d2)
+ if match != res:
+ myprint('FAILED: %s with %s: %s' % (d1.DNEVR(), d2.DNEVR(),ms[res]))
+
+EOF
+python test.py
+
+) >>"$at_stdout" 2>>"$at_stderr"
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmdepmatch.at:4"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_109
diff --git a/tests/rpmtests.at b/tests/rpmtests.at
new file mode 100644
index 0000000..7f0807d
--- /dev/null
+++ b/tests/rpmtests.at
@@ -0,0 +1,13 @@
+m4_include([rpmgeneral.at])
+m4_include([rpmquery.at])
+m4_include([rpmverify.at])
+m4_include([rpmdb.at])
+m4_include([rpmi.at])
+m4_include([rpmbuild.at])
+m4_include([rpmvercmp.at])
+m4_include([rpmdeps.at])
+m4_include([rpmconflict.at])
+m4_include([rpmconfig.at])
+m4_include([rpmmacro.at])
+m4_include([rpmpython.at])
+m4_include([rpmdepmatch.at])
diff --git a/tests/rpmvercmp.at b/tests/rpmvercmp.at
new file mode 100644
index 0000000..c705e45
--- /dev/null
+++ b/tests/rpmvercmp.at
@@ -0,0 +1,31 @@
+# rpmvercmp.at: rpm version comparison tests
+
+m4_define([RPMVERCMP],[
+AT_SETUP([rpmvercmp($1, $2) = $3])
+AT_KEYWORDS([vercmp])
+AT_CHECK([run rpm --eval '%{lua: print(rpm.vercmp("$1", "$2"))}'], [0], [$3
+], [])
+AT_CLEANUP
+])
+
+AT_BANNER([RPM version comparison])
+
+RPMVERCMP(1.0, 1.0, 0)
+RPMVERCMP(1.0, 2.0, -1)
+RPMVERCMP(2.0, 2.0.1, -1)
+RPMVERCMP(2.0.1a, 2.0.1, 1)
+RPMVERCMP(5.5p1, 5.5p2, -1)
+RPMVERCMP(5.6p1, 5.5p2, 1)
+RPMVERCMP(10a2, 10b2, -1)
+RPMVERCMP(1.0a, 1.0aa, -1)
+RPMVERCMP(6.0rc1, 6.0, 1)
+RPMVERCMP(6.0.rc1, 6.0, 1)
+RPMVERCMP(10.1.1.0001, 10.1.1.39, -1)
+RPMVERCMP(5.0, 4.999.9, 1)
+RPMVERCMP(2.030, 2.031, -1)
+RPMVERCMP(20101122, 20101121, 1)
+RPMVERCMP(2.0, 2_0, 0)
+
+dnl The results are highly dubious when non-ascii characters are involved,
+dnl these are "obviously" different versions but rpm thinks they're equal
+dnl RPMVERCMP(1.1.α, 1.1.β, 0)
diff --git a/tests/rpmverify.at b/tests/rpmverify.at
new file mode 100644
index 0000000..87bcdee
--- /dev/null
+++ b/tests/rpmverify.at
@@ -0,0 +1,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