diff options
author | Jinkun Jang <jinkun.jang@samsung.com> | 2013-03-12 15:17:20 +0900 |
---|---|---|
committer | Jinkun Jang <jinkun.jang@samsung.com> | 2013-03-12 15:17:20 +0900 |
commit | 7df2385c2f6c93f96e00bc87f2086066cae89ecc (patch) | |
tree | 79d5c20a494622eb084de831a2a51530cd421e33 /tests | |
parent | b7a3bffb8e0341b7e4ef69def268bca3a7f279ff (diff) | |
download | rpm-tizen_2.2.tar.gz rpm-tizen_2.2.tar.bz2 rpm-tizen_2.2.zip |
Tizen 2.1 basesubmit/tizen_2.2/20130710.072219submit/tizen_2.1/20130423.104200accepted/tizen_2.1/20130423.1513382.2_release2.2.1_release2.1b_releasetizen_2.2tizen_2.1
Diffstat (limited to 'tests')
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 Binary files differnew file mode 100644 index 0000000..98c721b --- /dev/null +++ b/tests/data/RPMS/foo-1.0-1.noarch.rpm diff --git a/tests/data/RPMS/hello-1.0-1.i386.rpm b/tests/data/RPMS/hello-1.0-1.i386.rpm Binary files differnew file mode 100644 index 0000000..73571e9 --- /dev/null +++ b/tests/data/RPMS/hello-1.0-1.i386.rpm diff --git a/tests/data/RPMS/hello-1.0-1.ppc64.rpm b/tests/data/RPMS/hello-1.0-1.ppc64.rpm Binary files differnew file mode 100644 index 0000000..c1b4e99 --- /dev/null +++ b/tests/data/RPMS/hello-1.0-1.ppc64.rpm 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 Binary files differnew file mode 100644 index 0000000..48b2cd7 --- /dev/null +++ b/tests/data/SOURCES/hello-1.0.tar.gz diff --git a/tests/data/SOURCES/hello-2.0.tar.gz b/tests/data/SOURCES/hello-2.0.tar.gz Binary files differnew file mode 100644 index 0000000..84976e2 --- /dev/null +++ b/tests/data/SOURCES/hello-2.0.tar.gz 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 Binary files differnew file mode 100644 index 0000000..4ac3636 --- /dev/null +++ b/tests/data/SRPMS/foo-1.0-1.src.rpm diff --git a/tests/data/SRPMS/hello-1.0-1.src.rpm b/tests/data/SRPMS/hello-1.0-1.src.rpm Binary files differnew file mode 100644 index 0000000..2834d4e --- /dev/null +++ b/tests/data/SRPMS/hello-1.0-1.src.rpm 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 |