diff options
author | biao716.wang <biao716.wang@samsung.com> | 2021-01-05 14:51:28 +0900 |
---|---|---|
committer | biao716.wang <biao716.wang@samsung.com> | 2021-01-05 14:51:28 +0900 |
commit | 9de33a8a7cd9eae05c3c1df4b2c0e1e4cd2bd40a (patch) | |
tree | 03067d36d530c3eeb623e601b0c12a98f744376d /tests | |
parent | 287097d4d8079b4485870c08cf5675b0bdd37ed9 (diff) | |
download | rpm-9de33a8a7cd9eae05c3c1df4b2c0e1e4cd2bd40a.tar.gz rpm-9de33a8a7cd9eae05c3c1df4b2c0e1e4cd2bd40a.tar.bz2 rpm-9de33a8a7cd9eae05c3c1df4b2c0e1e4cd2bd40a.zip |
upgrade rpm version to 4.14.1upstream/4.14.1.1submit/tizen_base/20210113.025730submit/tizen_base/20210105.160930accepted/tizen/base/tool/20210118.215949
Change-Id: Iab5438d6e4d45c937b191c03e9ef5dd3fad165c8
Signed-off-by: biao716.wang <biao716.wang@samsung.com>
Diffstat (limited to 'tests')
61 files changed, 37432 insertions, 329 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 61c18afcb..f2bdb7bae 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,13 +1,11 @@ ## Process this file with automake to produce Makefile.in. include $(top_srcdir)/rpm.am +AM_CFLAGS = @RPMCFLAGS@ 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) @@ -19,6 +17,7 @@ TESTSUITE_AT += rpmquery.at TESTSUITE_AT += rpmverify.at TESTSUITE_AT += rpmdb.at TESTSUITE_AT += rpmbuild.at +TESTSUITE_AT += rpmbuildid.at TESTSUITE_AT += rpmi.at TESTSUITE_AT += rpmvercmp.at TESTSUITE_AT += rpmdeps.at @@ -31,17 +30,26 @@ TESTSUITE_AT += rpmmacro.at TESTSUITE_AT += rpmpython.at TESTSUITE_AT += rpmdepmatch.at TESTSUITE_AT += rpmscript.at +TESTSUITE_AT += rpmsigdig.at +TESTSUITE_AT += rpmio.at +TESTSUITE_AT += rpmorder.at EXTRA_DIST += $(TESTSUITE_AT) ## testsuite data EXTRA_DIST += data/SPECS/attrtest.spec EXTRA_DIST += data/SPECS/hello.spec +EXTRA_DIST += data/SPECS/hello-r2.spec EXTRA_DIST += data/SPECS/hello-script.spec +EXTRA_DIST += data/SPECS/hello2.spec +EXTRA_DIST += data/SPECS/hello2cp.spec +EXTRA_DIST += data/SPECS/hello2ln.spec +EXTRA_DIST += data/SPECS/hello2-suid.spec EXTRA_DIST += data/SPECS/foo.spec EXTRA_DIST += data/SPECS/globtest.spec EXTRA_DIST += data/SPECS/versiontest.spec EXTRA_DIST += data/SPECS/conflicttest.spec EXTRA_DIST += data/SPECS/configtest.spec +EXTRA_DIST += data/SPECS/filedep.spec EXTRA_DIST += data/SPECS/flangtest.spec EXTRA_DIST += data/SPECS/hlinktest.spec EXTRA_DIST += data/SPECS/symlinktest.spec @@ -51,6 +59,16 @@ EXTRA_DIST += data/SPECS/fakeshell.spec EXTRA_DIST += data/SPECS/scripts.spec EXTRA_DIST += data/SPECS/selfconflict.spec EXTRA_DIST += data/SPECS/replacetest.spec +EXTRA_DIST += data/SPECS/triggers.spec +EXTRA_DIST += data/SPECS/filetriggers.spec +EXTRA_DIST += data/SPECS/parallel.spec +EXTRA_DIST += data/SPECS/prefixtest.spec +EXTRA_DIST += data/SPECS/testdoc.spec +EXTRA_DIST += data/SPECS/sigpipe.spec +EXTRA_DIST += data/SPECS/test-subpackages.spec +EXTRA_DIST += data/SPECS/test-subpackages-exclude.spec +EXTRA_DIST += data/SPECS/test-subpackages-pathpostfixes.spec +EXTRA_DIST += data/SPECS/vattrtest.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 @@ -59,8 +77,15 @@ EXTRA_DIST += data/RPMS/hello-1.0-1.i386.rpm EXTRA_DIST += data/RPMS/hello-1.0-1.ppc64.rpm EXTRA_DIST += data/RPMS/hello-2.0-1.i686.rpm EXTRA_DIST += data/RPMS/hello-2.0-1.x86_64.rpm +EXTRA_DIST += data/RPMS/hello-2.0-1.x86_64-signed.rpm EXTRA_DIST += data/SRPMS/foo-1.0-1.src.rpm EXTRA_DIST += data/SRPMS/hello-1.0-1.src.rpm +EXTRA_DIST += data/SOURCES/hello.c +EXTRA_DIST += data/SPECS/hello-attr-buildid.spec +EXTRA_DIST += data/SPECS/hello-config-buildid.spec +EXTRA_DIST += data/SPECS/hello-cd.spec +EXTRA_DIST += data/keys/rpm.org-rsa-2048-test.pub +EXTRA_DIST += data/keys/rpm.org-rsa-2048-test.secret # testsuite voodoo AUTOTEST = $(AUTOM4TE) --language=autotest @@ -86,35 +111,41 @@ CLEANFILES += atconfig atlocal: atlocal.in Makefile @sed \ - -e "s,[@]rpmbindir[@],$(rpmbindir)," \ -e "s,[@]usrbindir[@],$(bindir)," \ -e "s,[@]usrlibdir[@],$(libdir)," \ + -e "s,[@]execprefix[@],$(exec_prefix)," \ -e "s,[@]RPMCONFIGDIR[@],$(rpmconfigdir)," \ < $(srcdir)/atlocal.in > atlocal DISTCLEANFILES = atlocal EXTRA_DIST += atlocal.in # Hack: Abusing testing$(bindir)/rpmbuild as stamp file +# The chmod is needed when copying from read-only sources (eg in distcheck) testing$(bindir)/rpmbuild: ../rpmbuild + HOME=$(abs_builddir)/testing gpg-connect-agent --no-autostart killagent bye ||: rm -rf testing mkdir -p testing/$(bindir) ln -s ./$(bindir) testing/bin + mkdir -p testing/usr + ln -s ../bin testing/usr/bin (cd ${top_builddir} && \ $(MAKE) DESTDIR=`pwd`/${subdir}/testing install) - cp -r data/ testing/ - mkdir testing/{dev,etc,magic,tmp} - for node in stdin stderr stdout null; do ln -s /dev/$${node} testing/dev/$${node}; done - for cf in hosts resolv.conf passwd shadow group gshadow mtab fstab; do [ -f /etc/$${cf} ] && ln -s /etc/$${cf} testing/etc/$${cf}; done - for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file mktemp cut sort diff; do p=`which $${prog}`; ln -s $${p} testing/$${p}; done + cp -r ${srcdir}/data/ testing/ + chmod -R u+w testing/data/ + for d in dev etc magic tmp var; do if [ ! -d testing/$${d} ]; then mkdir testing/$${d}; fi; done + for node in urandom stdin stderr stdout null; do ln -s /dev/$${node} testing/dev/$${node}; done + for cf in hosts resolv.conf passwd shadow group gshadow mtab ; do [ -f /etc/$${cf} ] && ln -s /etc/$${cf} testing/etc/$${cf}; done + for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file ionice mktemp nice cut sort diff touch install wc; do p=`which $${prog}`; ln -s $${p} testing/$(bindir)/; done for d in /proc /sys /selinux /etc/selinux; do if [ -d $${d} ]; then ln -s $${d} testing/$${d}; fi; done (cd testing/magic && file -C) + HOME=$(abs_builddir)/testing gpg2 --import ${abs_srcdir}/data/keys/*.secret || HOME=$(abs_builddir)/testing gpg --import ${abs_srcdir}/data/keys/*.secret check_DATA = atconfig atlocal $(TESTSUITE) check_DATA += testing$(bindir)/rpmbuild if HAVE_FAKECHROOT check-local: $(check_DATA) - $(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS) ||: + $(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS) else check-local: echo "you need to have fakechroot installed" diff --git a/tests/atlocal.in b/tests/atlocal.in index 5ce6f4f93..d7d837f45 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -3,7 +3,7 @@ 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))"` +PYLIBDIR=`python -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1,0,'@execprefix@'))"` PYTHONPATH="${abs_builddir}/testing${PYLIBDIR}" export PYTHONPATH @@ -18,18 +18,35 @@ export RPM_CONFIGDIR RPM_POPTEXEC_PATH HOME="${RPMTEST}" export HOME +TZ=UTC +export TZ + TOPDIR="${RPMTEST}/build" RPM_XFAIL=${RPM_XFAIL-1} function run() { - "$@" --define "_topdir ${TOPDIR}" --dbpath="${RPMTEST}/var/lib/rpm/" + "$@" --define "_tmppath ${RPMTEST}/tmp" --define "_topdir ${TOPDIR}" --dbpath="${RPMTEST}/var/lib/rpm/" +} + +function rundebug() +{ + cp ${top_srcdir}/macros.debug ${RPM_CONFIGDIR}/macros.d/ + "$@" --define "_tmppath ${RPMTEST}/tmp" --define "_topdir ${TOPDIR}" --dbpath="${RPMTEST}/var/lib/rpm/" + rm -f ${RPM_CONFIGDIR}/macros.d/macros.debug } function runroot() { - (cd ${RPMTEST} && \ - MAGIC="/magic/magic" FAKECHROOT_BASE="${RPMTEST}" fakechroot "$@" --define "_topdir /build" + (unset RPM_CONFIGDIR RPM_POPTEXEC_PATH; cd ${RPMTEST} && \ + MAGIC="/magic/magic" FAKECHROOT_BASE="${RPMTEST}" fakechroot "$@" --define "_topdir /build" --noplugins + ) +} + +function runroot_other() +{ + (unset RPM_CONFIGDIR RPM_POPTEXEC_PATH; cd ${RPMTEST} && \ + FAKECHROOT_BASE="${RPMTEST}" fakechroot "$@" ) } diff --git a/tests/data/RPMS/hello-2.0-1.i686.rpm b/tests/data/RPMS/hello-2.0-1.i686.rpm Binary files differindex 46c60b1f9..ecb7c96d7 100644 --- a/tests/data/RPMS/hello-2.0-1.i686.rpm +++ b/tests/data/RPMS/hello-2.0-1.i686.rpm diff --git a/tests/data/RPMS/hello-2.0-1.x86_64-signed.rpm b/tests/data/RPMS/hello-2.0-1.x86_64-signed.rpm Binary files differnew file mode 100644 index 000000000..be627a782 --- /dev/null +++ b/tests/data/RPMS/hello-2.0-1.x86_64-signed.rpm diff --git a/tests/data/RPMS/hello-2.0-1.x86_64.rpm b/tests/data/RPMS/hello-2.0-1.x86_64.rpm Binary files differindex 50e39ddd9..003e93093 100644 --- a/tests/data/RPMS/hello-2.0-1.x86_64.rpm +++ b/tests/data/RPMS/hello-2.0-1.x86_64.rpm diff --git a/tests/data/SOURCES/hello.c b/tests/data/SOURCES/hello.c new file mode 100644 index 000000000..020484eed --- /dev/null +++ b/tests/data/SOURCES/hello.c @@ -0,0 +1,8 @@ +#include <stdio.h> + +int +main (void) +{ + printf ("Hello, world!\n"); + return 0; +} diff --git a/tests/data/SOURCES/poltest-1.0.tar.bz2 b/tests/data/SOURCES/poltest-1.0.tar.bz2 Binary files differdeleted file mode 100644 index 37dcc2356..000000000 --- a/tests/data/SOURCES/poltest-1.0.tar.bz2 +++ /dev/null diff --git a/tests/data/SOURCES/poltest-policy-1.0.tar.bz2 b/tests/data/SOURCES/poltest-policy-1.0.tar.bz2 Binary files differdeleted file mode 100644 index 76f4e14f8..000000000 --- a/tests/data/SOURCES/poltest-policy-1.0.tar.bz2 +++ /dev/null diff --git a/tests/data/SPECS/attrtest.spec b/tests/data/SPECS/attrtest.spec index 6f787b19e..1d7e4bfe2 100644 --- a/tests/data/SPECS/attrtest.spec +++ b/tests/data/SPECS/attrtest.spec @@ -20,7 +20,7 @@ for x in a b c d e f g h i j; do chmod 400 $RPM_BUILD_ROOT/${x}/file done -%files +%files -n %{name} /a/dir /a/file @@ -56,3 +56,7 @@ done %defattr(640,zoot,zoot,750) %attr(777,-,-) /j/dir %attr(222,-,-) /j/file + +%changelog +* Tue Jun 28 2011 Panu Matilainen <pmatilai@redhat.com> +- Initial package diff --git a/tests/data/SPECS/configtest.spec b/tests/data/SPECS/configtest.spec index 5f15c349f..17dd7c901 100644 --- a/tests/data/SPECS/configtest.spec +++ b/tests/data/SPECS/configtest.spec @@ -1,3 +1,6 @@ +# avoid depending on rpm configuration +%define _sysconfdir /etc + %{!?filetype: %global filetype file} Name: configtest%{?sub:-%{sub}} diff --git a/tests/data/SPECS/conflicttest.spec b/tests/data/SPECS/conflicttest.spec index bd1dd1c5f..46fbb29a1 100644 --- a/tests/data/SPECS/conflicttest.spec +++ b/tests/data/SPECS/conflicttest.spec @@ -1,3 +1,6 @@ +# avoid depending on rpm configuration +%define _datadir /usr/share + Name: conflict%{pkg} Version: 1.0 Release: 1 diff --git a/tests/data/SPECS/deptest.spec b/tests/data/SPECS/deptest.spec index 7f2228f11..68b0fcbcc 100644 --- a/tests/data/SPECS/deptest.spec +++ b/tests/data/SPECS/deptest.spec @@ -10,9 +10,20 @@ BuildArch: noarch %{?provs:Provides: %{provs}} %{?cfls:Conflicts: %{cfls}} %{?obs:Obsoletes: %{obs}} +%{?recs:Recommends: %{recs}} +%{?sugs:Suggests: %{sugs}} +%{?sups:Supplements: %{sups}} +%{?ens:Enhances: %{ens}} +%{?buildreqs:BuildRequires: %{buildreqs}} +%{?buildcfls:BuildConflicts: %{buildcfls}} %description %{summary} +%install +mkdir -p %{buildroot}/opt/ +echo FOO > %{buildroot}/opt/bar + %files %defattr(-,root,root,-) +/opt/bar diff --git a/tests/data/SPECS/filedep.spec b/tests/data/SPECS/filedep.spec new file mode 100644 index 000000000..d40305881 --- /dev/null +++ b/tests/data/SPECS/filedep.spec @@ -0,0 +1,49 @@ +Name: filedep +Version: 1.0 +Release: 1 +Summary: Testing file dependencies +License: GPL +BuildArch: noarch + +%description +%{summary} + +%prep +%setup -q -T -c %{name}-%{version} + + +%build +cat << EOF >> foo +#!/bin/sh +cat /etc/foo.conf +EOF + +cat << EOF >> bar +#!/bin/f00f +echo BUG +EOF + +cat << EOF >> foo.conf +hello there +EOF + +cat << EOF >> README +Some stuff, huh? +EOF + +%install +mkdir -p %{buildroot}/etc +mkdir -p %{buildroot}/usr/bin +mkdir -p %{buildroot}/usr/share/doc/filedep +install -D -m 644 foo.conf %{buildroot}/etc +install -D -m 755 foo bar %{buildroot}/usr/bin/ +install -D -m 644 README %{buildroot}/usr/share/doc/filedep + +%files +/etc/* +/usr/bin/* +/usr/share/doc/filedep/ + + +%changelog + diff --git a/tests/data/SPECS/filetriggers.spec b/tests/data/SPECS/filetriggers.spec new file mode 100644 index 000000000..b1dc3d5d9 --- /dev/null +++ b/tests/data/SPECS/filetriggers.spec @@ -0,0 +1,95 @@ +Name: filetriggers +Version: 1.0 +Release: 1 +Summary: Testing file triggers + +Group: testing +License: GPL +BuildArch: noarch + + +%description +%{summary} + + +%filetriggerin -- /usr/bin +echo "filetriggerin(/usr/bin*):" +cat +echo + +%filetriggerun -- /usr/bin +echo "filetriggerun(/usr/bin*):" +cat +echo + +%filetriggerpostun -- /usr/bin +echo "filetriggerpostun(/usr/bin*):" +cat +echo + +%transfiletriggerin -- /usr/bin +echo "transfiletriggerin(/usr/bin*):" +cat +echo + +%transfiletriggerun -- /usr/bin +echo "transfiletriggerun(/usr/bin*):" +cat +echo + +%transfiletriggerpostun -- /usr/bin +echo "transfiletriggerpostun(/usr/bin*):" +cat +echo + +%filetriggerin -p <lua> -- /usr/bin +print("filetriggerin(/usr/bin*)<lua>:") +a = rpm.next_file() +while a do + print(a) + a = rpm.next_file() +end +print("") +io.flush() + +%filetriggerin -- /foo +echo "filetriggerin(/foo*):" +cat +echo + +%filetriggerun -- /foo +echo "filetriggerun(/foo*):" +cat +echo + +%filetriggerpostun -- /foo +echo "filetriggerpostun(/foo*):" +cat +echo + +%transfiletriggerin -- /foo +echo "transfiletriggerin(/foo*):" +cat +echo + +%transfiletriggerun -- /foo +echo "transfiletriggerun(/foo*):" +cat +echo + +%transfiletriggerpostun -- /foo +echo "transfiletriggerpostun(/foo*):" +cat +echo + +%filetriggerin -p <lua> -- /foo +print("filetriggerin(/foo*)<lua>:") +a = rpm.next_file() +while a do + print(a) + a = rpm.next_file() +end +print("") +io.flush() + +%files diff --git a/tests/data/SPECS/flangtest.spec b/tests/data/SPECS/flangtest.spec index 3f3679588..a361bcdc9 100644 --- a/tests/data/SPECS/flangtest.spec +++ b/tests/data/SPECS/flangtest.spec @@ -1,3 +1,6 @@ +# avoid depending on rpm configuration +%define _datadir /usr/share + Name: flangtest Version: 1.0 Release: 1 @@ -16,6 +19,7 @@ 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 +touch $RPM_BUILD_ROOT/%{_datadir}/%{name}/empty.txt %clean rm -rf $RPM_BUILD_ROOT @@ -27,3 +31,4 @@ rm -rf $RPM_BUILD_ROOT %lang(en) %{_datadir}/%{name}/en.txt %lang(pl) %{_datadir}/%{name}/pl.txt %{_datadir}/%{name}/none.txt +%{_datadir}/%{name}/empty.txt diff --git a/tests/data/SPECS/hello-attr-buildid.spec b/tests/data/SPECS/hello-attr-buildid.spec new file mode 100644 index 000000000..cdab95fff --- /dev/null +++ b/tests/data/SPECS/hello-attr-buildid.spec @@ -0,0 +1,27 @@ +Name: test +Version: 1.0 +Release: 1 +Summary: Test + +License: Public Domain +URL: https://fedoraproject.org +Source: hello.c + +%description +%{summary}. + +%prep +%autosetup -c -D -T +cp -a %{S:0} . + +%build +gcc -g hello.c -o hello + +%install +mkdir -p %{buildroot}%{_bindir} +install -D -p -m 0755 -t %{buildroot}%{_bindir} hello + +%files +%attr(644,root,root) %{_bindir}/hello + +%changelog diff --git a/tests/data/SPECS/hello-cd.spec b/tests/data/SPECS/hello-cd.spec new file mode 100644 index 000000000..ab1e3008b --- /dev/null +++ b/tests/data/SPECS/hello-cd.spec @@ -0,0 +1,29 @@ +Name: test +Version: 1.0 +Release: 1 +Summary: Test + +License: Public Domain +URL: https://fedoraproject.org +Source: hello.c + +%description +%{summary}. + +%prep +%autosetup -c -D -T +cp -a %{S:0} . + +%build +gcc -g hello.c -o hello + +%install +mkdir -p %{buildroot}/bin +install -D -p -m 0755 -t %{buildroot}/bin hello +# Pretend we need to do something in /tmp +cd /tmp + +%files +%attr(644,root,root) /bin/hello + +%changelog diff --git a/tests/data/SPECS/hello-config-buildid.spec b/tests/data/SPECS/hello-config-buildid.spec new file mode 100644 index 000000000..ca2d30db3 --- /dev/null +++ b/tests/data/SPECS/hello-config-buildid.spec @@ -0,0 +1,30 @@ +Name: test +Version: 1.0 +Release: 1 +Summary: Test + +License: Public Domain +URL: https://fedoraproject.org +Source: hello.c + +%description +%{summary}. + +%prep +%autosetup -c -D -T +cp -a %{S:0} . + +%build +gcc -g hello.c -o hello + +%install +mkdir -p %{buildroot}/bin +install -D -p -m 0755 -t %{buildroot}/bin hello +mkdir -p %{buildroot}/etc +echo "settings" > %{buildroot}/etc/config.file + +%files +%attr(644,root,root) /bin/hello +%config(noreplace) /etc/config.file + +%changelog diff --git a/tests/data/SPECS/hello-r2.spec b/tests/data/SPECS/hello-r2.spec new file mode 100644 index 000000000..ca5091d10 --- /dev/null +++ b/tests/data/SPECS/hello-r2.spec @@ -0,0 +1,58 @@ +Summary: hello -- hello, world rpm +Name: hello +Version: 1.0 +Release: 2 +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 + +%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 +* Wed Jun 8 2016 Mark Wielaard <mjw@redhat.com> +- Update release for unique build-id generation tests. + +* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com> +- create. diff --git a/tests/data/SPECS/hello-script.spec b/tests/data/SPECS/hello-script.spec index 567519e33..a28c446f6 100644 --- a/tests/data/SPECS/hello-script.spec +++ b/tests/data/SPECS/hello-script.spec @@ -13,6 +13,7 @@ BuildArch: noarch %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/usr/bin +mkdir -p $RPM_BUILD_ROOT/zoot cat << EOF > $RPM_BUILD_ROOT/usr/bin/hello echo "Hello world!" EOF @@ -20,3 +21,4 @@ EOF %files %defattr(-,root,root,-) /usr/bin/hello +/zoot diff --git a/tests/data/SPECS/hello2-suid.spec b/tests/data/SPECS/hello2-suid.spec new file mode 100644 index 000000000..32bdce1f9 --- /dev/null +++ b/tests/data/SPECS/hello2-suid.spec @@ -0,0 +1,67 @@ +Summary: hello2 -- double hello, world rpm +Name: hello2 +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 + +%description +Simple rpm demonstration. + +%prep +%setup -q -n hello-1.0 +%patch0 -p1 -b .modernize + +%build +make CFLAGS="-g -O1" +mv hello hello2 +make CFLAGS="-g -O2 -D_FORTIFY_SOURCE=2" + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/usr/local/bin +# Note explicit install hello as suid +install -m 4755 hello $RPM_BUILD_ROOT/usr/local/bin +install -m 755 hello2 $RPM_BUILD_ROOT/usr/local/bin + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre + +%post + +%preun + +%postun + +%files +# Note we don't set any attrs. We expect the suid flag to have been picked up. +/usr/local/bin/hello +/usr/local/bin/hello2 +%defattr(-,root,root) +%doc FAQ +#%readme README +#%license COPYING + +%changelog +* Tue Jun 14 2016 Mark Wielaard <mjw@redhat.com> +- Make hello (implicit) suid + +* Wed May 18 2016 Mark Wielaard <mjw@redhat.com> +- Add hello2 for dwz testing support. + +* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com> +- create. diff --git a/tests/data/SPECS/hello2.spec b/tests/data/SPECS/hello2.spec new file mode 100644 index 000000000..01777af5b --- /dev/null +++ b/tests/data/SPECS/hello2.spec @@ -0,0 +1,62 @@ +Summary: hello2 -- double hello, world rpm +Name: hello2 +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 + +%description +Simple rpm demonstration. + +%prep +%setup -q -n hello-1.0 +%patch0 -p1 -b .modernize + +%build +make CFLAGS="-g -O1" +mv hello hello2 +make CFLAGS="-g -O2 -D_FORTIFY_SOURCE=2" + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/usr/local/bin +make DESTDIR=$RPM_BUILD_ROOT install +cp hello2 $RPM_BUILD_ROOT/usr/local/bin/ + +%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 +%attr(0751,root,root) /usr/local/bin/hello2 + +%changelog +* Wed May 18 2016 Mark Wielaard <mjw@redhat.com> +- Add hello2 for dwz testing support. + +* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com> +- create. diff --git a/tests/data/SPECS/hello2cp.spec b/tests/data/SPECS/hello2cp.spec new file mode 100644 index 000000000..33d8dc260 --- /dev/null +++ b/tests/data/SPECS/hello2cp.spec @@ -0,0 +1,64 @@ +Summary: hello2 -- double hello, world rpm +Name: hello2 +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 + +%description +Simple rpm demonstration. + +%prep +%setup -q -n hello-1.0 +%patch0 -p1 -b .modernize + +%build +make CFLAGS="-g -O1" +cp hello hello2 + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/usr/local/bin +make DESTDIR=$RPM_BUILD_ROOT install +cp hello2 $RPM_BUILD_ROOT/usr/local/bin/ + +%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 +%attr(0751,root,root) /usr/local/bin/hello2 + +%changelog +* Mon Jun 6 2016 Mark Wielaard <mjw@redhat.com> +- Copy hello to hello2 for duplicate build-id testing. + +* Wed May 18 2016 Mark Wielaard <mjw@redhat.com> +- Add hello2 for dwz testing support. + +* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com> +- create. diff --git a/tests/data/SPECS/hello2ln.spec b/tests/data/SPECS/hello2ln.spec new file mode 100644 index 000000000..2c40dcc32 --- /dev/null +++ b/tests/data/SPECS/hello2ln.spec @@ -0,0 +1,63 @@ +Summary: hello2 -- double hello, world rpm +Name: hello2 +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 + +%description +Simple rpm demonstration. + +%prep +%setup -q -n hello-1.0 +%patch0 -p1 -b .modernize + +%build +make CFLAGS="-g -O1" + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/usr/local/bin +make DESTDIR=$RPM_BUILD_ROOT install +ln $RPM_BUILD_ROOT/usr/local/bin/hello $RPM_BUILD_ROOT/usr/local/bin/hello2 + +%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 +%attr(0751,root,root) /usr/local/bin/hello2 + +%changelog +* Mon Jun 6 2016 Mark Wielaard <mjw@redhat.com> +- Hard link hello to hello2 for duplicate build-id testing. + +* Wed May 18 2016 Mark Wielaard <mjw@redhat.com> +- Add hello2 for dwz testing support. + +* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com> +- create. diff --git a/tests/data/SPECS/hlinktest.spec b/tests/data/SPECS/hlinktest.spec index 7c22d29ae..b3b8866fc 100644 --- a/tests/data/SPECS/hlinktest.spec +++ b/tests/data/SPECS/hlinktest.spec @@ -1,3 +1,6 @@ +%bcond_with unpackaged_dirs +%bcond_with unpackaged_files + Summary: Testing hard link behavior Name: hlinktest Version: 1.0 @@ -5,6 +8,7 @@ Release: 1 License: Testing Group: Testing BuildArch: noarch +Provides: /bin/sh %description %install @@ -12,16 +16,26 @@ rm -rf %{buildroot} mkdir -p $RPM_BUILD_ROOT/foo cat << EOF >> $RPM_BUILD_ROOT/foo/hello #!/bin/sh -echo $0 +echo %{name}-%{version} EOF cd $RPM_BUILD_ROOT/foo cat hello > copyllo +cat hello > aaaa +ln aaaa zzzz chmod a+x hello copyllo for f in foo bar world; do ln hello hello-${f} done +%if %{with unpackaged_dirs} +mkdir -p $RPM_BUILD_ROOT/zoo/ +%endif + +%if %{with unpackaged_files} +touch $RPM_BUILD_ROOT/toot +%endif + %files %defattr(-,root,root) /foo/* diff --git a/tests/data/SPECS/parallel.spec b/tests/data/SPECS/parallel.spec new file mode 100644 index 000000000..41896726e --- /dev/null +++ b/tests/data/SPECS/parallel.spec @@ -0,0 +1,50 @@ +Name: parallel +Version: %{ver} +Release: 1%{?dist} +Summary: Testing parallel install behavior +BuildArch: noarch +License: GPL + +%description +%{summary} + +%package trigger +Summary: %{summary} + +%description trigger +%{summary} + +%transfiletriggerin trigger -- /opt/parallel +echo %transfiletriggerin: $* +cat | wc -l + +%transfiletriggerun trigger -- /opt/parallel +echo %transfiletriggerun: $* +cat | wc -l + +%transfiletriggerpostun trigger -- /opt/parallel +echo %transfiletriggerpostun: $* +cat | wc -l + +%filetriggerin trigger -- /opt/parallel +echo %filetriggerin: $* +cat | wc -l + +%filetriggerpostun trigger -- /opt/parallel +echo %filetriggerpostun: $* +cat | wc -l + + +%install +for d in mydir yourdir; do + datadir=%{buildroot}/opt/parallel/%{version}/${d} + mkdir -p ${datadir} + for f in 1 2 3 4; do + echo ${f} > ${datadir}/${f} + done +done + +%files +/opt/%{name} + +%files trigger diff --git a/tests/data/SPECS/poltest.spec b/tests/data/SPECS/poltest.spec deleted file mode 100644 index 233c33bc3..000000000 --- a/tests/data/SPECS/poltest.spec +++ /dev/null @@ -1,52 +0,0 @@ -%define debug_package %{nil} - -Summary: Policy in rpm example -Name: poltest -Version: 1.0 -Release: 2 -Group: Utilities -License: GPL -Requires: poltest-policy -Source0: poltest-%{version}.tar.bz2 -Source1: poltest-policy-%{version}.tar.bz2 -Buildroot: %{_tmppath}/%{name}-%{version}-root -%description -Example for installing policy included in a package header - -%prep -%setup -q -%setup -q -T -D -a 1 - -%build -make CFLAGS="$RPM_OPT_FLAGS" -make -f /usr/share/selinux/devel/Makefile -C poltest-policy-%{version} - -%install -rm -rf $RPM_BUILD_ROOT -make DESTDIR=%{buildroot} prefix=%{_prefix} install - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -%{_bindir}/foo -%{_bindir}/bar - - -%package policy -Summary: Policy for the poltest package -Group: System/Policy -Collections: sepolicy -%description policy -Policy for the poltest package - -%sepolicy policy -%semodule -n foo -t default poltest-policy-%{version}/foo.pp -%semodule -n bar -t mls,targeted poltest-policy-%{version}/bar.pp - -%files policy - -%changelog -* Wed Jul 1 2009 Steve Lawrence <slawrence@tresys.com> -- create diff --git a/tests/data/SPECS/prefixtest.spec b/tests/data/SPECS/prefixtest.spec new file mode 100644 index 000000000..004e353f7 --- /dev/null +++ b/tests/data/SPECS/prefixtest.spec @@ -0,0 +1,42 @@ +Name: prefixtest +Version: 1.0 +Release: 1 +Summary: Testing file glob behavior +Group: Testing +License: GPL +BuildArch: noarch +RemovePathPostfixes: g:f + +%description +%{summary} + +%define testdir /opt/%{name} + +%install +rm -rf $RPM_BUILD_ROOT + +mkdir -p $RPM_BUILD_ROOT/%{testdir} +echo "foo" > $RPM_BUILD_ROOT/%{testdir}/weird%%name +for f in bif baf zab zeb zib; do + echo "$f" > $RPM_BUILD_ROOT/%{testdir}/$f +done +for f in bing bang bong; do + mkdir -p $RPM_BUILD_ROOT/%{testdir}/$f +done +mkdir -p $RPM_BUILD_ROOT/%{testdir}/foo +for f in one two three; do + echo "$f" > $RPM_BUILD_ROOT/%{testdir}/foo/$f +done + +ln -s %{testdir}/zab $RPM_BUILD_ROOT/%{testdir}/linkgood +ln -s %{testdir}/zub $RPM_BUILD_ROOT/%{testdir}/linkbad + +%files +%defattr(-,root,root,-) +%{testdir}/b?? +%{testdir}/weird?name +%{testdir}/z* +%{testdir}/l* +%{testdir}/b*g/ +%dir %{testdir}/foo +%{testdir}/foo/* diff --git a/tests/data/SPECS/replacetest.spec b/tests/data/SPECS/replacetest.spec index e8a64e803..54974567b 100644 --- a/tests/data/SPECS/replacetest.spec +++ b/tests/data/SPECS/replacetest.spec @@ -1,5 +1,7 @@ %{!?filetype: %global filetype file} %{?fixit: %global havepretrans 1} +%{!?user: %global user root} +%{!?grp: %global grp root} Name: replacetest%{?sub:-%{sub}} Version: %{ver} @@ -43,5 +45,5 @@ rm -rf $RPM_BUILD_ROOT %endif %files -%defattr(-,root,root,-) +%defattr(-,%{user},%{grp},-) /opt/* diff --git a/tests/data/SPECS/scripts.spec b/tests/data/SPECS/scripts.spec index fbb9bc989..581a56f5c 100644 --- a/tests/data/SPECS/scripts.spec +++ b/tests/data/SPECS/scripts.spec @@ -29,3 +29,7 @@ echo %{name}-%{version}-%{release} POSTUN $* %posttrans echo %{name}-%{version}-%{release} POSTTRANS $* + +%verifyscript +echo %{name}-%{version}-%{release} VERIFY $* + diff --git a/tests/data/SPECS/sigpipe.spec b/tests/data/SPECS/sigpipe.spec new file mode 100644 index 000000000..c9db67934 --- /dev/null +++ b/tests/data/SPECS/sigpipe.spec @@ -0,0 +1,47 @@ +%bcond_with buildpipe +%bcond_with manyfiles + +Name: sigpipe +Version: 1.0 +Release: 1%{?dist} +Summary: Testing SIGPIPE behavior + +Group: Testing +License: GPLv2 +BuildArch: noarch + +%description +%{summary} +%end + +%define datadir /opt/%{name}/data + +# Reproducer for https://bugzilla.redhat.com/show_bug.cgi?id=651463 +%if %{with buildpipe} +%prep +bash -c 's=$SECONDS +set -o pipefail +for ((i=0; i < 30; i++)) +do printf hello 2>/dev/null + sleep .1 +done | /bin/sleep 1 +(( (SECONDS-s) < 2 )) || exit 1' +%endif + +%install +mkdir -p %{buildroot}/%{datadir} +%if %{with manyfiles} +for i in {1..32}; do + mkdir %{buildroot}/%{datadir}/${i} + for j in {a..z}; do + touch %{buildroot}/%{datadir}/${i}/${j} + done +done +%endif + +# For simulating https://bugzilla.redhat.com/show_bug.cgi?id=1264198 +%post +kill -PIPE ${PPID} + +%files +%{datadir} diff --git a/tests/data/SPECS/test-subpackages-exclude.spec b/tests/data/SPECS/test-subpackages-exclude.spec new file mode 100644 index 000000000..e93b10b70 --- /dev/null +++ b/tests/data/SPECS/test-subpackages-exclude.spec @@ -0,0 +1,42 @@ +Name: test +Version: 1.0 +Release: 1 +Summary: Test + +License: Public Domain +URL: https://fedoraproject.org +Source: hello.c + +%description +%{summary}. + +%package test2 +Summary: Test2. +%description test2 + +%prep +%autosetup -c -D -T +cp -a %{S:0} . + +%build +gcc -g hello.c -o hello +cp hello.c hello2.c +gcc -g hello2.c -o hello2 +cp hello.c hello3.c +gcc -g hello3.c -o hello3 + +%install +mkdir -p %{buildroot}/bin +install -D -p -m 0755 -t %{buildroot}/bin hello +install -D -p -m 0755 -t %{buildroot}/bin hello2 +# Install it, but then exclude it... +install -D -p -m 0755 -t %{buildroot}/bin hello3 + +%files +/bin/hello + +%files test2 +/bin/hello2 +%exclude /bin/hello3 + +%changelog diff --git a/tests/data/SPECS/test-subpackages-pathpostfixes.spec b/tests/data/SPECS/test-subpackages-pathpostfixes.spec new file mode 100644 index 000000000..19b3b9e97 --- /dev/null +++ b/tests/data/SPECS/test-subpackages-pathpostfixes.spec @@ -0,0 +1,39 @@ +Name: test +Version: 1.0 +Release: 1 +Summary: Test + +License: Public Domain +URL: https://fedoraproject.org +Source: hello.c + +%description +%{summary}. + +%package test2 +RemovePathPostfixes: .foobar +Summary: Test2. +%description test2 + +%prep +%autosetup -c -D -T +cp -a %{S:0} . + +%build +gcc -g hello.c -o hello +cp hello.c hello2.c +gcc -g hello2.c -o hello.foobar + +%install +mkdir -p %{buildroot}/bin +install -D -p -m 0755 -t %{buildroot}/bin hello +# Install as hello.foobar, but we want the postfix removed in the package... +install -D -p -m 0755 -t %{buildroot}/bin hello.foobar + +%files +/bin/hello + +%files test2 +/bin/hello.foobar + +%changelog diff --git a/tests/data/SPECS/test-subpackages.spec b/tests/data/SPECS/test-subpackages.spec new file mode 100644 index 000000000..830660082 --- /dev/null +++ b/tests/data/SPECS/test-subpackages.spec @@ -0,0 +1,47 @@ +Name: test +Version: 1.0 +Release: 1 +Summary: Test + +License: Public Domain +URL: https://fedoraproject.org +Source: hello.c + +%description +%{summary}. + +%package test2 +Summary: Test2. +%description test2 + +%package test3 +Summary: Test3. +%description test3 + +%prep +%autosetup -c -D -T +cp -a %{S:0} . + +%build +gcc -g hello.c -o hello +cp hello.c hello2.c +gcc -g hello2.c -o hello2 +cp hello.c hello3.c +gcc -g hello3.c -o hello3 + +%install +mkdir -p %{buildroot}/bin +install -D -p -m 0755 -t %{buildroot}/bin hello +install -D -p -m 0755 -t %{buildroot}/bin hello2 +install -D -p -m 0755 -t %{buildroot}/bin hello3 + +%files +/bin/hello + +%files test2 +/bin/hello2 + +%files test3 +/bin/hello3 + +%changelog diff --git a/tests/data/SPECS/testdoc.spec b/tests/data/SPECS/testdoc.spec new file mode 100644 index 000000000..7cdfb7433 --- /dev/null +++ b/tests/data/SPECS/testdoc.spec @@ -0,0 +1,32 @@ +Summary: testdoc +Name: testdoc +Version: 1.0 +Release: 1 +Group: Utilities +License: GPLv2+ +Distribution: RPM test suite. +BuildArch: noarch + +%description +Package for testing rpm install option "--excludedocs". + +%install +mkdir -p %{buildroot}%{_datadir}/testdoc +echo "nodoc" > %{buildroot}%{_datadir}/testdoc/nodoc + +mkdir -p %{buildroot}%{_docdir}/testdoc +echo "doc1" > %{buildroot}%{_docdir}/testdoc/documentation1 +echo "doc2" > %{buildroot}%{_docdir}/testdoc/documentation2 + +mkdir -p %{buildroot}%{_docdir}/testdoc/examples +echo "example1" > %{buildroot}%{_docdir}/testdoc/examples/example1 +echo "example2" > %{buildroot}%{_docdir}/testdoc/examples/example2 + +%files +%{_datadir}/testdoc/nodoc +%dir %{_docdir}/testdoc +%doc %{_docdir}/testdoc/documentation1 +%doc %{_docdir}/testdoc/documentation2 +%dir %{_docdir}/testdoc/examples +%doc %{_docdir}/testdoc/examples/example1 +%doc %{_docdir}/testdoc/examples/example2 diff --git a/tests/data/SPECS/triggers.spec b/tests/data/SPECS/triggers.spec new file mode 100644 index 000000000..ae447b60b --- /dev/null +++ b/tests/data/SPECS/triggers.spec @@ -0,0 +1,26 @@ +Name: triggers +Version: 1.0 +Release: %{rel} +Summary: Testing trigger behavior +Group: Testing +License: GPL +BuildArch: noarch + +%description +%{summary} + +%files +%defattr(-,root,root,-) + +%triggerprein -- %{trigpkg} +echo %{name}-%{version}-%{release} TRIGGERPREIN $* + +%triggerin -- %{trigpkg} +echo %{name}-%{version}-%{release} TRIGGERIN $* + +%triggerun -- %{trigpkg} +echo %{name}-%{version}-%{release} TRIGGERUN $* + +%triggerpostun -- %{trigpkg} +echo %{name}-%{version}-%{release} TRIGGERPOSTUN $* + diff --git a/tests/data/SPECS/vattrtest.spec b/tests/data/SPECS/vattrtest.spec new file mode 100644 index 000000000..130f0407d --- /dev/null +++ b/tests/data/SPECS/vattrtest.spec @@ -0,0 +1,29 @@ +Name: vattrtest +Version: 1.0 +Release: 1 +Summary: Testing virtual file attribute behavior +Group: Testing +License: GPL +BuildArch: noarch + +%description +%{summary} + +%install +rm -rf $RPM_BUILD_ROOT + +mkdir -p $RPM_BUILD_ROOT/opt/%{name} +for x in a c cn d g l m r; do + echo ${x} > $RPM_BUILD_ROOT/opt/%{name}/${x} +done + +%files +%dir /opt/%{name} +%artifact /opt/%{name}/a +%config /opt/%{name}/c +%config(noreplace) /opt/%{name}/cn +%doc /opt/%{name}/d +%ghost /opt/%{name}/g +%license /opt/%{name}/l +%missingok /opt/%{name}/m +%readme /opt/%{name}/r diff --git a/tests/data/keys/rpm.org-rsa-2048-test.pub b/tests/data/keys/rpm.org-rsa-2048-test.pub new file mode 100644 index 000000000..6e38a5dbb --- /dev/null +++ b/tests/data/keys/rpm.org-rsa-2048-test.pub @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2 + +mQENBFjmORgBCAC7TMEk6wnjSs8Dr4yqSScWdU2pjcqrkTxuzdWvowcIUPZI0w/g +HkRqGd4apjvY2V15kjL10gk3QhFP3pZ/9p7zh8o8NHX7aGdSGDK7NOq1eFaErPRY +91LW9RiZ0lbOjXEzIL0KHxUiTQEmdXJT43DJMFPyW9fkCWg0OltiX618FUdWWfI8 +eySdLur1utnqBvdEbCUvWK2RX3vQZQdvEBODnNk2pxqTyV0w6VPQ96W++lF/5Aas +7rUv3HIyIXxIggc8FRrnH+y9XvvHDonhTIlGnYZN4ubm9i4y3gOkrZlGTrEw7elQ +1QeMyG2QQEbze8YjpTm4iLABCBrRfPRaQpwrABEBAAG0IXJwbS5vcmcgUlNBIHRl +c3RrZXkgPHJzYUBycG0ub3JnPokBNwQTAQgAIQUCWOY5GAIbAwULCQgHAgYVCAkK +CwIEFgIDAQIeAQIXgAAKCRBDRFkeGWTF/MxxCACnjqFL+MmPh9W9JQKT2DcLbBzf +Cqo6wcEBoCOcwgRSk8dSikhARoteoa55JRJhuMyeKhhEAogE9HRmCPFdjezFTwgB +BDVBpO2dZ023mLXDVCYX3S8pShOgCP6Tn4wqCnYeAdLcGg106N4xcmgtcssJE+Pr +XzTZksbZsrTVEmL/Ym+R5w5jBfFnGk7Yw7ndwfQsfNXQb5AZynClFxnX546lcyZX +fEx3/e6ezw57WNOUK6WT+8b+EGovPkbetK/rGxNXuWaP6X4A/QUm8O98nCuHYFQq ++mvNdsCBqGf7mhaRGtpHk/JgCn5rFvArMDqLVrR9hX0LdCSsH7EGE+bR3r7wuQEN +BFjmORgBCACk+vDZrIXQuFXEYToZVwb2attzbbJJCqD71vmZTLsW0QxuPKRgbcYY +zp4K4lVBnHhFrF8MOUOxJ7kQWIJZMZFt+BDcptCYurbD2H4W2xvnWViiC+LzCMzz +iMJT6165uefL4JHTDPxC2fFiM9yrc72LmylJNkM/vepT128J5Qv0gRUaQbHiQuS6 +Dm/+WRnUfx3i89SV4mnBxb/Ta93GVqoOciWwzWSnwEnWYAvOb95JL4U7c5J5f/+c +KnQDHsW7sIiIdscsWzvgf6qs2Ra1Zrt7Fdk4+ZS2f/adagLhDO1C24sXf5XfMk5m +L0OGwZSr9m5s17VXxfspgU5ugc8kBJfzABEBAAGJAR8EGAEIAAkFAljmORgCGwwA +CgkQQ0RZHhlkxfzwDQf/Y5on5o+s/xD3tDyRYa6SErfT44lEArdCD7Yi+cygJFox +3jyM8ovtJAkwRegwyxcaLN7zeG1p1Sk9ZAYWQEJT6qSU4Ppu+CVGHgxgnTcfUiu6 +EZZQE6srvua53IMY1lT50M7vx0T5VicHFRWBFV2C/Mc32p7cEE6nn45nEZgUXQNl +ySEyvoRlsAJq6gFsfqucVz2vMJDTMVczUtq1CjvUqFbif8JVL36EoZCf1SeRw6d6 +s1Kp3AA33Rjd+Uw87HJ4EIB75zMFQX2H0ggAVdYTQcqGXHP5MZK1jJrHfxJyMi3d +UNW2iqnN3BA7guhOv6OMiROF1+I7Q5nWT63mQC7IgQ== +=Z6nu +-----END PGP PUBLIC KEY BLOCK----- diff --git a/tests/data/keys/rpm.org-rsa-2048-test.secret b/tests/data/keys/rpm.org-rsa-2048-test.secret new file mode 100644 index 000000000..1d2890e9a --- /dev/null +++ b/tests/data/keys/rpm.org-rsa-2048-test.secret @@ -0,0 +1,57 @@ +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v2 + +lQOYBFjmORgBCAC7TMEk6wnjSs8Dr4yqSScWdU2pjcqrkTxuzdWvowcIUPZI0w/g +HkRqGd4apjvY2V15kjL10gk3QhFP3pZ/9p7zh8o8NHX7aGdSGDK7NOq1eFaErPRY +91LW9RiZ0lbOjXEzIL0KHxUiTQEmdXJT43DJMFPyW9fkCWg0OltiX618FUdWWfI8 +eySdLur1utnqBvdEbCUvWK2RX3vQZQdvEBODnNk2pxqTyV0w6VPQ96W++lF/5Aas +7rUv3HIyIXxIggc8FRrnH+y9XvvHDonhTIlGnYZN4ubm9i4y3gOkrZlGTrEw7elQ +1QeMyG2QQEbze8YjpTm4iLABCBrRfPRaQpwrABEBAAEAB/wMHvWkNHuxfwlc6ohB +YDY3MK8uc6kefOnQHTegw/2erv1JODN0+bB2vKbQIFrgzSxMmPFS/DKG0MU7Cc4W +iONqIisBxhQD3uf00EZphrf7t3EYk/LE1niWGvVqcEoYLYoaWMTdufuNpTXCWI5m +BGLWT5oseyoXrU4rjG1BNVeOSdvkizW4g3r9HeylbKrmffhJ6121B/Rmbt3d//2Y +M+B7dWFAfzpzkiyJr6Hyw3yllIDlh3J1jgZP+OFG/9Fey+G5v8/36a9COWLElqwg +0kYyOcL6K79/lu73+YAkAcpFPzgoAwXzAEUmKpl42+TyMi5h8mHHA3MsK2YE/sxh +pWVdBADYaV18rl113k9zEvR9d94MjYNrf8fX4tjccrF1h7bU420YVHkxPlixnzXS +6XvusOCngwi9q4lM18SJazOPkUOQHq7DZH2qM9qmZM5cp0GheVZVLJoRG459LWlp +8bbTFu9flKrsIuhkMpa85ol3zdmovRzXQUnhzebkoSr3R5p0dQQA3ZATIPnrDML7 +kgqNw2v7DlBbXOW9ZSfs5+MwEX6iblIWikZHXd9OerScDioqah8K4IWNjSHr5jyY +9zNU4Lecb4L0VmFJC+LSbkYqms/iTT+IkgsUChjNPCDSJHz0kHY0z3+4Zy50Uetg +ez8GRAe3ggtaGDK+Bk7SKvz5bTn8Oh8EAMp6FBRhdd9rtXNszkPfWQ+YC25pVJFm +dWtezTyotonh/qyV1mM3uVbkF1nf24Uy5mpb9ysN2ux81j3Fvmb05Isdx3UpZgku +YOKwLGvjYAMJhCC0wVwINE2Hf1AgqLGYqjGLLe+x3QwvrZh0mu6z7D5MHOOzobBT +PPGl3K5O/4xfRxC0IXJwbS5vcmcgUlNBIHRlc3RrZXkgPHJzYUBycG0ub3JnPokB +NwQTAQgAIQUCWOY5GAIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRBDRFke +GWTF/MxxCACnjqFL+MmPh9W9JQKT2DcLbBzfCqo6wcEBoCOcwgRSk8dSikhARote +oa55JRJhuMyeKhhEAogE9HRmCPFdjezFTwgBBDVBpO2dZ023mLXDVCYX3S8pShOg +CP6Tn4wqCnYeAdLcGg106N4xcmgtcssJE+PrXzTZksbZsrTVEmL/Ym+R5w5jBfFn +Gk7Yw7ndwfQsfNXQb5AZynClFxnX546lcyZXfEx3/e6ezw57WNOUK6WT+8b+EGov +PkbetK/rGxNXuWaP6X4A/QUm8O98nCuHYFQq+mvNdsCBqGf7mhaRGtpHk/JgCn5r +FvArMDqLVrR9hX0LdCSsH7EGE+bR3r7wnQOYBFjmORgBCACk+vDZrIXQuFXEYToZ +Vwb2attzbbJJCqD71vmZTLsW0QxuPKRgbcYYzp4K4lVBnHhFrF8MOUOxJ7kQWIJZ +MZFt+BDcptCYurbD2H4W2xvnWViiC+LzCMzziMJT6165uefL4JHTDPxC2fFiM9yr +c72LmylJNkM/vepT128J5Qv0gRUaQbHiQuS6Dm/+WRnUfx3i89SV4mnBxb/Ta93G +VqoOciWwzWSnwEnWYAvOb95JL4U7c5J5f/+cKnQDHsW7sIiIdscsWzvgf6qs2Ra1 +Zrt7Fdk4+ZS2f/adagLhDO1C24sXf5XfMk5mL0OGwZSr9m5s17VXxfspgU5ugc8k +BJfzABEBAAEAB/4w+VcO3uJYS6gWJCCJjiaAdscPNFSUzyVrrOyqH7d39fWBMdo/ +z8Za7dbHd1mEoQyo7hrG96bLC3YpzoRfMtIveVCUF6bbd62yZG1FnqRhYEnpzKqB +p66jaoj5PWkArBmNkWvoYTXvKGA53RhYAwMU0qoGVCfRX7CUU+Lf5pDOcxrWQI0J +8qdNludySOYgQB9OvKUGltkf2HFuYGZNXazg1txWN5hgfTSfWuaru9/ltDwd7cx1 +kZ38Wp44Vx3ogpt++rolDYEhsVCeiENVSA2EX/XHkF56QWwNedkSsS1OtFwmwu7J +o+svs1V1BrGb4+649zByzp6p+VwAleuH2nDRBADB1Muwz2tVewnM3/oQcpzWoa/R +Iba3mk0ASkjr9brKdXpMY/KMCFeeMW+PAXvvw9en2xDUWzERPbQ1VZsSYp5KXr+x +1n7f4LfflKIaS2wEIsUjMwhGFx34UJRWjzjfh5GknIyR6fRMq/a0LpnO+CEuIjMj +VR1L4wnucdDpcOoewwQA2eU7ODI/89RlNA/A9AlhYSWek4OzKgDDi96edwTeqjLP ++Zq0MM5WyupnrIoSdWsb9GBJww4CkAvbAGq94SH31uJU7D42VmrLxRHfrauk0UaL +YnNewXwtbREMaC6qGLHMhH2orh1oNauvyL7QBuJPSr23+xqj4B6xdWx1DIw2bxED +/iutL4RSkEagJgut+oM8xLoCBP2T4avue9chzo/S6GL308HpesBDeITBMndPg/Tw +6z2Rn0rA7e9xuOmeUpvnqmAUNOMgiuGFoCfHZCHAZ0jIpjBx8sjyPKGZ/V6Qa1UA +UNso1LQgageYiyksmuJjyI0yP2E9P9Hd2SBRTLoFB3b4SSmJAR8EGAEIAAkFAljm +ORgCGwwACgkQQ0RZHhlkxfzwDQf/Y5on5o+s/xD3tDyRYa6SErfT44lEArdCD7Yi ++cygJFox3jyM8ovtJAkwRegwyxcaLN7zeG1p1Sk9ZAYWQEJT6qSU4Ppu+CVGHgxg +nTcfUiu6EZZQE6srvua53IMY1lT50M7vx0T5VicHFRWBFV2C/Mc32p7cEE6nn45n +EZgUXQNlySEyvoRlsAJq6gFsfqucVz2vMJDTMVczUtq1CjvUqFbif8JVL36EoZCf +1SeRw6d6s1Kp3AA33Rjd+Uw87HJ4EIB75zMFQX2H0ggAVdYTQcqGXHP5MZK1jJrH +fxJyMi3dUNW2iqnN3BA7guhOv6OMiROF1+I7Q5nWT63mQC7IgQ== +=phzS +-----END PGP PRIVATE KEY BLOCK----- diff --git a/tests/package.m4 b/tests/package.m4 new file mode 100644 index 000000000..6862204f8 --- /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.14.1]) +m4_define([AT_PACKAGE_STRING], [rpm 4.14.1]) +m4_define([AT_PACKAGE_BUGREPORT], [rpm-maint@lists.rpm.org]) diff --git a/tests/rpmbuild.at b/tests/rpmbuild.at index 7661e35f5..5e0b0d492 100644 --- a/tests/rpmbuild.at +++ b/tests/rpmbuild.at @@ -51,6 +51,22 @@ run rpmbuild \ [ignore]) AT_CLEANUP +AT_SETUP([rpmbuild --short-circuit -bl]) +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 -bi "${abs_srcdir}"/data/SPECS/hello.spec &> /dev/null +run rpmbuild --quiet -bl --short-circuit "${abs_srcdir}"/data/SPECS/hello.spec +], +[0], +[], +[]) +AT_CLEANUP + # ------------------------------ # Check if tar unpacking works AT_SETUP([rpmbuild -tb <tar with bad spec>]) @@ -95,7 +111,7 @@ runroot rpmbuild \ runroot rpm -qp --qf \ "\n[%{filemodes:perms} %-8{fileusername} %-8{filegroupname} %{filenames}\n]"\ - "${TOPDIR}"/RPMS/noarch/attrtest-1.0-1.noarch.rpm + /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm ]], [0], [ @@ -135,7 +151,7 @@ rm -rf ${TOPDIR} runroot rpmbuild \ -bb --quiet /data/SPECS/hlinktest.spec -runroot rpm -i "${TOPDIR}"/RPMS/noarch/hlinktest-1.0-1.noarch.rpm +runroot rpm -i /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm runroot rpm -q --qf "[[%{filenlinks} %{filenames}\n]]%{longsize}\n" hlinktest runroot rpm -V --nouser --nogroup hlinktest @@ -143,17 +159,59 @@ ls -i "${RPMTEST}"/foo/hello* | awk {'print $1'} | sort -u | wc -l ], [0], -[1 /foo/copyllo +[2 /foo/aaaa +1 /foo/copyllo 4 /foo/hello 4 /foo/hello-bar 4 /foo/hello-foo 4 /foo/hello-world -78 +2 /foo/zzzz +87 1 ], []) AT_CLEANUP +AT_SETUP([rpmbuild unpackaged files]) +AT_KEYWORDS([build]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf ${TOPDIR} + +runroot rpmbuild \ + -bb --quiet --with unpackaged_files /data/SPECS/hlinktest.spec +], +[1], +[], +[error: Installed (but unpackaged) file(s) found: + /toot + Installed (but unpackaged) file(s) found: + /toot +]) +AT_CLEANUP + +# rpm doesn't detect unpackaged directories but should, really +AT_SETUP([rpmbuild unpackaged directories]) +AT_KEYWORDS([build]) +AT_XFAIL_IF([test $RPM_XFAIL -ne 0]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf ${TOPDIR} + +runroot rpmbuild \ + -bb --quiet --with unpackaged_dirs /data/SPECS/hlinktest.spec +], +[1], +[], +[error: Installed (but unpackaged) file(s) found: + /zoo + Installed (but unpackaged) file(s) found: + /zoo +]) +AT_CLEANUP + AT_SETUP([rpmbuild glob]) AT_KEYWORDS([build]) AT_CHECK([ @@ -164,7 +222,7 @@ rm -rf ${TOPDIR} runroot rpmbuild -bb --quiet /data/SPECS/globtest.spec runroot rpm -qp \ --qf "[[%{filemodes:perms} %{filenames}\n]]" \ - "${TOPDIR}"/RPMS/noarch/globtest-1.0-1.noarch.rpm + /build/RPMS/noarch/globtest-1.0-1.noarch.rpm ], [0], [-rw-r--r-- /opt/globtest/baf @@ -185,3 +243,1111 @@ lrwxrwxrwx /opt/globtest/linkgood ], []) AT_CLEANUP + +AT_SETUP([rpmbuild prefixpostfix]) +AT_KEYWORDS([build]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf ${TOPDIR} + +runroot rpmbuild -bb --quiet \ + /data/SPECS/prefixtest.spec +runroot rpm -qp \ + --qf "[[%{filemodes:perms} %{filenames}\n]]" \ + /build/RPMS/noarch/prefixtest-1.0-1.noarch.rpm +], +[0], +[-rw-r--r-- /opt/prefixtest/ba +drwxr-xr-x /opt/prefixtest/ban +-rw-r--r-- /opt/prefixtest/bi +drwxr-xr-x /opt/prefixtest/bin +drwxr-xr-x /opt/prefixtest/bon +drwxr-xr-x /opt/prefixtest/foo +-rw-r--r-- /opt/prefixtest/foo/one +-rw-r--r-- /opt/prefixtest/foo/three +-rw-r--r-- /opt/prefixtest/foo/two +lrwxrwxrwx /opt/prefixtest/linkbad +lrwxrwxrwx /opt/prefixtest/linkgood +-rw-r--r-- /opt/prefixtest/weird%name +-rw-r--r-- /opt/prefixtest/zab +-rw-r--r-- /opt/prefixtest/zeb +-rw-r--r-- /opt/prefixtest/zib +], +[]) +AT_CLEANUP + +# ------------------------------ +# Check if weak and reverse requires can be built +AT_SETUP([Weak and reverse requires]) +AT_KEYWORDS([build]) +AT_CHECK([ + +runroot rpmbuild -bb --quiet \ + --define "pkg weakdeps" \ + --define "recs foo > 1.2.3" \ + --define "sugs bar >= 0.1.2" \ + --define "sups baz" \ + --define "ens zap = 3" \ + /data/SPECS/deptest.spec + +runroot rpm -qp --recommends /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --suggests /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --supplements /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --enhances /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +], +[0], +[foo > 1.2.3 +bar >= 0.1.2 +baz +zap = 3 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Test BuildRequire functionality +AT_SETUP([Build requires]) +AT_KEYWORDS([build]) +AT_CHECK([ + +runroot rpmbuild -bb --quiet \ + --define "pkg buildreq" \ + --define "buildreqs foo > 1.2.3" \ + /data/SPECS/deptest.spec +], +[1], +[], +[error: Failed build dependencies: + foo > 1.2.3 is needed by deptest-buildreq-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([Dependency generation]) +AT_KEYWORDS([build]) +AT_CHECK([ + +runroot rpmbuild -bb --quiet \ + /data/SPECS/filedep.spec +echo Requires: +runroot rpm -qp --requires /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Provides: +runroot rpm -qp --provides /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Filerequires: +runroot rpm -qp --qf '[["%{FILENAMES}\t%{FILEREQUIRE}"\n]]' /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Fileprovides: +runroot rpm -qp --qf '[["%{FILENAMES}\t%{FILEPROVIDE}"\n]]' /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +], +[0], +[Requires: +/bin/f00f +/bin/sh +rpmlib(CompressedFileNames) <= 3.0.4-1 +rpmlib(FileDigests) <= 4.6.0-1 +rpmlib(PayloadFilesHavePrefix) <= 4.0-1 +Provides: +filedep = 1.0-1 +Filerequires: +"/etc/foo.conf " +"/usr/bin/bar /bin/f00f" +"/usr/bin/foo /bin/sh" +"/usr/share/doc/filedep " +"/usr/share/doc/filedep/README " +Fileprovides: +"/etc/foo.conf " +"/usr/bin/bar " +"/usr/bin/foo " +"/usr/share/doc/filedep " +"/usr/share/doc/filedep/README " +], +[]) +AT_CLEANUP + + +# ------------------------------ +# Test spec query functionality +AT_SETUP([rpmspec query 1]) +AT_KEYWORDS([build]) +AT_CHECK([ + +runroot rpmspec -q \ + --define "pkg dep" \ + --define "reqs foo > 1.2.3 bar <= 2.3" \ + --requires \ + /data/SPECS/deptest.spec +], +[0], +[bar <= 2.3 +foo > 1.2.3 +], +[]) + +AT_CLEANUP + +# ------------------------------ +# archive sanity check +AT_SETUP([rpmbuild archive sanity]) +AT_KEYWORDS([build]) +AT_CHECK([ +rm -rf ${TOPDIR} + +runroot rpmbuild \ + -bb --quiet /data/SPECS/attrtest.spec + +runroot rpm2cpio \ + /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm > /tmp/attrtest.cpio +], +[0], +[], +[]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild creates the minisymtab section in the main hello binary +AT_SETUP([rpmbuild debuginfo minisymtab]) +AT_KEYWORDS([build] [debuginfo]) +AT_CHECK([ +rm -rf ${TOPDIR} + +# Use macros.debug to generate a debuginfo package. +export CFLAGS="-g" +rundebug rpmbuild --quiet \ + --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm + +# Extract the main package and inspect the hello binary +# It should contain .gnu_debugdata, but not the full .symtab +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu +test -f ./usr/local/bin/hello || exit 1 +readelf -S ./usr/local/bin/hello |\ + grep -q .gnu_debugdata; test $? == 0 || exit 1 +readelf -S ./usr/local/bin/hello \ + | grep -q .symtab; test $? == 1 || exit 1 + +# And the opposite for the debuginfo package +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu +test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \ + | grep -q .gnu_debugdata; test $? == 1 || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \ + | grep -q .symtab; test $? == 0 || exit 1 +], +[0], +[], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild doesn't create the minisymtab section if we keep symtab +# Some package might want to use strip -g to keep the symbol table and only +# but the debug symbols/info in the debuginfo package. +AT_SETUP([rpmbuild debuginfo minisymtab strip -g]) +AT_KEYWORDS([build] [debuginfo]) +AT_CHECK([ +rm -rf ${TOPDIR} + +# Use macros.debug to generate a debuginfo package. +export CFLAGS="-g" +rundebug rpmbuild --quiet \ + --define="_find_debuginfo_opts -g" \ + --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm + +# Extract the main package and inspect the hello binary +# It should contain .symtab (because of strip -g), so doesn't .gnu_debugdata. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu +test -f ./usr/local/bin/hello || exit 1 +readelf -S ./usr/local/bin/hello \ + | grep -q .gnu_debugdata; test $? == 1 || exit 1 +readelf -S ./usr/local/bin/hello \ + | grep -q .symtab; test $? == 0 || exit 1 + +# The debuginfo package should contain neither. The .symtab is NOBITS. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu +test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \ + | grep -q .gnu_debugdata; test $? == 1 || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \ + | grep .symtab | grep -q NOBITS; test $? == 0 || exit 1 +], +[0], +[], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild runs dwz and generates a multi file that with shared +# debuginfo. This is simply the hello example with one binary build twice +# so dwz has enough slightly similar debug data. +# Test the case without unique debug file names. +AT_SETUP([rpmbuild debuginfo dwz]) +AT_KEYWORDS([build] [debuginfo] [dwz]) +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 + +rundebug rpmbuild --quiet \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# The debuginfo package should contain a .debug file for each binary +# and a dwz multi file that contains the shared debuginfo between them. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +hello_file_debug=./usr/lib/debug/usr/local/bin/hello.debug +hello2_file_debug=./usr/lib/debug/usr/local/bin/hello2.debug +hello_multi_file=./usr/lib/debug/.dwz/hello2-1.0-1.* +test -f $hello_file_debug || echo "no hello debug file: $hello_file_debug" +test -f $hello2_file_debug || echo "no hello2 debug file: $hello2_file_debug" +test -f $hello_multi_file || echo "no dwz multi file: $hello_multi_file" + +# Make sure the main package binaries contain the correct build-ids +# linking them to the debug packages. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu +hello_file=./usr/local/bin/hello +hello2_file=./usr/local/bin/hello2 +test -f $hello_file || echo "no hello file: $hello_file" +test -f $hello2_file || echo "no hello2 file: $hello2_file" + +id1=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') +id2=$(file $hello2_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') +id1debug=$(file $hello_file_debug | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') +id2debug=$(file $hello2_file_debug | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') +idmulti=$(file $hello_multi_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +test "$id1" = "$id1debug" || echo "id1: $id1 != id1debug: $id1debug" +test "$id2" = "$id2debug" || echo "id2: $id2 != id2debug: $id2debug" + +# The build-id files should link to the .debug files. +id1file="./usr/lib/debug/.build-id/${id1:0:2}/${id1:2}" +canonid1file=$(readlink -f ${id1file}) +canonfile1=$(readlink -f $hello_file) +canonid1debug=$(readlink -f ${id1file}.debug) +canondebug1=$(readlink -f $hello_file_debug) + +test "$canonid1file" = "$canonfile1" \ + || echo "canonid1file: $canonid1file != $canonfile1" +test "$canonid1debug" = "$canondebug1" \ + || echo "canonid1debug: $canonid1debug != $canondebug1" + +id2file="./usr/lib/debug/.build-id/${id2:0:2}/${id2:2}" +canonid2file=$(readlink -f ${id2file}) +canonfile2=$(readlink -f $hello2_file) +canonid2debug=$(readlink -f ${id2file}.debug) +canondebug2=$(readlink -f $hello2_file_debug) + +test "$canonid2file" = "$canonfile2" \ + || echo "canonid2: $canonid2file != $canonfile2" +test "$canonid2debug" = "$canondebug2" \ + || echo "canonid2debug: $canonid2debug" != "$canondebug2" + +# Both .debug files should point to the dwz multi file. +# It would be nice to also test that they contain the correct dwz build-id +# but that is a bit hard to grep out of the section data. +multiref1=$(readelf --string-dump=.gnu_debugaltlink $hello_file_debug \ + | grep '[ 0]' | cut -c13-) +multiref2=$(readelf --string-dump=.gnu_debugaltlink $hello2_file_debug \ + | grep '[ 0]' | cut -c13-) + +test "$multiref1" = "$multiref2" || echo "multiref: $multiref1 != $multiref2" + +canonmultiref=$(readlink -f $(dirname $canondebug1)/$multiref1) +canonmultifile=$(readlink -f $hello_multi_file) + +test "$canonmultiref" = "$canonmultifile" \ + || echo "canonmultiref: $canonmultiref" != "$canonmultifile" +], +[0], +[], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild runs dwz and generates a multi file that with shared +# debuginfo. This is simply the hello example with one binary build twice +# so dwz has enough slightly similar debug data. +# Test with unique debug file names. +AT_SETUP([rpmbuild debuginfo dwz unique debug names]) +AT_KEYWORDS([build] [debuginfo] [dwz]) +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 + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# The debuginfo package should contain a .debug file for each binary +# and a dwz multi file that contains the shared debuginfo between them. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +hello_file_debug=./usr/lib/debug/usr/local/bin/hello-*.debug +hello2_file_debug=./usr/lib/debug/usr/local/bin/hello2-*.debug +hello_multi_file=./usr/lib/debug/.dwz/hello2-1.0-1.* +test -f $hello_file_debug || echo "no hello debug file: $hello_file_debug" +test -f $hello2_file_debug || echo "no hello2 debug file: $hello2_file_debug" +test -f $hello_multi_file || echo "no dwz multi file: $hello_multi_file" + +# Make sure the main package binaries contain the correct build-ids +# linking them to the debug packages. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu +hello_file=./usr/local/bin/hello +hello2_file=./usr/local/bin/hello2 +test -f $hello_file || echo "no hello file: $hello_file" +test -f $hello2_file || echo "no hello2 file: $hello2_file" + +id1=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') +id2=$(file $hello2_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') +id1debug=$(file $hello_file_debug | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') +id2debug=$(file $hello2_file_debug | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') +idmulti=$(file $hello_multi_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +test "$id1" = "$id1debug" || echo "id1: $id1 != id1debug: $id1debug" +test "$id2" = "$id2debug" || echo "id2: $id2 != id2debug: $id2debug" + +# The build-id files should link to the .debug files. +id1file="./usr/lib/debug/.build-id/${id1:0:2}/${id1:2}" +canonid1file=$(readlink -f ${id1file}) +canonfile1=$(readlink -f $hello_file) +canonid1debug=$(readlink -f ${id1file}.debug) +canondebug1=$(readlink -f $hello_file_debug) + +test "$canonid1file" = "$canonfile1" \ + || echo "canonid1file: $canonid1file != $canonfile1" +test "$canonid1debug" = "$canondebug1" \ + || echo "canonid1debug: $canonid1debug != $canondebug1" + +id2file="./usr/lib/debug/.build-id/${id2:0:2}/${id2:2}" +canonid2file=$(readlink -f ${id2file}) +canonfile2=$(readlink -f $hello2_file) +canonid2debug=$(readlink -f ${id2file}.debug) +canondebug2=$(readlink -f $hello2_file_debug) + +test "$canonid2file" = "$canonfile2" \ + || echo "canonid2: $canonid2file != $canonfile2" +test "$canonid2debug" = "$canondebug2" \ + || echo "canonid2debug: $canonid2debug" != "$canondebug2" + +# Both .debug files should point to the dwz multi file. +# It would be nice to also test that they contain the correct dwz build-id +# but that is a bit hard to grep out of the section data. +multiref1=$(readelf --string-dump=.gnu_debugaltlink $hello_file_debug \ + | grep '[ 0]' | cut -c13-) +multiref2=$(readelf --string-dump=.gnu_debugaltlink $hello2_file_debug \ + | grep '[ 0]' | cut -c13-) + +test "$multiref1" = "$multiref2" || echo "multiref: $multiref1 != $multiref2" + +canonmultiref=$(readlink -f $(dirname $canondebug1)/$multiref1) +canonmultifile=$(readlink -f $hello_multi_file) + +test "$canonmultiref" = "$canonmultifile" \ + || echo "canonmultiref: $canonmultiref" != "$canonmultifile" +], +[0], +[], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that old style gnu_debuglink CRC checksums are correct even after +# using dwz to compress the debuginfo files. +AT_SETUP([rpmbuild debuginfo dwz gnu_debuglink crc]) +AT_KEYWORDS([build] [debuginfo]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Build a package that +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the main and debuginfo rpms so we can check binaries and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu + +# Check that dwz has ran and a multi file has been produced +test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1 + +# Run sepdbugcrcfix on the binaries, both should have correct CRC already. +${abs_top_builddir}/sepdebugcrcfix ./usr/lib/debug \ + ./usr/local/bin/hello ./usr/local/bin/hello2 | grep CRC32 | cut -f2 -d: +], +[0], +[ Updated 0 CRC32s, 2 CRC32s did match. +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that an implicit suid binary get included with the suid bit set. +# We explicitly build with all debug.macros to test those helpers. +AT_SETUP([rpmbuild implicit suid binary]) +AT_KEYWORDS([build] [debuginfo] [dwz] [suid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + -ba "${abs_srcdir}"/data/SPECS/hello2-suid.spec + +# Unpack rpm so we can check the included binaries. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +# List all binaries with suid bit set (should be one, hello). +echo "suid:" +find usr -executable -type f -perm /4000 +# List all binaries without suid bit set (should also be one, hello2). +echo "no-suid:" +find usr -executable -type f \! -perm /4000 +], +[0], +[suid: +usr/local/bin/hello +no-suid: +usr/local/bin/hello2 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that a GDB index is included when requested. +AT_SETUP([rpmbuild debuginfo gdb index included]) +AT_KEYWORDS([build] [debuginfo] [gdb]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_include_gdb_index 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that gdb-add-index has ran and a .gdb_index section has been added +readelf -S ./usr/lib/debug/usr/local/bin/hello2*.debug \ + | grep gdb_index | cut -c8-17 +], +[0], +[.gdb_index +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that a GDB index is NOT included when not requested. +AT_SETUP([rpmbuild debuginfo no gdb index included]) +AT_KEYWORDS([build] [debuginfo] [gdb]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --undefine "_include_gdb_index" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that gdb-add-index has not ran and no .gdb_index section has been added +readelf -S ./usr/lib/debug/usr/local/bin/hello2*.debug \ + | grep gdb_index | cut -c8-17 +], +[0], +[], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that a debug source is in a "unique" directory when requested. +AT_SETUP([rpmbuild debuginfo unique debug src dir]) +AT_KEYWORDS([build] [debuginfo]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Note that the spec defines hello2 as name, but the source is hello-1.0. +# Disable dwz to make debuginfo path rewrite checking easier. +rundebug rpmbuild --quiet \ + --undefine "_find_debuginfo_dwz_opts" \ + --define "_unique_debug_srcs 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that the source path is "unique" +# Drop the final arch prefix to make the test arch-independent. +ls ./usr/src/debug/ | cut -f1,2 -d\. + +# Check that the source path has been rewritten in the .debug file. +# Drop the final arch prefix to make the test arch-independent. +readelf --debug-dump=info ./usr/lib/debug/usr/local/bin/hello2*.debug \ + | grep comp_dir | sed -e 's/\t$//' | cut -f5- -d/ | cut -f1,2 -d\. +], +[0], +[hello2-1.0-1 +hello2-1.0-1 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that a debug source is NOT in a "unique" directory when not requested. +# It will be in the "build directory" name under /usr/src/debug. +AT_SETUP([rpmbuild debuginfo no unique debug src dir]) +AT_KEYWORDS([build] [debuginfo]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Note that the spec defines hello2 as name, but the source is hello-1.0. +# Disable dwz to make debuginfo path rewrite checking easier. +rundebug rpmbuild --quiet \ + --undefine "_find_debuginfo_dwz_opts" \ + --undefine "_unique_debug_srcs" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that the source path is "unique" +ls ./usr/src/debug/ + +# Check that the source path has been rewritten in the .debug file. +readelf --debug-dump=info ./usr/lib/debug/usr/local/bin/hello2*.debug \ + | grep comp_dir | sed -e 's/\t$//' | cut -f5- -d/ +], +[0], +[hello-1.0 +hello-1.0 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that defining _debugsource_packages creates -debugsource package +AT_SETUP([rpmbuild debugsource]) +AT_KEYWORDS([build] [debuginfo] [debugsource]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_debugsource_packages 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debugsource rpm so we can check the sources are there. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debugsource-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that hello.c is there. +ls ./usr/src/debug/hello2-1.0*/ + +# The debuginfo package should recommend the debugsource package (ignore arch). +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm | sed -E 's/([[-.a-z0-9]]+)\(.*\) = ([[-.0-9]]+)/\1\(ignore-arch\) = \2/' +], +[0], +[hello.c +Recommends: hello2-debugsource(ignore-arch) = 1.0-1 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that defining _debugsource_packages creates -debugsource package +# even if %install changes the working directory (debugsources.list +# should be in expected build dir). +AT_SETUP([rpmbuild debugsource debugsources.list path]) +AT_KEYWORDS([build] [debuginfo] [debugsource]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_debugsource_packages 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello-cd.spec + +# Unpack the debuginfo rpms so we can check the sources are there. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debugsource-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that hello.c is there. +ls ./usr/src/debug/test-1.0*/ +], +[0], +[hello.c +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that undefining _debuginfo_subpackages creates one single -debuginfo. +AT_SETUP([rpmbuild debuginfo subpackages single]) +AT_KEYWORDS([build] [debuginfo] [debugsubpackage]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --undefine "_debugsource_packages" \ + --undefine "_debuginfo_subpackages" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages.spec + +# Check that there is just one debuginfo package. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# Which contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi +], +[0], +[1 +hello debug exists +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that defining _debuginfo_subpackages creates multiple -debuginfos. +AT_SETUP([rpmbuild debuginfo subpackages multiple]) +AT_KEYWORDS([build] [debuginfo] [debugsubpackage]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --undefine "_debugsource_packages" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# Second contains hello2.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello2 debug exists" +else + echo "No hello2: $debug_name" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([[-.a-z0-9]]+)\(.*\) = ([[-.0-9]]+)/\1\(ignore-arch\) = \2/' + +# Third contains hello3.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello3 debug exists" +else + echo "No hello3: $debug_name" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([[-.a-z0-9]]+)\(.*\) = ([[-.0-9]]+)/\1\(ignore-arch\) = \2/' +], +[0], +[3 +hello debug exists +hello2 debug exists +Recommends: test-debuginfo(ignore-arch) = 1.0-1 +hello3 debug exists +Recommends: test-debuginfo(ignore-arch) = 1.0-1 +], +[ignore]) +AT_CLEANUP +# ------------------------------ +# Check that defining _debuginfo_subpackages creates multiple -debuginfos. +# With unique debug and source names +AT_SETUP([rpmbuild debuginfo subpackages multiple unique]) +AT_KEYWORDS([build] [debuginfo] [debugsubpackage]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --undefine "_debugsource_packages" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# Second contains hello2.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello2 debug exists" +else + echo "No hello2: $debug_name" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([[-.a-z0-9]]+)\(.*\) = ([[-.0-9]]+)/\1\(ignore-arch\) = \2/' + +# Third contains hello3.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello3 debug exists" +else + echo "No hello3: $debug_name" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([[-.a-z0-9]]+)\(.*\) = ([[-.0-9]]+)/\1\(ignore-arch\) = \2/' +], +[0], +[3 +hello debug exists +hello2 debug exists +Recommends: test-debuginfo(ignore-arch) = 1.0-1 +hello3 debug exists +Recommends: test-debuginfo(ignore-arch) = 1.0-1 +], +[ignore]) +AT_CLEANUP +# ------------------------------ +# Check that defining _debuginfo_subpackages creates multiple -debuginfos. +# Unique with debugsources. +AT_SETUP([rpmbuild debuginfo subpackages multiple unique debugsource]) +AT_KEYWORDS([build] [debuginfo] [debugsubpackage] [debugsource]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --define "_debugsource_packages 1" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm | sed -E 's/([[-.a-z0-9]]+)\(.*\) = ([[-.0-9]]+)/\1\(ignore-arch\) = \2/' + +# Second contains hello2.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello2 debug exists" +else + echo "No hello2: $debug_name" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([[-.a-z0-9]]+)\(.*\) = ([[-.0-9]]+)/\1\(ignore-arch\) = \2/' + +# Third contains hello3.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello3 debug exists" +else + echo "No hello3: $debug_name" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([[-.a-z0-9]]+)\(.*\) = ([[-.0-9]]+)/\1\(ignore-arch\) = \2/' +], +[0], +[3 +hello debug exists +Recommends: test-debugsource(ignore-arch) = 1.0-1 +hello2 debug exists +Recommends: test-debugsource(ignore-arch) = 1.0-1 +hello3 debug exists +Recommends: test-debugsource(ignore-arch) = 1.0-1 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that defining _debuginfo_subpackages works with excluded files. +AT_SETUP([rpmbuild debuginfo subpackages multiple excluded]) +AT_KEYWORDS([build] [debuginfo] [debugsubpackage] [debugsource]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --define "_debugsource_packages 1" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages-exclude.spec + +# Check that there are 2 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# Second contains hello2.debug but NOT hello3.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello2 debug exists" +else + echo "No hello2: $debug_name" +fi + +if test -f ./usr/lib/debug/bin/hello3*; then + echo "hello3 debug exists" +else + echo "No hello3 debug" +fi +], +[0], +[2 +hello debug exists +hello2 debug exists +No hello3 debug +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that defining _debuginfo_subpackages works with RemovePathPostfixes. +AT_SETUP([rpmbuild debuginfo subpackages multiple excluded]) +AT_KEYWORDS([build] [debuginfo] [debugsubpackage] [debugsource]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --define "_debugsource_packages 1" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages-pathpostfixes.spec + +# Check that there are 2 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# remove it, we are going to check the other debuginfo package. +rm ./bin/hello +rm ./usr/lib/debug/bin/$debug_name +orig_debugname=$debugname + +# Second contains hello.foobar.debug but NOT hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello.foobar debug exists" +else + echo "No hello2: $debug_name" +fi + +if test -f ./usr/lib/debug/bin/$orig_debugname; then + echo "$orig_debugname exists" +else + echo "No hello.debug" +fi +], +[0], +[2 +hello debug exists +hello.foobar debug exists +No hello.debug +], +[ignore]) +AT_CLEANUP diff --git a/tests/rpmbuildid.at b/tests/rpmbuildid.at new file mode 100644 index 000000000..5ecefb2b2 --- /dev/null +++ b/tests/rpmbuildid.at @@ -0,0 +1,1312 @@ +# rpmbuildid.at: test rpmbuild buildid symlink support +# +# This file is part of RPM, the RPM Package Manager. +# Copyright (C) 2016 Mark J. Wielaard <mjw@redhat.com> +# +# This file 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. +# +# RPM 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, see <http://www.gnu.org/licenses/>. + +AT_BANNER([RPM buildid tests]) + +# ------------------------------ +# Check if rpmbuild "none" doesn't generates buildid symlinks for hello program +AT_SETUP([rpmbuild buildid none]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links none" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be zero build-id files in both the main and debuginfo package +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +], +[0], +[hello build-id files: 0 +hello debuginfo build-id files: 0 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild "alldebug" generates debuginfo buildid symlinks. +# Without unique debug file names. +AT_SETUP([rpmbuild buildid alldebug]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links alldebug" \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be zero build-id files in the main package +# Main and debug should be in the debuginfo package, +# plus the .build-id/xx subdir, 3 in total. +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +id_main_file="./usr/lib/debug/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" +], +[0], +[hello build-id files: 0 +hello debuginfo build-id files: 3 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild "alldebug" generates debuginfo buildid symlinks. +# With unique debug file names. +AT_SETUP([rpmbuild buildid alldebug unique debug names]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links alldebug" \ + --define="_unique_debug_names 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be zero build-id files in the main package +# Main and debug should be in the debuginfo package, +# plus the .build-id/xx subdir, 3 in total. +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +id_main_file="./usr/lib/debug/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" +], +[0], +[hello build-id files: 0 +hello debuginfo build-id files: 3 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild "separate" generates main and debuginfo buildid symlinks +# Without unique debug file names +AT_SETUP([rpmbuild buildid separate]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links separate" \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package +# plus the .build-id/xx subdir, 2 in total. +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +id_main_file="./usr/lib/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" +], +[0], +[hello build-id files: 2 +hello debuginfo build-id files: 2 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild "separate" generates main and debuginfo buildid symlinks +# With unique debug file names +AT_SETUP([rpmbuild buildid separate unique debug names]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links separate" \ + --define="_unique_debug_names 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package +# plus the .build-id/xx subdir, 2 in total. +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +id_main_file="./usr/lib/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" +], +[0], +[hello build-id files: 2 +hello debuginfo build-id files: 2 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild "compat" generates main and debuginfo buildid symlinks +# Without unique debug file names +AT_SETUP([rpmbuild buildid compat]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links compat" \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package. +# the debuginfo package has one extra main build-id compat symlink +# plus the .build-id/xx subdir, 2 in total in main, 3 in total in debug +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +id_main_file="./usr/lib/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" + +# The compat link should also point to the same (indirectly). +id_compat_file="./usr/lib/debug/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_compat_file" || echo "No build-id compat file $id_compat_file" + +canon_compat_file=$(readlink -f ${id_compat_file}) + +test -f "$canon_compat_file" \ + || echo "Cannot resolve compat file ${id_compat_file} -> ${canon_compat_file}" + +test "$canon_compat_file" = "$canon_main_file" \ + || echo "compat and build-id not linked" +], +[0], +[hello build-id files: 2 +hello debuginfo build-id files: 3 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check if rpmbuild "compat" generates main and debuginfo buildid symlinks +# With unique debug file names +AT_SETUP([rpmbuild buildid compat unique debug names]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links compat" \ + --define="_unique_debug_names 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package. +# the debuginfo package has one extra main build-id compat symlink +# plus the .build-id/xx subdir, 2 in total in main, 3 in total in debug +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +id_main_file="./usr/lib/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" + +# The compat link should also point to the same (indirectly). +id_compat_file="./usr/lib/debug/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_compat_file" || echo "No build-id compat file $id_compat_file" + +canon_compat_file=$(readlink -f ${id_compat_file}) + +test -f "$canon_compat_file" \ + || echo "Cannot resolve compat file ${id_compat_file} -> ${canon_compat_file}" + +test "$canon_compat_file" = "$canon_main_file" \ + || echo "compat and build-id not linked" +], +[0], +[hello build-id files: 2 +hello debuginfo build-id files: 3 +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that (copied) files with duplicate build-ids are handled correctly. +# This should create "numbered" build-id files. +# This is simply the hello example with one binary copied. +AT_SETUP([rpmbuild buildid duplicate alldebug]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# Should create two warnings +rundebug rpmbuild --quiet \ + --define="_build_id_links alldebug" \ + -ba "${abs_srcdir}"/data/SPECS/hello2cp.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# alldebug not here... +id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# alldebug, so they are all here +test -L "$id_file" && echo "main id in debug package" +test -L "$id_dup_file" && echo "main dup id in debug package" + +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" +], +[0], +[warning: Duplicate build-ids +warning: Duplicate build-ids +main id in debug package +main dup id in debug package +debug id in debug package +debug dup id in debug package +], +[]) +AT_CLEANUP + +# ------------------------------ +# Check that hard linked files are handled correctly. +# Since the hard linked files have duplicate build-ids, +# it should create "numbered" build-id files. +# This is simply the hello example with one binary hard linked. +AT_SETUP([rpmbuild buildid hardlink alldebug]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --define="_build_id_links alldebug" \ + -ba "${abs_srcdir}"/data/SPECS/hello2ln.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# alldebug not here... +id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# alldebug, so they are all here +test -L "$id_file" && echo "main id in debug package" +test -L "$id_dup_file" && echo "main dup id in debug package" + +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" +], +[0], +[main id in debug package +main dup id in debug package +debug id in debug package +debug dup id in debug package +], +[]) +AT_CLEANUP + +# ------------------------------ +# Check that (copied) files with duplicate build-ids are handled correctly. +# This should create "numbered" build-id files. +# This is simply the hello example with one binary copied. +AT_SETUP([rpmbuild buildid duplicate separate]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# Should create two warnings +rundebug rpmbuild --quiet \ + --define="_build_id_links separate" \ + -ba "${abs_srcdir}"/data/SPECS/hello2cp.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# separate build-ids split... +id_file="./usr/lib/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# separate, so debug ids are here +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" +], +[0], +[warning: Duplicate build-ids +warning: Duplicate build-ids +main id in main package +main dup id in main package +debug id in debug package +debug dup id in debug package +], +[]) +AT_CLEANUP + +# ------------------------------ +# Check that hard linked files are handled correctly. +# Since the hard linked files have duplicate build-ids, +# it should create "numbered" build-id files. +# This is simply the hello example with one binary hard linked. +AT_SETUP([rpmbuild buildid hardlink separate]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --define="_build_id_links separate" \ + -ba "${abs_srcdir}"/data/SPECS/hello2ln.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# separate build-ids split... +id_file="./usr/lib/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# separate, so debug ids are here +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" +], +[0], +[main id in main package +main dup id in main package +debug id in debug package +debug dup id in debug package +], +[]) +AT_CLEANUP + +# ------------------------------ +# Check that (copied) files with duplicate build-ids are handled correctly. +# This should create "numbered" build-id files. +# This is simply the hello example with one binary copied. +AT_SETUP([rpmbuild buildid duplicate compat]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# Should create two warnings +rundebug rpmbuild --quiet \ + --define="_build_id_links compat" \ + -ba "${abs_srcdir}"/data/SPECS/hello2cp.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# compat build-ids split... +id_file="./usr/lib/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# compat, so main (and debug) ids are (also) here +compat_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}" +test -L "$compat_file" && echo "compat id in debug package" +compat_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1" +test -L "$compat_dup_file" && echo "compat dup id in debug package" + +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" + +canon_compat_file=$(readlink -f ${compat_file}) +canon_compat_dup_file=$(readlink -f ${compat_dup_file}) +test "$canon_compat_file" != "$canon_compat_dup_file" \ + || echo "compat id and dup same" +], +[0], +[warning: Duplicate build-ids +warning: Duplicate build-ids +main id in main package +main dup id in main package +compat id in debug package +compat dup id in debug package +debug id in debug package +debug dup id in debug package +], +[]) +AT_CLEANUP + +# ------------------------------ +# Check that hard linked files are handled correctly. +# Since the hard linked files have duplicate build-ids, +# it should create "numbered" build-id files. +# This is simply the hello example with one binary hard linked. +AT_SETUP([rpmbuild buildid hardlink compat]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --define="_build_id_links compat" \ + -ba "${abs_srcdir}"/data/SPECS/hello2ln.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# compat build-ids split... +id_file="./usr/lib/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# compat, so main (and debug) ids are (also) here +compat_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}" +test -L "$compat_file" && echo "compat id in debug package" +compat_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1" +test -L "$compat_dup_file" && echo "compat dup id in debug package" + +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" + +canon_compat_file=$(readlink -f ${compat_file}) +canon_compat_dup_file=$(readlink -f ${compat_dup_file}) +test "$canon_compat_file" != "$canon_compat_dup_file" \ + || echo "compat id and dup same" +], +[0], +[main id in main package +main dup id in main package +compat id in debug package +compat dup id in debug package +debug id in debug package +debug dup id in debug package +], +[]) +AT_CLEANUP + +# ------------------------------ +# Check build-ids are recomputed with unique_build_ids, +# but not with _no_recompute_build_ids +AT_SETUP([rpmbuild buildid recompute]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# Make sure we get debuginfo +export CFLAGS="-g" + +# Unique 1 +rundebug rpmbuild --quiet \ + --define="_unique_build_ids 1" \ + --undefine="_no_recompute_build_ids" \ + -ba "${abs_srcdir}"/data/SPECS/hello.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id1=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# Make sure we generate a new one +rm $hello_file + +# Unique 2 +# Build the "next" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \ + --define="_unique_build_ids 1" \ + --undefine="_no_recompute_build_ids" \ + -ba "${abs_srcdir}"/data/SPECS/hello-r2.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id2=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# Two unique builds should not be equal +if test "$id1" == "$id2"; then + echo "uniques equal"; +else + echo "uniques unequal"; +fi + +# Make sure we generate a new one +rm $hello_file + +# no-recompute 1 +rundebug rpmbuild --quiet \ + --undefine="_unique_build_ids" \ + --undefine="_unique_debug_names" \ + --undefine="_unique_debug_srcs" \ + --define="_no_recompute_build_ids 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id3=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# An unique and no-recompute build should be unequal +if test "$id2" == "$id3"; then + echo "no-recompute unique equal"; +else + echo "no-recompute unique unequal"; +fi + +# Make sure we generate a new one +rm $hello_file + +# no-recompute 2 +# Build the "next" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \ + --undefine="_unique_build_ids" \ + --undefine="_unique_debug_names" \ + --undefine="_unique_debug_srcs" \ + --define="_no_recompute_build_ids 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello-r2.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id4=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# Two no-recompute builds should be equal. Even for different "releases". +if test "$id3" == "$id4"; then + echo "no-recomputes equal"; +else + echo "no-recomputes unequal"; +fi +], +[0], +[uniques unequal +no-recompute unique unequal +no-recomputes equal +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check build-ids are unique between versions/releases +# with _unique_build_ids defined. +AT_SETUP([rpmbuild buildid unique r1 r2]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --define="_unique_build_ids 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id1=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# Make sure we generate a new one +rm $hello_file + +# Build the "next" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \ + --define="_unique_build_ids 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello-r2.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id2=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +if test "$id1" == "$id2"; then echo "equal $id1"; else echo "unequal"; fi +], +[0], +[unequal +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check build-ids are non-unique between versions/releases +# with _unique_build_ids undefined (and exact same sources). +AT_SETUP([rpmbuild buildid non-unique r1 r2]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --undefine="_unique_build_ids" \ + --undefine="_unique_debug_names" \ + --undefine="_unique_debug_srcs" \ + -ba "${abs_srcdir}"/data/SPECS/hello.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id1=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +# Make sure we generate a new one +rm $hello_file + +# Build the "next" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \ + --undefine="_unique_build_ids" \ + --undefine="_unique_debug_names" \ + --undefine="_unique_debug_srcs" \ + -ba "${abs_srcdir}"/data/SPECS/hello-r2.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id2=$(file $hello_file | sed 's/.*, BuildID\[[.*\]]=\([[0-9a-f]]*\),.*/\1/') + +if test "$id1" == "$id2"; then echo "equal"; else echo "unequal $id1 $id2"; fi +], +[0], +[equal +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that build-id directories are created with the right permissions +# even if the spec file sets attrs explicitly. +AT_SETUP([rpmbuild buildid attrs]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links compat" \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello-attr-buildid.spec + +run rpm -qp --qf "[[%{filenames} %{filemodes:perms}\n]]" \ + ${abs_builddir}/testing/build/RPMS/*/test-1.0-1*rpm \ + | grep "build-id d" + +run rpm -qp --qf "[[%{filenames} %{filemodes:perms}\n]]" \ + ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1*rpm \ + | grep "build-id d" +], +[0], +[/usr/lib/.build-id drwxr-xr-x +/usr/lib/debug/.build-id drwxr-xr-x +], +[ignore]) +AT_CLEANUP + +# ------------------------------ +# Check that build-id directories are created with the right attributes +# even if the spec file sets config explicitly. +AT_SETUP([rpmbuild buildid config attrs]) +AT_KEYWORDS([build] [debuginfo] [buildid]) +AT_CHECK([ +rm -rf ${TOPDIR} +AS_MKDIR_P(${TOPDIR}/SOURCES) + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links compat" \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello-config-buildid.spec + +# Should contain one config file. +run rpm -c -qp ${abs_builddir}/testing/build/RPMS/*/test-1.0-1*rpm +# Should not contain config files. +run rpm -c -qp ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1*rpm +], +[0], +[/etc/config.file +], +[ignore]) +AT_CLEANUP diff --git a/tests/rpmconfig.at b/tests/rpmconfig.at index 91c03ba57..87e9310dd 100644 --- a/tests/rpmconfig.at +++ b/tests/rpmconfig.at @@ -18,7 +18,7 @@ runroot rpmbuild --quiet -bb \ /data/SPECS/configtest.spec echo "otherstuff" > "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" runroot rpm -e configtest cat "${cf}.rpmorig" @@ -32,7 +32,7 @@ otherstuff AT_CLEANUP # Install over existing config file -AT_SETUP([install config(noreplace) on existiting file]) +AT_SETUP([install config(noreplace) on existing file]) AT_KEYWORDS([install]) AT_CHECK([ RPMDB_CLEAR @@ -44,19 +44,25 @@ rm -rf "${TOPDIR}" runroot rpmbuild --quiet -bb \ --define "ver 1.0" \ --define "filedata foo" \ + --define "noreplace 1" \ /data/SPECS/configtest.spec echo "otherstuff" > "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" +cat "${cf}.rpmnew" runroot rpm -e configtest -cat "${cf}.rpmorig" +cat "${cf}.rpmsave" +cat "${cf}.rpmnew" ], [0], -[foo +[otherstuff +foo otherstuff +foo ], -[warning: /etc/my.conf saved as /etc/my.conf.rpmorig] +[warning: /etc/my.conf created as /etc/my.conf.rpmnew +warning: /etc/my.conf saved as /etc/my.conf.rpmsave] ) AT_CLEANUP @@ -76,7 +82,7 @@ runroot rpmbuild --quiet -bb \ /data/SPECS/configtest.spec echo "foo" > "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" runroot rpm -e configtest test ! -f "${cf}" @@ -102,7 +108,7 @@ runroot rpmbuild --quiet -bb \ --define "filedata foo" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" runroot rpm -e configtest test ! -f "${cf}" @@ -128,7 +134,7 @@ runroot rpmbuild --quiet -bb \ --define "filedata foo" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${cf}" runroot rpm -e configtest @@ -159,7 +165,7 @@ runroot rpmbuild --quiet -bb \ --define "noreplace 1" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${cf}" runroot rpm -e configtest @@ -192,9 +198,9 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -203,6 +209,34 @@ foo ], []) AT_CLEANUP + +# ------------------------------ +# (Build and) upgrade package with config file, no backup here +AT_SETUP([upgrade unchanged config - touching test]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -Uvv --fsmdebug /build/RPMS/noarch/configtest-2.0-1.noarch.rpm > output.txt 2>&1 +grep -c "touch" output.txt +], +[0], +[1 +], +[]) +AT_CLEANUP # # ------------------------------ # Upgrade package with locally modified config file, unchanged in pkg @@ -222,11 +256,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${cf}" cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -255,9 +289,9 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -285,11 +319,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${RPMTEST}"/etc/my.conf cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" cat "${cf}.rpmsave" ], @@ -321,11 +355,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "foo-2.0" > "${RPMTEST}"/etc/my.conf cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -357,9 +391,9 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -389,11 +423,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${cf}" cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -423,9 +457,9 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -454,11 +488,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${RPMTEST}"/etc/my.conf cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" cat "${cf}.rpmnew" ], @@ -491,11 +525,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "foo-2.0" > "${RPMTEST}"/etc/my.conf cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -529,12 +563,12 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm cat "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -567,14 +601,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${cf}" cat "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -607,12 +641,12 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm cat "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -644,14 +678,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${RPMTEST}"/etc/my.conf cat "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm cat "${cf}" cat "${cf}.rpmsave" ], @@ -687,14 +721,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm cat "${cf}" echo "foo-2.0" > "${RPMTEST}"/etc/my.conf cat "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -729,14 +763,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${RPMTEST}"/etc/my.conf cat "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm cat "${cf}" cat "${cf}.rpmnew" ], @@ -773,14 +807,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm cat "${cf}" echo "foo-2.0" > "${RPMTEST}"/etc/my.conf cat "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm cat "${cf}" ], [0], @@ -815,18 +849,18 @@ done test ! -f "${cf}" && echo OK1 echo "keaton" > "${cf}" cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" runroot rpm -e configtest cat "${cf}" rm -f "${cf}" # post-install config, upgrade, erase -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm test ! -f "${cf}" && echo OK2 echo "buster" > "${cf}" cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" runroot rpm -e configtest cat "${cf}" diff --git a/tests/rpmconfig2.at b/tests/rpmconfig2.at index 04053a1af..5974cb932 100644 --- a/tests/rpmconfig2.at +++ b/tests/rpmconfig2.at @@ -19,7 +19,7 @@ runroot rpmbuild --quiet -bb \ /data/SPECS/configtest.spec ln -s "otherstuff" "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" runroot rpm -e configtest readlink "${cf}.rpmorig" @@ -50,7 +50,7 @@ runroot rpmbuild --quiet -bb \ ln -s "foo" "${cf}" readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" runroot rpm -e configtest test ! -L "${cf}" @@ -78,7 +78,7 @@ runroot rpmbuild --quiet -bb \ --define "filetype link" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" runroot rpm -e configtest test ! -L "${cf}" @@ -105,7 +105,7 @@ runroot rpmbuild --quiet -bb \ --define "filetype link" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" runroot rpm -e configtest @@ -138,9 +138,9 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -151,6 +151,35 @@ foo AT_CLEANUP # +# (Build and) upgrade package with config link, no backup here +AT_SETUP([upgrade unchanged config link - touching test]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -Uvv --fsmdebug /build/RPMS/noarch/configtest-2.0-1.noarch.rpm > output.txt 2>&1 +grep -c "touch" output.txt +], +[0], +[1 +], +[]) +AT_CLEANUP + +# # ------------------------------ # Upgrade package with modified config link, unchanged in pkg. No backup. AT_SETUP([upgrade modified config link]) @@ -170,11 +199,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -204,9 +233,9 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -235,11 +264,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" readlink "${cf}.rpmsave" ], @@ -272,11 +301,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" ln -sf "foo-2.0" "${cf}" readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -309,9 +338,9 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -342,11 +371,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -377,9 +406,9 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -409,11 +438,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" readlink "${cf}.rpmnew" ], @@ -447,11 +476,11 @@ for v in "1.0" "2.0"; do /data/SPECS/configtest.spec done -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" ln -sf "foo-2.0" "${cf}" readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" test ! -L "${cf}.rpmnew" ], @@ -487,12 +516,12 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm readlink "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -526,14 +555,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" readlink "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -567,12 +596,12 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm readlink "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -605,14 +634,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" readlink "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm readlink "${cf}" readlink "${cf}.rpmsave" ], @@ -649,14 +678,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm readlink "${cf}" ln -sf "foo-2.0" "${cf}" readlink "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm readlink "${cf}" ], [0], @@ -692,14 +721,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" readlink "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm readlink "${cf}" readlink "${cf}.rpmnew" ], @@ -737,14 +766,14 @@ for s in "A" "B"; do done runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-1.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm readlink "${cf}" ln -sf "foo-2.0" "${cf}" readlink "${cf}" runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/configtest-B-2.0-1.noarch.rpm + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm readlink "${cf}" test ! -L "${cf}.rpmnew" ], diff --git a/tests/rpmconfig3.at b/tests/rpmconfig3.at index 5a32c0c34..db2e44e17 100644 --- a/tests/rpmconfig3.at +++ b/tests/rpmconfig3.at @@ -25,11 +25,11 @@ runroot rpmbuild --quiet -bb \ --define "noconfig 1" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" -runroot rpm -U --oldpackage "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" ], [0], @@ -63,14 +63,14 @@ runroot rpmbuild --quiet -bb \ --define "noconfig 1" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${cf}" cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" cat "${cf}.rpmsave" -runroot rpm -U --oldpackage "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" ], [0], @@ -107,13 +107,13 @@ runroot rpmbuild --quiet -bb \ --define "noconfig 1" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "bar" > "${cf}" cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" -runroot rpm -U --oldpackage "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" ], [0], @@ -147,11 +147,11 @@ runroot rpmbuild --quiet -bb \ --define "filedata bar" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" -runroot rpm -U --oldpackage "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" ], [0], @@ -184,11 +184,11 @@ runroot rpmbuild --quiet -bb \ --define "filedata bar" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${cf}" cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm readlink "${cf}" cat "${cf}.rpmsave" ], @@ -224,11 +224,11 @@ runroot rpmbuild --quiet -bb \ --define "filedata bar" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm readlink "${cf}" ln -sf "otherstuff" "${cf}" readlink "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm cat "${cf}" readlink "${cf}.rpmsave" ], @@ -263,9 +263,9 @@ runroot rpmbuild --quiet -bb \ --define "filetype dir" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm test -d "${cf}" ], [0], @@ -295,11 +295,11 @@ runroot rpmbuild --quiet -bb \ --define "filetype dir" \ /data/SPECS/configtest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm cat "${cf}" echo "otherstuff" > "${cf}" cat "${cf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/configtest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm test -d "${cf}" cat "${cf}.rpmsave" ], diff --git a/tests/rpmconflict.at b/tests/rpmconflict.at index 90d077d61..ba6b41aab 100644 --- a/tests/rpmconflict.at +++ b/tests/rpmconflict.at @@ -1,6 +1,6 @@ # rpmconflict.at: rpm file conflict tests -AT_BANNER([RPM file conflicts]) +AT_BANNER([RPM implicit file conflicts]) # ------------------------------ # (Build and) install conflicting package (should fail) @@ -18,8 +18,8 @@ for p in "one" "two"; do /data/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 +runroot rpm -U /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm ], [1], [ignore], @@ -35,8 +35,8 @@ RPMDB_CLEAR RPMDB_INIT runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm ], [2], [ignore], @@ -59,8 +59,8 @@ for p in "one" "two"; do /data/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 +runroot rpm -U /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm ], [0], [ignore], @@ -76,8 +76,8 @@ RPMDB_CLEAR RPMDB_INIT runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm ], [0], [ignore], @@ -95,7 +95,7 @@ rm -rf "${TOPDIR}" runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec rm -rf "${RPMTEST}"/opt/mydir -runroot rpm -U "${TOPDIR}"/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm ], [0], [], @@ -115,7 +115,7 @@ runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec rm -rf "${RPMTEST}"/opt/mydir mkdir -p "${RPMTEST}"/opt/mydir/one ln -s one "${RPMTEST}"/opt/mydir/two -runroot rpm -U "${TOPDIR}"/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm ], [1], [], @@ -288,7 +288,7 @@ runroot rpm -U --ignoreos --ignorearch --nodeps \ --define "_transaction_color 3" \ --define "_prefer_color 2" \ /data/RPMS/hello-2.0-1.x86_64.rpm \ - "${TOPDIR}"/RPMS/noarch/hello-script-1.0-1.noarch.rpm + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm ], [2], [], @@ -313,7 +313,7 @@ runroot rpm -U --ignoreos --ignorearch --nodeps \ runroot rpm -U --ignoreos --ignorearch --nodeps \ --define "_transaction_color 3" \ --define "_prefer_color 2" \ - "${TOPDIR}"/RPMS/noarch/hello-script-1.0-1.noarch.rpm + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm ], [1], [], @@ -333,7 +333,7 @@ runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec runroot rpm -U --ignoreos --ignorearch --nodeps \ --define "_transaction_color 3" \ --define "_prefer_color 2" \ - "${TOPDIR}"/RPMS/noarch/hello-script-1.0-1.noarch.rpm + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm runroot rpm -U --ignoreos --ignorearch --nodeps \ --define "_transaction_color 3" \ @@ -361,8 +361,8 @@ runroot rpmbuild --quiet -bb \ runroot rpmbuild --quiet -bb \ --define "rel 2" --with symlink /data/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 +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-2.noarch.rpm ], [2], [], @@ -385,8 +385,8 @@ runroot rpmbuild --quiet -bb \ runroot rpmbuild --quiet -bb \ --define "rel 2" --without symlink /data/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 +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-2.noarch.rpm ], [2], [], @@ -414,8 +414,8 @@ runroot rpmbuild --quiet -bb \ test ! -f "${fn}" && echo OK runroot rpm -U \ - "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm cat "${fn}" runroot rpm -e conflicttwo cat "${fn}" diff --git a/tests/rpmdb.at b/tests/rpmdb.at index 5b10ac67a..e1893c7cd 100644 --- a/tests/rpmdb.at +++ b/tests/rpmdb.at @@ -103,7 +103,7 @@ AT_CLEANUP # ------------------------------ # reinstall a noarch package (with no files) -AT_SETUP([rpm -U --replacepkgs]) +AT_SETUP([rpm -U --replacepkgs 1]) AT_KEYWORDS([rpmdb install]) AT_CHECK([ @@ -124,6 +124,49 @@ runroot rpm -i "${tpkg}" && AT_CLEANUP # ------------------------------ +# reinstall a package with different file policies +AT_SETUP([rpm -U --replacepkgs 2]) +AT_KEYWORDS([rpmdb install]) + +AT_CHECK([ +AT_XFAIL_IF([test $RPM_XFAIL -ne 0]) +RPMDB_CLEAR +RPMDB_INIT + +tpkg="/data/RPMS/hello-2.0-1.i686.rpm" + +runroot rpm -U --nodeps --ignorearch "${tpkg}" && + runroot rpm -U --nodeps --ignorearch --nodocs --replacepkgs "${tpkg}" && + runroot rpm -e hello +test -d "${RPMTEST}"/usr/share/doc/hello-2.0 +], +[1], +[], +[]) +AT_CLEANUP + +# ------------------------------ +# reinstall a package with different file policies +AT_SETUP([rpm --reinstall 1]) +AT_KEYWORDS([rpmdb install]) + +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +tpkg="/data/RPMS/hello-2.0-1.i686.rpm" + +runroot rpm -U --nodeps --ignorearch "${tpkg}" && + runroot rpm --reinstall --nodeps --ignorearch --nodocs "${tpkg}" && + runroot rpm -e hello +test -d "${RPMTEST}"/usr/share/doc/hello-2.0 +], +[1], +[], +[]) +AT_CLEANUP + +# ------------------------------ # install a package into a local rpmdb # * Shall only work with relocation # * Use --ignorearch because we don't know the arch @@ -162,6 +205,44 @@ runroot rpm -i \ AT_CLEANUP +AT_SETUP([rpmdb --rebuilddb]) +AT_KEYWORDS([rpmdb]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +runroot rpm -U --noscripts --nodeps --ignorearch \ + /data/RPMS/hello-1.0-1.i386.rpm +runroot rpm -qa --qf "%{nevra} %{dbinstance}\n" +runroot rpm -U --noscripts --nodeps --ignorearch \ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -qa --qf "%{nevra} %{dbinstance}\n" +runroot rpmdb --rebuilddb +runroot rpm -qa --qf "%{nevra} %{dbinstance}\n" +], +[], +[hello-1.0-1.i386 1 +hello-2.0-1.i686 2 +hello-2.0-1.i686 1 +], +[]) +AT_CLEANUP + +# ------------------------------ +# Attempt to initialize, rebuild and verify a db +AT_SETUP([rpmdb --rebuilddb and verify empty database]) +AT_KEYWORDS([rpmdb]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +runroot rpmdb --rebuilddb +runroot rpmdb --verifydb +], +[0], +[], +[]) +AT_CLEANUP + # ------------------------------ # Install and verify status AT_SETUP([rpm -U and verify status]) @@ -176,7 +257,7 @@ runroot rpmbuild --quiet -bb \ --define "filedata same_stuff" \ /data/SPECS/conflicttest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm runroot rpm -qls conflictstatus ], [0], @@ -197,11 +278,12 @@ rm -rf "${TOPDIR}" runroot rpmbuild --quiet -bb \ /data/SPECS/flangtest.spec -runroot rpm -U --define "_install_langs de:fi" "${TOPDIR}"/RPMS/noarch/flangtest-1.0-1.noarch.rpm +runroot rpm -U --define "_install_langs de:fi" /build/RPMS/noarch/flangtest-1.0-1.noarch.rpm runroot rpm -qls flangtest ], [0], [normal /usr/share/flangtest/de.txt +normal /usr/share/flangtest/empty.txt not installed /usr/share/flangtest/en.txt normal /usr/share/flangtest/fi.txt normal /usr/share/flangtest/none.txt @@ -221,7 +303,7 @@ rm -rf "${TOPDIR}" rm -rf "${RPMTEST}"/opt/* runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm find "${RPMTEST}"/opt | wc -l ], [0], @@ -242,7 +324,7 @@ rm -rf "${TOPDIR}" rm -rf "${RPMTEST}"/opt/* runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm runroot rpm -e selfconflict find "${RPMTEST}"/opt | wc -l ], diff --git a/tests/rpmdeps.at b/tests/rpmdeps.at index 5e828c273..c7f3f91f4 100644 --- a/tests/rpmdeps.at +++ b/tests/rpmdeps.at @@ -16,7 +16,7 @@ runroot rpmbuild --quiet -bb \ --define "reqs deptest-two" \ /data/SPECS/deptest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm ], [1], [], @@ -44,7 +44,7 @@ runroot rpmbuild --quiet -bb \ --define "reqs deptest-one" \ /data/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 -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm ], [0], [], @@ -70,7 +70,7 @@ runroot rpmbuild --quiet -bb \ --define "provs deptest-foo = 1.0" \ /data/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 -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm ], [2], [], @@ -98,7 +98,7 @@ runroot rpmbuild --quiet -bb \ --define "provs deptest-foo = 2.0" \ /data/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 -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm ], [0], [], @@ -123,7 +123,7 @@ runroot rpmbuild --quiet -bb \ --define "pkg two" \ /data/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 -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm ], [2], [], @@ -150,8 +150,8 @@ runroot rpmbuild --quiet -bb \ --define "pkg two" \ /data/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 +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm ], [1], [], @@ -159,6 +159,66 @@ runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm deptest-two < 2.0 conflicts with (installed) deptest-one-1.0-1.noarch ]) AT_CLEANUP + +AT_SETUP([install and verify self-conflicting package]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "provs something" \ + --define "cfls something" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -V --nofiles deptest-one +], +[0], +[], +[]) +AT_CLEANUP + +# explicit file conflicts +AT_SETUP([explicit file conflicts]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "cfls /opt/bar" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U --test \ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -e deptest-one +# XXX FIXME: rpm's problem message for this case is higly bogus. +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -e deptest-two +], +[], +[], +[error: Failed dependencies: + /opt/bar conflicts with deptest-one-1.0-1.noarch +error: Failed dependencies: + /opt/bar conflicts with (installed) deptest-one-1.0-1.noarch +error: Failed dependencies: + /opt/bar conflicts with deptest-one-1.0-1.noarch +]) +AT_CLEANUP # ------------------------------ # AT_SETUP([erase to break dependencies]) @@ -178,7 +238,7 @@ runroot rpmbuild --quiet -bb \ --define "provs deptest-foo = 2.0" \ /data/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 -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm runroot rpm -e deptest-two ], [1], @@ -206,7 +266,7 @@ runroot rpm -U --ignoreos --ignorearch --nodeps \ --define "_prefer_color 2" \ /data/RPMS/hello-2.0-1.i686.rpm \ /data/RPMS/hello-2.0-1.x86_64.rpm \ - "${TOPDIR}"/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm + /build/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm runroot rpm -e hello.x86_64 ], @@ -235,7 +295,7 @@ runroot rpm -U --ignoreos --ignorearch --nodeps \ --define "_prefer_color 2" \ /data/RPMS/hello-2.0-1.i686.rpm \ /data/RPMS/hello-2.0-1.x86_64.rpm \ - "${TOPDIR}"/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm + /build/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm runroot rpm -e hello.i686 ], @@ -243,3 +303,654 @@ runroot rpm -e hello.i686 [], []) AT_CLEANUP + +# ------------------------------ +# +AT_SETUP([unsatisfied WITH require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two with flavor = dekstop)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = server" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + --define "provs flavor = desktop" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +], +[3], +[], +[error: Failed dependencies: + (deptest-two with flavor = dekstop) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([unsatisfied WITH require (rpmdb)]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two with flavor = dekstop)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = server" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + --define "provs flavor = desktop" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +], +[1], +[], +[error: Failed dependencies: + (deptest-two with flavor = dekstop) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([satisfied WITH require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two with flavor = desktop)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = desktop" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([satisfied WITH require (rpmdb)]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two with flavor = desktop)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = desktop" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +# ------------------------------ +# +AT_SETUP([unsatisfied WITHOUT require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two without flavor)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = server" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[2], +[], +[error: Failed dependencies: + (deptest-two without flavor) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([unsatisfied WITHOUT require (rpmdb)]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two without flavor)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = server" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +], +[1], +[], +[error: Failed dependencies: + (deptest-two without flavor) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([satisfied WITHOUT require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two without flavor)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([satisfied WITHOUT require (rpmdb)]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two without flavor)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +# ------------------------------ +# +AT_SETUP([unsatisfied AND require - all missing]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +], +[1], +[], +[error: Failed dependencies: + (deptest-two and deptest-three) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([unsatisfied AND require - first is missing]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +], +[2], +[], +[error: Failed dependencies: + (deptest-two and deptest-three) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([unsatisfied AND require - second is missing]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[2], +[], +[error: Failed dependencies: + (deptest-two and deptest-three) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([satisfied AND require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +# ------------------------------ +# +AT_SETUP([unsatisfied OR require - all missing]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two or deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +], +[1], +[], +[error: Failed dependencies: + (deptest-two or deptest-three) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([satisfied OR require - first is missing]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two or deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([satisfied OR require - second is missing]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two or deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([satisfied OR require - both present]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two or deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +# ------------------------------ +# +AT_SETUP([unsatisfied IF require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +], +[2], +[], +[error: Failed dependencies: + (deptest-two if deptest-three) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([satisfied IF require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([unsatisfied IF-ELSE require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three else deptest-four)" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +], +[1], +[], +[error: Failed dependencies: + (deptest-two if deptest-three else deptest-four) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([satisfied IF-ELSE require - right clause]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three else deptest-four)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg four" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-four-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([satisfied IF-ELSE require - left clause]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three else deptest-four)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +# ------------------------------ +# +AT_SETUP([unsatisfied nested AND-OR require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and (deptest-three or deptest-four))" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[2], +[], +[error: Failed dependencies: + (deptest-two and (deptest-three or deptest-four)) is needed by deptest-one-1.0-1.noarch +]) +AT_CLEANUP + +AT_SETUP([satisfied nested AND-OR require]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and (deptest-three or deptest-four))" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +# ------------------------------ +# +AT_SETUP([satisfied nested AND-IF require - without right clause]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and (deptest-three if deptest-four))" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([satisfied nested AND-IF require - with right clause]) +AT_KEYWORDS([install, boolean]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and (deptest-three if deptest-four))" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg four" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-four-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP diff --git a/tests/rpmgeneral.at b/tests/rpmgeneral.at index eb0d86dda..509277f2c 100644 --- a/tests/rpmgeneral.at +++ b/tests/rpmgeneral.at @@ -62,7 +62,6 @@ CHANGELOGNAME CHANGELOGTEXT CHANGELOGTIME CLASSDICT -COLLECTIONS CONFLICTFLAGS CONFLICTNAME CONFLICTNEVRS @@ -79,10 +78,12 @@ DISTTAG DISTURL DSAHEADER E +ENCODING +ENHANCEFLAGS +ENHANCENAME +ENHANCENEVRS ENHANCES -ENHANCESFLAGS -ENHANCESNAME -ENHANCESVERSION +ENHANCEVERSION EPOCH EPOCHNUM EVR @@ -112,8 +113,20 @@ FILENLINKS FILEPROVIDE FILERDEVS FILEREQUIRE +FILESIGNATURELENGTH +FILESIGNATURES FILESIZES FILESTATES +FILETRIGGERCONDS +FILETRIGGERFLAGS +FILETRIGGERINDEX +FILETRIGGERNAME +FILETRIGGERPRIORITIES +FILETRIGGERSCRIPTFLAGS +FILETRIGGERSCRIPTPROG +FILETRIGGERSCRIPTS +FILETRIGGERTYPE +FILETRIGGERVERSION FILEUSERNAME FILEVERIFYFLAGS FSCONTEXTS @@ -151,7 +164,15 @@ OBSOLETENAME OBSOLETENEVRS OBSOLETES OBSOLETEVERSION +OLDENHANCES +OLDENHANCESFLAGS +OLDENHANCESNAME +OLDENHANCESVERSION OLDFILENAMES +OLDSUGGESTS +OLDSUGGESTSFLAGS +OLDSUGGESTSNAME +OLDSUGGESTSVERSION OPTFLAGS ORDERFLAGS ORDERNAME @@ -168,6 +189,8 @@ PATCHESFLAGS PATCHESNAME PATCHESVERSION PAYLOADCOMPRESSOR +PAYLOADDIGEST +PAYLOADDIGESTALGO PAYLOADFLAGS PAYLOADFORMAT PKGID @@ -203,6 +226,11 @@ PROVIDES PROVIDEVERSION PUBKEYS R +RECOMMENDFLAGS +RECOMMENDNAME +RECOMMENDNEVRS +RECOMMENDS +RECOMMENDVERSION RECONTEXTS RELEASE REMOVETID @@ -214,6 +242,7 @@ REQUIREVERSION RPMVERSION RSAHEADER SHA1HEADER +SHA256HEADER SIGGPG SIGMD5 SIGPGP @@ -223,11 +252,27 @@ SOURCE SOURCEPACKAGE SOURCEPKGID SOURCERPM +SUGGESTFLAGS +SUGGESTNAME +SUGGESTNEVRS SUGGESTS -SUGGESTSFLAGS -SUGGESTSNAME -SUGGESTSVERSION +SUGGESTVERSION SUMMARY +SUPPLEMENTFLAGS +SUPPLEMENTNAME +SUPPLEMENTNEVRS +SUPPLEMENTS +SUPPLEMENTVERSION +TRANSFILETRIGGERCONDS +TRANSFILETRIGGERFLAGS +TRANSFILETRIGGERINDEX +TRANSFILETRIGGERNAME +TRANSFILETRIGGERPRIORITIES +TRANSFILETRIGGERSCRIPTFLAGS +TRANSFILETRIGGERSCRIPTPROG +TRANSFILETRIGGERSCRIPTS +TRANSFILETRIGGERTYPE +TRANSFILETRIGGERVERSION TRIGGERCONDS TRIGGERFLAGS TRIGGERINDEX diff --git a/tests/rpmi.at b/tests/rpmi.at index 04491c841..8357a8cb3 100644 --- a/tests/rpmi.at +++ b/tests/rpmi.at @@ -18,6 +18,180 @@ AT_BANNER([RPM install tests]) +AT_SETUP([rpm -U <manifest>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +echo /data/RPMS/hello-2.0-1.x86_64.rpm > ${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/test.mft +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([rpm -U <manifest notfound 1>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +echo /data/RPMS/hello-2.0-1.x86_64.rpm > ${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/test-not-there.mft +], +[1], +[], +[error: open of /tmp/test-not-there.mft failed: No such file or directory +]) +AT_CLEANUP + +AT_SETUP([rpm -U <manifest notfound 2>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +echo /data/RPMS/hello-not-there-2.0-1.x86_64.rpm > ${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/test.mft +], +[1], +[], +[error: open of /data/RPMS/hello-not-there-2.0-1.x86_64.rpm failed: No such file or directory +]) +AT_CLEANUP + +AT_SETUP([rpm -U <notfound>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /data/RPMS/hello-not-there-2.0-1.x86_64.rpm +], +[1], +[], +[error: open of /data/RPMS/hello-not-there-2.0-1.x86_64.rpm failed: No such file or directory +]) +AT_CLEANUP + +AT_SETUP([rpm -U <unsigned>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /data/RPMS/hello-2.0-1.x86_64.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([rpm -U <signed nokey>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /data/RPMS/hello-2.0-1.x86_64-signed.rpm +], +[0], +[], +[warning: /data/RPMS/hello-2.0-1.x86_64-signed.rpm: Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +]) +AT_CLEANUP + +AT_SETUP([rpm -U <signed>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /data/RPMS/hello-2.0-1.x86_64-signed.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([rpm -U <corrupted signed 1>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=264 count=2 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/${pkg} +], +[1], +[], +[error: /tmp/hello-2.0-1.x86_64-signed.rpm: Header signature: BAD (package tag 268: invalid OpenPGP signature) +error: /tmp/hello-2.0-1.x86_64-signed.rpm cannot be installed +]) +AT_CLEANUP + +AT_SETUP([rpm -U <corrupted signed 2>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/${pkg} +], +[1], +[], +[error: /tmp/hello-2.0-1.x86_64-signed.rpm: Header V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD +error: /tmp/hello-2.0-1.x86_64-signed.rpm: Header SHA1 digest: BAD (Expected 5cd9874c510b67b44483f9e382a1649ef7743bac != 4261b2c1eb861a4152c2239bce20bfbcaa8971ba) +error: /tmp/hello-2.0-1.x86_64-signed.rpm: Header SHA256 digest: BAD (Expected ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9 != 29fdfe92782fb0470a9a164a6c94af87d3b138c63b39d4c30e0223ca1202ba82) +error: /tmp/hello-2.0-1.x86_64-signed.rpm cannot be installed +]) +AT_CLEANUP + +# This is more about documenting current behavior than what it *should* do +# when encountering corrupted payload. +AT_SETUP([rpm -U <corrupted signed 3>]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=7788 count=6 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/${pkg} +], +[1], +[], +[warning: /tmp/hello-2.0-1.x86_64-signed.rpm: Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +error: unpacking of archive failed: cpio: Bad magic +error: hello-2.0-1.x86_64: install failed +]) +AT_CLEANUP + # ------------------------------ # Check if rpm -U *.src.rpm works AT_SETUP([rpm -U *.src.rpm]) @@ -111,8 +285,8 @@ for v in "1.0" "2.0"; do /data/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 -U /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm runroot rpm -q versiontest ], [0], @@ -127,8 +301,8 @@ AT_CHECK([ RPMDB_CLEAR RPMDB_INIT -runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm -runroot rpm -U "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm ], [2], [], @@ -142,8 +316,8 @@ AT_CHECK([ RPMDB_CLEAR RPMDB_INIT -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 -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm runroot rpm -q versiontest ], [0], @@ -159,8 +333,8 @@ RPMDB_CLEAR RPMDB_INIT runroot rpm -Uv \ - "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm runroot rpm -q versiontest ], [0], @@ -179,8 +353,8 @@ RPMDB_CLEAR RPMDB_INIT runroot rpm -Uv \ - "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm \ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm runroot rpm -q versiontest ], [0], @@ -208,8 +382,8 @@ runroot rpmbuild --quiet -bb \ runroot rpm -Uv \ - "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm runroot rpm -q deptest-one ], [0], @@ -237,8 +411,8 @@ runroot rpmbuild --quiet -bb \ runroot rpm -Uv \ - "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm runroot rpm -q deptest-one ], [0], @@ -257,8 +431,8 @@ RPMDB_CLEAR RPMDB_INIT runroot rpm -i \ - "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/versiontest-2.0-1.noarch.rpm + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm runroot rpm -q versiontest ], [0], @@ -276,8 +450,8 @@ RPMDB_CLEAR RPMDB_INIT runroot rpm -i \ - "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ - "${TOPDIR}"/RPMS/noarch/versiontest-1.0-1.noarch.rpm + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm runroot rpm -q versiontest ], [0], @@ -297,7 +471,7 @@ RPMDB_INIT runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec runroot rpm -U --test --ignoreos --relocate /usr=/opt \ - "${TOPDIR}"/RPMS/noarch/hello-script-1.0-1.noarch.rpm + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm ], [1], [], @@ -314,9 +488,44 @@ RPMDB_INIT runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec runroot rpm -U --test --ignoreos --badreloc --relocate /usr=/opt \ - "${TOPDIR}"/RPMS/noarch/hello-script-1.0-1.noarch.rpm + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +AT_SETUP([rpm -i with/without --excludedocs]) +AT_KEYWORDS([install excludedocs]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +runroot rpmbuild --quiet -bb /data/SPECS/testdoc.spec + +runroot rpm -i --excludedocs \ + /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm + +RPM_DOCDIR=$(runroot rpm --eval '%_defaultdocdir') +RPM_DATADIR=$(runroot rpm --eval '%_datadir') + +test ! -e ${RPMTEST}${RPM_DOCDIR}/testdoc || exit 1 +test -e ${RPMTEST}${RPM_DATADIR}/testdoc/nodoc || exit 1 + +runroot rpm -e testdoc + +runroot rpm -i \ + /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm +test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/documentation1 || exit 1 +test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/documentation2 || exit 1 +test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/examples/example1 || exit 1 +test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/examples/example2 || exit 1 +test -e ${RPMTEST}${RPM_DATADIR}/testdoc/nodoc || exit 1 + +runroot rpm -e testdoc ], [0], [], []) AT_CLEANUP + diff --git a/tests/rpmio.at b/tests/rpmio.at new file mode 100644 index 000000000..46d713b4c --- /dev/null +++ b/tests/rpmio.at @@ -0,0 +1,50 @@ +# rpmio.at: Misc (librpm)io tests + +AT_BANNER([I/O]) + +# test too unstable for production +#AT_SETUP([SIGPIPE from --pipe]) +#AT_KEYWORDS([signals]) +#AT_CHECK([ +#RPMDB_CLEAR +#RPMDB_INIT +# +#runroot rpmbuild --quiet --with manyfiles -bb /data/SPECS/sigpipe.spec +#runroot rpm -qpl /build/RPMS/noarch/sigpipe-1.0-1.noarch.rpm --pipe "cat" | head -1 +#], +#[0], +#[/opt/sigpipe/data +#], +#[]) +#AT_CLEANUP + +AT_SETUP([SIGPIPE from install scriptlet]) +AT_KEYWORDS([signals]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +runroot rpmbuild --quiet -bb /data/SPECS/sigpipe.spec +runroot rpm -U --nodeps /build/RPMS/noarch/sigpipe-1.0-1.noarch.rpm +], +[0], +[], +[]) +AT_CLEANUP + +# XXX TODO: test for RhBug:471591 too, but needs a simpler reproducer + +# test too unstable for production +#AT_SETUP([SIGPIPE in build scriptlet]) +#AT_KEYWORDS([signals]) +#AT_CHECK([ +#RPMDB_CLEAR +#RPMDB_INIT +# +#run rpmbuild --quiet --with buildpipe -bb "${RPMDATA}/SPECS/sigpipe.spec" +#], +#[0], +#[], +#[]) +#AT_CLEANUP + diff --git a/tests/rpmmacro.at b/tests/rpmmacro.at index 50545a17a..6352a28bc 100644 --- a/tests/rpmmacro.at +++ b/tests/rpmmacro.at @@ -13,6 +13,45 @@ runroot rpm --define "this that" --eval '%{this}' ]) AT_CLEANUP +# ------------------------------ +AT_SETUP([invalid rpm --eval]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm --eval '%define _ that' +], +[1], +[], +[error: Macro %_ has illegal name (%define) +]) +AT_CLEANUP + +# ------------------------------ +AT_SETUP([invalid rpm --define]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm --define "_ that" +], +[1], +[], +[error: Macro %_ has illegal name (%define) +]) +AT_CLEANUP + +AT_SETUP([rpm --undefine]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm --define "this that" --eval '1. %{this}' --undefine 'this' --eval '2. %{this'} +runroot rpm --eval '1. %{this}' --define "this that" --eval '2. %{this}' --undefine 'this' --eval '3. %{this'} +], +[0], +[1. that +2. %{this} +1. %{this} +2. that +3. %{this} +]) +AT_CLEANUP + AT_SETUP([simple true conditional rpm --eval]) AT_KEYWORDS([macros]) AT_CHECK([ @@ -33,6 +72,121 @@ runroot rpm --define "this that" --eval '%{?that}' ]) AT_CLEANUP +AT_SETUP([nested macro in name]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm --define "this that" --define "that_that foo" --eval '%{expand:%{%{this}_that}}' +], +[0], +[foo +]) +AT_CLEANUP + +AT_SETUP([parametrized macro 1]) +AT_KEYWORDS([macros]) +AT_CHECK([ +cat << EOF > ${abs_builddir}/testing/mtest +%bar() bar +%foo()\\ +%bar\\ +foo 1\\ +%{bar}\\ +foo 2\\ +%bar x\\ +foo 3\\ +%{bar x}\\ +foo 4\\ +%bar \\ +foo 5 +EOF + +runroot rpm --eval '%{load:mtest}%{foo}' +], +[0], +[ +bar +foo 1 +bar +foo 2 +bar +foo 3 +bar +foo 4 +bar +foo 5 +], +[]) +AT_CLEANUP + +AT_SETUP([parametrized macro 2]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm \ + --define '%bar() "Bar %#: %{?1} %{?2}"' \ + --define '%foo() "Foo %#: %{?1} %{?2}" %bar a' \ + --eval '%foo 1 2' +], +[0], +["Foo 2: 1 2" "Bar 1: a " +]) +AT_CLEANUP + +AT_SETUP([parametrized macro 3]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm \ + --define '%foo() 1:%1 2:%2' \ + --eval '%foo %nil bar' +], +[0], +[1:bar 2:%2 +]) +AT_CLEANUP + +AT_SETUP([parametrized macro 4]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm \ + --define '%bar yyy' \ + --define '%foo() %1' \ + --eval '%foo %bar' \ + --eval '%foo %%bar' +], +[0], +[yyy +%bar +]) +AT_CLEANUP + +AT_SETUP([parametrized macro 5]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm \ + --define '%foo() %#:%{?1:"%1"}%{?2: "%2"}' \ + --define 'bar zzz' \ + --eval '%foo 1' \ + --eval '%foo 2 ' \ + --eval '%foo 1 2' \ + --eval '%foo %{nil}' \ + --eval '%foo %{nil} xx' \ + --eval '%foo %{bar} xx' \ + --eval '%foo %{quote: 2 3 5} %{quote:%{nil}}' \ + --eval '%foo x%{quote:y}z 123' \ + --eval '%foo x%{quote:%{nil}}z' \ +], +[0], +[1:"1" +1:"2" +2:"1" "2" +0: +1:"xx" +2:"zzz" "xx" +2:" 2 3 5" "" +2:"xyz" "123" +1:"xz" +]) +AT_CLEANUP + AT_SETUP([uncompress macro]) AT_KEYWORDS([macros]) AT_CHECK([ @@ -56,6 +210,17 @@ runroot rpm \ ]) AT_CLEANUP +AT_SETUP([shrink macro]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm \ + --eval "%{shrink: h e l lo }" +], +[0], +[h e l lo +]) +AT_CLEANUP + AT_SETUP([suffix macro]) AT_KEYWORDS([macros]) AT_CHECK([ @@ -126,9 +291,133 @@ AT_CHECK([ runroot rpm \ --eval '%{lua: os.exit()}))}' ], +[1], +[], +[error: lua script failed: [[string "<lua>"]]:1: exit not permitted in this context] +) +AT_CLEANUP + +AT_SETUP([%define + %undefine in nested levels 1]) +AT_KEYWORDS([macros define undefine]) +AT_CHECK([ +# basic %define in nested scoping level +runroot rpm \ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand:%undefine xxx} %{echo:%xxx}' \ + --eval .'%foo'. +], +[0], +[1 +%xxx +. . +]) +AT_CLEANUP + +AT_SETUP([%define + %undefine in nested levels 2]) +AT_KEYWORDS([macros define]) +AT_CHECK([ +# %define macro once in a nested scope +runroot rpm \ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx}' \ + --eval .'%foo'. \ + --eval '%xxx' +], +[0], +[1 +. . +%xxx +]) +AT_CLEANUP + +AT_SETUP([%define + %undefine in nested levels 3]) +AT_KEYWORDS([macros define]) +AT_CHECK([ +AT_XFAIL_IF([test $RPM_XFAIL -ne 0]) +# %define macro twice in a nested scope +runroot rpm \ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand: %define xxx 2} %{echo:%xxx}' \ + --eval .'%foo'. \ + --eval '%xxx' +], +[0], +[1 +2 +. . +%xxx +]) +AT_CLEANUP + +AT_SETUP([%define + %undefine in nested levels 4]) +AT_KEYWORDS([macros define global]) +AT_CHECK([ +AT_XFAIL_IF([test $RPM_XFAIL -ne 0]) +# %define in a nested level covered by %global +runroot rpm \ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand: %global xxx 2} %{echo:%xxx}' \ + --eval .'%foo'. \ + --eval '%xxx' \ + --eval .'%undefine xxx'. \ + --eval '%xxx' +], +[0], +[1 +2 +. . +2 +.. +%xxx +]) +AT_CLEANUP + +AT_SETUP([%define in conditional macro]) +AT_KEYWORDS([macros]) +AT_CHECK([ +runroot rpm \ + --define 'dofoo() true'\ + --eval '.%{!?foo: %define foo bar}.'\ + --eval '%foo' \ + --eval '%dofoo'\ + --eval '%foo' +], +[0], +[. . +bar +true +bar +]) +AT_CLEANUP + +AT_SETUP([%verbose negative test]) +AT_KEYWORDS([macros verbose]) +AT_CHECK([ +runroot rpm \ + --eval '%{verbose:%{echo:is verbose}}' \ + --eval '%{verbose:is verbose text}'\ + --eval '%{!verbose:%{echo:is not verbose}}'\ + --eval '%{!verbose:is not verbose text}' +], [0], [ + +is not verbose + +is not verbose text +]) +AT_CLEANUP + +AT_SETUP([%verbose positive test]) +AT_KEYWORDS([macros verbose]) +AT_CHECK([ +runroot rpm -v \ + --eval '%{!verbose:%{echo:is not verbose}}' \ + --eval '%{!verbose:is not verbose text}'\ + --eval '%{verbose:%{echo:is verbose}}'\ + --eval '%{verbose:is verbose text}' ], -[error: lua script failed: [[string "<lua>"]]:1: exit not permitted in this context] -) +[0], +[ + +is verbose + +is verbose text +]) AT_CLEANUP diff --git a/tests/rpmorder.at b/tests/rpmorder.at new file mode 100644 index 000000000..5eadc279f --- /dev/null +++ b/tests/rpmorder.at @@ -0,0 +1,45 @@ +AT_BANNER([RPM install/erase ordering]) + +AT_SETUP([basic install/erase order 1]) +AT_KEYWORDS([install erase order]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-two" \ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "reqs deptest-three" \ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +echo INSTALL: +runroot rpm -Uv --justdb \ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +echo ERASE: +runroot rpm -ev --justdb \ + deptest-three \ + deptest-one \ + deptest-two +], +[0], +[INSTALL: +Preparing packages... +deptest-three-1.0-1.noarch +deptest-two-1.0-1.noarch +deptest-one-1.0-1.noarch +ERASE: +Preparing packages... +deptest-one-1.0-1.noarch +deptest-two-1.0-1.noarch +deptest-three-1.0-1.noarch +], +[]) +AT_CLEANUP diff --git a/tests/rpmpython.at b/tests/rpmpython.at index 1ccbb7070..3a974eaf8 100644 --- a/tests/rpmpython.at +++ b/tests/rpmpython.at @@ -53,8 +53,8 @@ for iot in [ 'fpio', 'fdio', 'ufdio', 'gzdio' ]: fd = rpm.fd(fn, 'r', iot) rdata = fd.read() if rdata != data: - myprint('%s read fail (got %d bytes)' % (iot, len(rdata), rdata)) - # compressed io types cant seek + myprint('%s read fail (got %d bytes)\n%s' % (iot, len(rdata), rdata)) + # compressed io types can't seek if iot == 'ufdio': fd.seek(0) else: @@ -134,6 +134,39 @@ myprint(h['arch']) [ppc64] ) +RPMPY_TEST([reading a signed package file 1],[ +ts = rpm.ts() +# avoid rpmlog spew with absolute path to package +sink = open('/dev/null', 'w') +rpm.setLogFile(sink) +try: + h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-2.0-1.x86_64-signed.rpm') + myprint(h['arch']) +except rpm.error, e: + myprint(e) +], +[public key not available +], +) + +RPMPY_TEST([reading a signed package file 2],[ + +keydata = open('${RPMDATA}/keys/rpm.org-rsa-2048-test.pub').read() +pubkey = rpm.pubkey(keydata) +keyring = rpm.keyring() +keyring.addKey(pubkey) + +ts = rpm.ts() +ts.setKeyring(keyring) +try: + h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-2.0-1.x86_64-signed.rpm') + myprint(h['arch']) +except rpm.error, e: + myprint(e) +], +[x86_64] +) + RPMPY_TEST([add package to transaction],[ ts = rpm.ts() ts.addInstall('${RPMDATA}/RPMS/foo-1.0-1.noarch.rpm', 'u') @@ -197,6 +230,33 @@ runroot rpm -i \ RPMPY_CHECK([ ts = rpm.ts() +ix = 0 +mi = ts.dbMatch() +mi.pattern('name', rpm.RPMMIRE_STRCMP, 'hello') +for h in mi: + ix = h['dbinstance'] + break +del mi +for h in ts.dbMatch('packages', ix): + myprint(h['nevra']) +], +[hello-2.0-1.i686 +], +[]) + +RPMPY_CHECK([ +ts = rpm.ts() +mi = ts.dbMatch() +mi.pattern('name', rpm.RPMMIRE_DEFAULT, 'f*') +for h in mi: + myprint(h['nevra']) +], +[foo-1.0-1.noarch +], +[]) + +RPMPY_CHECK([ +ts = rpm.ts() for h in ts.dbMatch('name'): myprint(h['nevra']) ], @@ -233,7 +293,7 @@ for h in ts.dbMatch('basenames', '/usr/share/doc/hello-2.0/FAQ'): []) RPMPY_CHECK([ ts = rpm.ts() -for di in ts.dbIndex('obsoletes'): +for di in sorted(ts.dbIndex('obsoletes')): myprint(di) ], [howdy @@ -242,7 +302,7 @@ for di in ts.dbIndex('obsoletes'): RPMPY_CHECK([ ts = rpm.ts() -for di in ts.dbIndex('provides'): +for di in sorted(ts.dbIndex('provides')): myprint(di) ], [foo @@ -297,3 +357,73 @@ for f in fi: ], []) +RPMPY_TEST([string pool 1],[ +p = rpm.strpool() +for s in ['foo', 'bar', 'foo', 'zoo']: + p.str2id(s) +myprint('%s' % len(p)) +for i in range(1, len(p)+1): + myprint('%s: %s' % (i, p[i])) +], +[3 +1: foo +2: bar +3: zoo +], +[]) + +RPMPY_TEST([string pool 2],[ +p = rpm.strpool() +d1 = rpm.ds(('foo', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +d2 = rpm.ds(('bar', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +d3 = rpm.ds(('bar', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +myprint('%s' % len(p)) +del p +myprint(d1.DNEVR()) +myprint(d2.DNEVR()) +myprint(d3.DNEVR()) +], +[3 +P foo = 2.0 +P bar = 2.0 +P bar = 2.0 +], +[]) + +RPMPY_TEST([archive 1],[ +import hashlib +ts = rpm.ts() +fd = rpm.fd.open('${RPMDATA}/SRPMS/hello-1.0-1.src.rpm') +h = ts.hdrFromFdno(fd) +payload = rpm.fd.open(fd, flags=h['payloadcompressor']) +files = rpm.files(h) +archive = files.archive(payload) +for f in archive: + if not f.fflags & rpm.RPMFILE_SPECFILE: + continue + spec = archive.read() + hash = hashlib.md5(spec) + if f.digest != hash.hexdigest(): + myprint('%s should be %s' % (hash.hexdigest(), f.digest)) + break +], +[], +[]) + +RPMPY_TEST([header unload],[ +ts = rpm.ts() +h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-2.0-1.i686.rpm') +# Add some garbage to header to make it non-sorted +h['installtime'] = 0 +# RhBug:1061730 causes export of non-sorted header to be larger than it should +len1 = len(h.unload()) +# Accessing the header before export forces sorting to take place even on +# buggy versions +t = h['installtime'] +len2 = len(h.unload()) +myprint(len1 == len2) +], +[True +], +[]) + diff --git a/tests/rpmquery.at b/tests/rpmquery.at index 5a7470f7e..1ca8adf00 100644 --- a/tests/rpmquery.at +++ b/tests/rpmquery.at @@ -238,6 +238,19 @@ runroot rpm \ []) AT_CLEANUP +AT_SETUP([pgpsig extension query]) +AT_KEYWORDS([query signature]) +AT_CHECK([ +runroot rpm \ + --queryformat="%{rsaheader:pgpsig}" \ + -qp /data/RPMS/hello-2.0-1.x86_64-signed.rpm +], +[0], +[RSA/SHA256, Thu Apr 6 13:02:33 2017, Key ID 4344591e1964c5fc], +[warning: /data/RPMS/hello-2.0-1.x86_64-signed.rpm: Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +]) +AT_CLEANUP + # ------------------------------ AT_SETUP([integer array perms format query]) AT_KEYWORDS([query]) @@ -307,11 +320,41 @@ runroot rpm \ AT_CLEANUP # ------------------------------ -AT_SETUP([different sizes arrays query]) +AT_SETUP([different sizes arrays query 1]) +AT_KEYWORDS([query]) +AT_CHECK([ +runroot rpm \ + --queryformat="[[%{basenames} %{changelogname}]\n]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm +], +[0], +[], +[error: incorrect format: array iterator used with different sized arrays +]) +AT_CLEANUP + +# ------------------------------ +# This is succeeds because there happens to be exactly one changelog entry +# so the size matches with name. +AT_SETUP([different sizes arrays query 2]) +AT_KEYWORDS([query]) +AT_CHECK([ +runroot rpm \ + --queryformat="[[%{name} %{changelogtime}]\n]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm +], +[0], +[hello 908877600 +], +[]) +AT_CLEANUP + +# ------------------------------ +AT_SETUP([different sizes arrays query 3]) AT_KEYWORDS([query]) AT_CHECK([ runroot rpm \ - --queryformat="[[%{basenames} %{changelogname}]]" \ + --queryformat="[[%{name} %{basenames}]\n]" \ -qp /data/RPMS/hello-1.0-1.i386.rpm ], [0], @@ -321,6 +364,22 @@ runroot rpm \ AT_CLEANUP # ------------------------------ +AT_SETUP([different sizes arrays query 4]) +AT_KEYWORDS([query]) +AT_CHECK([ +runroot rpm \ + --queryformat="[[%{=name} %{basenames}\n]]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm +], +[0], +[hello hello +hello hello-1.0 +hello FAQ +], +[]) + +AT_CLEANUP +# ------------------------------ AT_SETUP([non-existent string tag]) AT_KEYWORDS([query]) AT_CHECK([ @@ -369,7 +428,7 @@ runroot rpm \ ], [0], [], -[error: incorrect format: unknown tag +[error: incorrect format: unknown tag: "notag" ]) AT_CLEANUP @@ -399,3 +458,355 @@ runroot rpm \ [error: incorrect format: invalid field width ]) AT_CLEANUP + +AT_SETUP([xml format]) +AT_KEYWORDS([query]) +AT_CHECK([ +runroot rpm -qp --xml data/RPMS/hello-2.0-1.x86_64.rpm +], +[0], +[<rpmHeader> + <rpmTag name="Headeri18ntable"> + <string>C</string> + </rpmTag> + <rpmTag name="Sigsize"> + <integer>5411</integer> + </rpmTag> + <rpmTag name="Sigmd5"> + <base64>E3yh2LNcygKhhUujAcVDLg== +</base64> + </rpmTag> + <rpmTag name="Sha1header"> + <string>5cd9874c510b67b44483f9e382a1649ef7743bac</string> + </rpmTag> + <rpmTag name="Sha256header"> + <string>ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9</string> + </rpmTag> + <rpmTag name="Name"> + <string>hello</string> + </rpmTag> + <rpmTag name="Version"> + <string>2.0</string> + </rpmTag> + <rpmTag name="Release"> + <string>1</string> + </rpmTag> + <rpmTag name="Summary"> + <string>hello -- hello, world rpm</string> + </rpmTag> + <rpmTag name="Description"> + <string>Simple rpm demonstration.</string> + </rpmTag> + <rpmTag name="Buildtime"> + <integer>1227355200</integer> + </rpmTag> + <rpmTag name="Buildhost"> + <string>localhost</string> + </rpmTag> + <rpmTag name="Size"> + <integer>7243</integer> + </rpmTag> + <rpmTag name="License"> + <string>GPL</string> + </rpmTag> + <rpmTag name="Group"> + <string>Testing</string> + </rpmTag> + <rpmTag name="Os"> + <string>linux</string> + </rpmTag> + <rpmTag name="Arch"> + <string>x86_64</string> + </rpmTag> + <rpmTag name="Filesizes"> + <integer>7120</integer> + <integer>4096</integer> + <integer>48</integer> + <integer>36</integer> + <integer>39</integer> + </rpmTag> + <rpmTag name="Filemodes"> + <integer>33257</integer> + <integer>16877</integer> + <integer>33188</integer> + <integer>33188</integer> + <integer>33188</integer> + </rpmTag> + <rpmTag name="Filerdevs"> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + </rpmTag> + <rpmTag name="Filemtimes"> + <integer>1489670606</integer> + <integer>1489670606</integer> + <integer>908894882</integer> + <integer>908895030</integer> + <integer>908884468</integer> + </rpmTag> + <rpmTag name="Filedigests"> + <string>c89fa87aeb1143969c0b6be9334b21d932f77f74e8f60120b5de316406369cf0</string> + <string/> + <string>fac3b28492ecdc16da172a6f1a432ceed356ca4d9248157b2a962b395e37b3b0</string> + <string>678b87e217a415f05e43460e2c7b668245b412e2b4f18a75aa7399d9774ed0b4</string> + <string>d63fdc6c986106f57230f217d36b2395d83ecf491d2b7187af714dc8db9629e9</string> + </rpmTag> + <rpmTag name="Filelinktos"> + <string/> + <string/> + <string/> + <string/> + <string/> + </rpmTag> + <rpmTag name="Fileflags"> + <integer>0</integer> + <integer>0</integer> + <integer>2</integer> + <integer>2</integer> + <integer>2</integer> + </rpmTag> + <rpmTag name="Fileusername"> + <string>root</string> + <string>root</string> + <string>root</string> + <string>root</string> + <string>root</string> + </rpmTag> + <rpmTag name="Filegroupname"> + <string>root</string> + <string>root</string> + <string>root</string> + <string>root</string> + <string>root</string> + </rpmTag> + <rpmTag name="Sourcerpm"> + <string>hello-2.0-1.src.rpm</string> + </rpmTag> + <rpmTag name="Fileverifyflags"> + <integer>4294967295</integer> + <integer>0</integer> + <integer>4294967295</integer> + <integer>4294967295</integer> + <integer>4294967295</integer> + </rpmTag> + <rpmTag name="Archivesize"> + <integer>8060</integer> + </rpmTag> + <rpmTag name="Providename"> + <string>hello</string> + <string>hello(x86-64)</string> + </rpmTag> + <rpmTag name="Requireflags"> + <integer>16384</integer> + <integer>16384</integer> + <integer>16777226</integer> + <integer>16777226</integer> + <integer>16777226</integer> + <integer>16384</integer> + </rpmTag> + <rpmTag name="Requirename"> + <string>libc.so.6()(64bit)</string> + <string>libc.so.6(GLIBC_2.2.5)(64bit)</string> + <string>rpmlib(CompressedFileNames)</string> + <string>rpmlib(FileDigests)</string> + <string>rpmlib(PayloadFilesHavePrefix)</string> + <string>rtld(GNU_HASH)</string> + </rpmTag> + <rpmTag name="Requireversion"> + <string/> + <string/> + <string>3.0.4-1</string> + <string>4.6.0-1</string> + <string>4.0-1</string> + <string/> + </rpmTag> + <rpmTag name="Rpmversion"> + <string>4.13.90</string> + </rpmTag> + <rpmTag name="Changelogtime"> + <integer>1227355200</integer> + <integer>908884800</integer> + </rpmTag> + <rpmTag name="Changelogname"> + <string>Panu Matilainen <pmatilai@redhat.com></string> + <string>Jeff Johnson <jbj@redhat.com></string> + </rpmTag> + <rpmTag name="Changelogtext"> + <string>- updated version</string> + <string>- create.</string> + </rpmTag> + <rpmTag name="Filedevices"> + <integer>1</integer> + <integer>1</integer> + <integer>1</integer> + <integer>1</integer> + <integer>1</integer> + </rpmTag> + <rpmTag name="Fileinodes"> + <integer>1</integer> + <integer>2</integer> + <integer>3</integer> + <integer>4</integer> + <integer>5</integer> + </rpmTag> + <rpmTag name="Filelangs"> + <string/> + <string/> + <string/> + <string/> + <string/> + </rpmTag> + <rpmTag name="Prefixes"> + <string>/usr</string> + </rpmTag> + <rpmTag name="Provideflags"> + <integer>8</integer> + <integer>8</integer> + </rpmTag> + <rpmTag name="Provideversion"> + <string>2.0-1</string> + <string>2.0-1</string> + </rpmTag> + <rpmTag name="Dirindexes"> + <integer>0</integer> + <integer>1</integer> + <integer>2</integer> + <integer>2</integer> + <integer>2</integer> + </rpmTag> + <rpmTag name="Basenames"> + <string>hello</string> + <string>hello-2.0</string> + <string>COPYING</string> + <string>FAQ</string> + <string>README</string> + </rpmTag> + <rpmTag name="Dirnames"> + <string>/usr/bin/</string> + <string>/usr/share/doc/</string> + <string>/usr/share/doc/hello-2.0/</string> + </rpmTag> + <rpmTag name="Optflags"> + <string>-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic</string> + </rpmTag> + <rpmTag name="Payloadformat"> + <string>cpio</string> + </rpmTag> + <rpmTag name="Payloadcompressor"> + <string>gzip</string> + </rpmTag> + <rpmTag name="Payloadflags"> + <string>9</string> + </rpmTag> + <rpmTag name="Platform"> + <string>x86_64-redhat-linux-gnu</string> + </rpmTag> + <rpmTag name="Filecolors"> + <integer>2</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + </rpmTag> + <rpmTag name="Fileclass"> + <integer>0</integer> + <integer>1</integer> + <integer>2</integer> + <integer>2</integer> + <integer>2</integer> + </rpmTag> + <rpmTag name="Classdict"> + <string>ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[[sha1]]=775fdcb927e4300adbe83cfacec3cfeb1f63fe17, stripped</string> + <string>directory</string> + <string>ASCII text</string> + </rpmTag> + <rpmTag name="Filedependsx"> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + </rpmTag> + <rpmTag name="Filedependsn"> + <integer>3</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + </rpmTag> + <rpmTag name="Dependsdict"> + <integer>1375731713</integer> + <integer>1375731712</integer> + <integer>1375731717</integer> + </rpmTag> + <rpmTag name="Filedigestalgo"> + <integer>8</integer> + </rpmTag> + <rpmTag name="Encoding"> + <string>utf-8</string> + </rpmTag> + <rpmTag name="Payloaddigest"> + <string>84a7338287bf19715c4eed0243f5cdb447eeb0ade37b2af718d4060aefca2f7c</string> + </rpmTag> + <rpmTag name="Payloaddigestalgo"> + <integer>8</integer> + </rpmTag> +</rpmHeader> +], +[]) +AT_CLEANUP + +AT_SETUP([query file attribute filtering]) +AT_KEYWORDS([query]) +AT_CHECK([ +runroot rpmbuild -bb --quiet \ + /data/SPECS/vattrtest.spec + +pkg="/build/RPMS/noarch/vattrtest-1.0-1.noarch.rpm" +cmd="rpm -qpl" +for filter in --noconfig --noghost --noartifact -A -c -d -L; do + echo ${filter} + runroot ${cmd} ${filter} ${pkg} +done +], +[0], +[--noconfig +/opt/vattrtest +/opt/vattrtest/a +/opt/vattrtest/d +/opt/vattrtest/g +/opt/vattrtest/l +/opt/vattrtest/m +/opt/vattrtest/r +--noghost +/opt/vattrtest +/opt/vattrtest/a +/opt/vattrtest/c +/opt/vattrtest/cn +/opt/vattrtest/d +/opt/vattrtest/l +/opt/vattrtest/m +/opt/vattrtest/r +--noartifact +/opt/vattrtest +/opt/vattrtest/c +/opt/vattrtest/cn +/opt/vattrtest/d +/opt/vattrtest/g +/opt/vattrtest/l +/opt/vattrtest/m +/opt/vattrtest/r +-A +/opt/vattrtest/a +-c +/opt/vattrtest/c +/opt/vattrtest/cn +-d +/opt/vattrtest/d +-L +/opt/vattrtest/l +], +[]) +AT_CLEANUP diff --git a/tests/rpmreplace.at b/tests/rpmreplace.at index cdc8d03d9..6f0444bb7 100644 --- a/tests/rpmreplace.at +++ b/tests/rpmreplace.at @@ -22,11 +22,11 @@ runroot rpmbuild --quiet -bb \ --define "filedata bar" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm cat "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm cat "${tf}" -runroot rpm -U --oldpackage "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm cat "${tf}" ], [0], @@ -58,11 +58,11 @@ runroot rpmbuild --quiet -bb \ --define "filedata stuff" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm cat "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm readlink "${tf}" -runroot rpm -U --oldpackage "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm cat "${tf}" ], [0], @@ -94,11 +94,11 @@ runroot rpmbuild --quiet -bb \ --define "filedata goo" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm cat "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm readlink "${tf}" -runroot rpm -U --oldpackage "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm cat "${tf}" ], [0], @@ -130,9 +130,9 @@ runroot rpmbuild --quiet -bb \ --define "filedata stuff" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm readlink "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm readlink "${tf}" ], [0], @@ -163,9 +163,9 @@ runroot rpmbuild --quiet -bb \ --define "filedata goo" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm readlink "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm readlink "${tf}" ], [0], @@ -196,9 +196,9 @@ runroot rpmbuild --quiet -bb \ --define "filedata zoo" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm readlink "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm readlink "${tf}" ], [0], @@ -228,9 +228,9 @@ runroot rpmbuild --quiet -bb \ --define "filetype dir" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm cat "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm test -d "${tf}" ], [0], @@ -259,9 +259,9 @@ runroot rpmbuild --quiet -bb \ --define "filetype dir" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm readlink "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm test -d "${tf}" ], [0], @@ -290,9 +290,9 @@ runroot rpmbuild --quiet -bb \ --define "filetype dir" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm readlink "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm test -d "${tf}" ], [0], @@ -321,9 +321,9 @@ runroot rpmbuild --quiet -bb \ --define "filetype dir" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm readlink "${tf}" -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm ], [2], [zoo @@ -351,8 +351,8 @@ runroot rpmbuild --quiet -bb \ --define "filetype dir" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm -test -d "${tf}" && runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm test -d "${tf}" ], [0], @@ -380,8 +380,8 @@ runroot rpmbuild --quiet -bb \ --define "filedata woot" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm -test -d "${tf}" && runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm ], [2], [], @@ -402,18 +402,22 @@ runroot rpmbuild --quiet -bb \ --define "ver 1.0" \ --define "filetype datadir" \ --define "filedata README1" \ + --define "user $(id -u -n)" \ + --define "grp $(id -g -n)" \ /data/SPECS/replacetest.spec runroot rpmbuild --quiet -bb \ --define "ver 2.0" \ --define "filetype datadir" \ --define "filedata README2" \ + --define "user $(id -u -n)" \ + --define "grp $(id -g -n)" \ /data/SPECS/replacetest.spec mkdir "${RPMTEST}"/opt/f00f ln -s f00f "${RPMTEST}"/opt/foo -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm -test -L "${tf}" && test -d "${tf}" && runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -L "${tf}" && test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm test -L "${tf}" && test -d "${tf}" ], [0], @@ -421,6 +425,38 @@ test -L "${tf}" && test -d "${tf}" []) AT_CLEANUP +AT_SETUP([upgrade invalid locally symlinked directory]) +AT_KEYWORDS([install]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype datadir" \ + --define "filedata README1" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype datadir" \ + --define "filedata README2" \ + /data/SPECS/replacetest.spec + +mkdir "${RPMTEST}"/opt/f00f +ln -s f00f "${RPMTEST}"/opt/foo +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -L "${tf}" && test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d "${tf}" +], +[0], +[], +[]) +AT_CLEANUP + AT_SETUP([upgrade empty directory to broken link]) AT_KEYWORDS([install]) AT_CHECK([ @@ -441,8 +477,8 @@ runroot rpmbuild --quiet -bb \ --define "filedata woot" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm -test -d "${tf}" && runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm ], [2], [], @@ -470,8 +506,8 @@ runroot rpmbuild --quiet -bb \ --define "filedata woot" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm -test -d "${tf}" && runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm ], [2], [], @@ -499,8 +535,8 @@ runroot rpmbuild --quiet -bb \ --define "filedata goo" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm -test -d "${tf}" && rmdir "${tf}" && runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && rmdir "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm readlink "${tf}" ], [0], @@ -529,8 +565,8 @@ runroot rpmbuild --quiet -bb \ --define "filedata goo" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm -test -d "${tf}" && rmdir "${tf}" && ln -sf goo "${tf}" && runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && rmdir "${tf}" && ln -sf goo "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm readlink "${tf}" ], [0], @@ -560,8 +596,8 @@ runroot rpmbuild --quiet -bb \ --define "fixit posix.rmdir('/opt/foo')" \ /data/SPECS/replacetest.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-1.0-1.noarch.rpm -test -d "${tf}" && runroot rpm -U --test "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm && runroot rpm -U "${TOPDIR}"/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U --test /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm readlink "${tf}" ], [0], diff --git a/tests/rpmscript.at b/tests/rpmscript.at index ab4478504..b93fcad02 100644 --- a/tests/rpmscript.at +++ b/tests/rpmscript.at @@ -15,25 +15,236 @@ runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb --define "rel 1" /data/SPECS/scripts.spec runroot rpmbuild --quiet -bb --define "rel 2" /data/SPECS/scripts.spec -runroot rpm -U "${TOPDIR}"/RPMS/noarch/fakeshell-1.0-1.noarch.rpm -runroot rpm -U "${TOPDIR}"/RPMS/noarch/scripts-1.0-1.noarch.rpm -runroot rpm -U "${TOPDIR}"/RPMS/noarch/scripts-1.0-2.noarch.rpm +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -Vvp /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/scripts-1.0-2.noarch.rpm +runroot rpm -Vv scripts runroot rpm -e scripts ], [0], -[scripts-1.0-1 PRETRANS 0 +[scripts-1.0-1 VERIFY 0 +scripts-1.0-1 PRETRANS 1 scripts-1.0-1 PRE 1 scripts-1.0-1 POST 1 -scripts-1.0-1 POSTTRANS 0 -scripts-1.0-2 PRETRANS 0 +scripts-1.0-1 POSTTRANS 1 +scripts-1.0-2 PRETRANS 2 scripts-1.0-2 PRE 2 scripts-1.0-2 POST 2 scripts-1.0-1 PREUN 1 scripts-1.0-1 POSTUN 1 -scripts-1.0-2 POSTTRANS 0 +scripts-1.0-2 POSTTRANS 1 +scripts-1.0-2 VERIFY 1 scripts-1.0-2 PREUN 0 scripts-1.0-2 POSTUN 0 ], []) AT_CLEANUP +AT_SETUP([basic trigger scripts and arguments]) +AT_KEYWORDS([trigger script]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +runroot rpmbuild --quiet -bb --define "rel 1" /data/SPECS/scripts.spec +runroot rpmbuild --quiet -bb --define "rel 2" /data/SPECS/scripts.spec +runroot rpmbuild --quiet -bb --define "rel 1" --define "trigpkg scripts" /data/SPECS/triggers.spec +runroot rpmbuild --quiet -bb --define "rel 2" --define "trigpkg scripts" /data/SPECS/triggers.spec + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +echo TRIGGERS 1 +runroot rpm -U /build/RPMS/noarch/triggers-1.0-1.noarch.rpm +echo SCRIPTS 1 +runroot rpm -U /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +echo SCRIPTS 2 +runroot rpm -U /build/RPMS/noarch/scripts-1.0-2.noarch.rpm +echo TRIGGERS 2 +runroot rpm -U /build/RPMS/noarch/triggers-1.0-2.noarch.rpm +echo ERASE +runroot rpm -e scripts +], +[0], +[TRIGGERS 1 +SCRIPTS 1 +scripts-1.0-1 PRETRANS 1 +triggers-1.0-1 TRIGGERPREIN 1 0 +scripts-1.0-1 PRE 1 +scripts-1.0-1 POST 1 +triggers-1.0-1 TRIGGERIN 1 1 +scripts-1.0-1 POSTTRANS 1 +SCRIPTS 2 +scripts-1.0-2 PRETRANS 2 +triggers-1.0-1 TRIGGERPREIN 1 1 +scripts-1.0-2 PRE 2 +scripts-1.0-2 POST 2 +triggers-1.0-1 TRIGGERIN 1 2 +triggers-1.0-1 TRIGGERUN 1 1 +scripts-1.0-1 PREUN 1 +scripts-1.0-1 POSTUN 1 +triggers-1.0-1 TRIGGERPOSTUN 1 1 +scripts-1.0-2 POSTTRANS 1 +TRIGGERS 2 +triggers-1.0-2 TRIGGERPREIN 1 1 +triggers-1.0-2 TRIGGERIN 2 1 +triggers-1.0-1 TRIGGERUN 1 1 +ERASE +triggers-1.0-2 TRIGGERUN 1 0 +scripts-1.0-2 PREUN 0 +scripts-1.0-2 POSTUN 0 +triggers-1.0-2 TRIGGERPOSTUN 1 0 +], +[]) +AT_CLEANUP + +AT_SETUP([basic file trigger scripts]) +AT_KEYWORDS([file trigger script]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec +runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec +runroot rpmbuild --quiet -bb /data/SPECS/filetriggers.spec + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/filetriggers-1.0-1.noarch.rpm +echo INSTALLATION +runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \ +/build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm +echo ERASE +runroot rpm -e hello-script hlinktest +], +[0], +[INSTALLATION +filetriggerin(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerin(/foo*)<lua>: +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerin(/usr/bin*): +/usr/bin/hello + +filetriggerin(/usr/bin*)<lua>: +/usr/bin/hello + +transfiletriggerin(/usr/bin*): +/usr/bin/hello + +transfiletriggerin(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +ERASE +transfiletriggerun(/usr/bin*): +/usr/bin/hello + +transfiletriggerun(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerun(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerpostun(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerun(/usr/bin*): +/usr/bin/hello + +filetriggerpostun(/usr/bin*): +/usr/bin/hello + +transfiletriggerpostun(/usr/bin*): + +transfiletriggerpostun(/foo*): + +], +[]) +AT_CLEANUP + +AT_SETUP([basic file triggers 2]) +AT_KEYWORDS([filetrigger script]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +for v in 1.0 2.0 3.0; do + runroot rpmbuild --quiet -bb --define "ver ${v}" /data/SPECS/parallel.spec +done + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -i \ + /build/RPMS/noarch/parallel-1.0-1.noarch.rpm \ + /build/RPMS/noarch/parallel-2.0-1.noarch.rpm \ + /build/RPMS/noarch/parallel-3.0-1.noarch.rpm + +echo INSTALL: +runroot rpm -U /build/RPMS/noarch/parallel-trigger-1.0-1.noarch.rpm +echo UPGRADE: +runroot rpm -U /build/RPMS/noarch/parallel-trigger-2.0-1.noarch.rpm +echo ERASE: +runroot rpm -e parallel-trigger + +], +[0], +[INSTALL: +%filetriggerin: 0 0 +36 +%transfiletriggerin: 0 0 +36 +UPGRADE: +%transfiletriggerun: 0 0 +36 +%filetriggerin: 0 0 +36 +%transfiletriggerin: 0 0 +36 +ERASE: +%transfiletriggerun: 0 0 +36 +], +[]) +AT_CLEANUP + diff --git a/tests/rpmsigdig.at b/tests/rpmsigdig.at new file mode 100644 index 000000000..9df3c5bd8 --- /dev/null +++ b/tests/rpmsigdig.at @@ -0,0 +1,443 @@ +# rpmsigdig.at: rpm signature and digest tests + +AT_BANNER([RPM signatures and digests]) + +# ------------------------------ +# Test pre-built package verification +AT_SETUP([rpmkeys -Kv <unsigned> 1]) +AT_KEYWORDS([rpmkeys digest]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64.rpm /data/RPMS/hello-1.0-1.i386.rpm +], +[0], +[/data/RPMS/hello-2.0-1.x86_64.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + MD5 digest: OK +/data/RPMS/hello-1.0-1.i386.rpm: + Header SHA1 digest: OK + MD5 digest: OK +], +[]) +AT_CLEANUP + +# ------------------------------ +# Test corrupted package verification (corrupted signature) +AT_SETUP([rpmkeys -Kv <corrupted unsigned> 1]) +AT_KEYWORDS([rpmkeys digest]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +# conv=notrunc bs=1 seek=261 count=6 2> /dev/null +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=333 count=4 2> /dev/null +runroot rpmkeys -Kv /tmp/${pkg} +], +[1], +[/tmp/hello-2.0-1.x86_64.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + MD5 digest: BAD (Expected 007ca1d8b35cca02a1854ba301c5432e != 137ca1d8b35cca02a1854ba301c5432e) +], +[]) +AT_CLEANUP +# ------------------------------ +# Test corrupted package verification (corrupted header) +AT_SETUP([rpmkeys -Kv <corrupted unsigned> 2]) +AT_KEYWORDS([rpmkeys digest]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null +runroot rpmkeys -Kv /tmp/${pkg} +], +[1], +[/tmp/hello-2.0-1.x86_64.rpm: + Header SHA1 digest: BAD (Expected 5cd9874c510b67b44483f9e382a1649ef7743bac != 4261b2c1eb861a4152c2239bce20bfbcaa8971ba) + Header SHA256 digest: BAD (Expected ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9 != 29fdfe92782fb0470a9a164a6c94af87d3b138c63b39d4c30e0223ca1202ba82) + Payload SHA256 digest: OK + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != de65519eeb4ab52eb076ec054d42e34e) +], +[]) +AT_CLEANUP + +# ------------------------------ +# Test corrupted package verification (corrupted payload) +AT_SETUP([rpmkeys -Kv <corrupted unsigned> 3]) +AT_KEYWORDS([rpmkeys digest]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=7777 count=6 2> /dev/null +runroot rpmkeys -Kv /tmp/${pkg} +], +[1], +[/tmp/hello-2.0-1.x86_64.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: BAD (Expected 84a7338287bf19715c4eed0243f5cdb447eeb0ade37b2af718d4060aefca2f7c != bea903609dceac36e1f26a983c493c98064d320fdfeb423034ed63d649b2c8dc) + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != d662cd0d81601a7107312684ad1ddf38) +], +[]) +AT_CLEANUP + +# ------------------------------ +# Reproducably build and verify a package +AT_SETUP([rpmkeys -Kv <unsigned> 2]) +AT_KEYWORDS([rpmkeys digest]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmbuild -bb --quiet \ + --define "%optflags -O2 -g" \ + --define "%_target_platform noarch-linux" \ + --define "%_binary_payload w.ufdio" \ + --define "%_buildhost localhost" \ + --define "%source_date_epoch_from_changelog 1" \ + --define "%clamp_mtime_to_source_date_epoch 1" \ + /data/SPECS/attrtest.spec +runroot rpmkeys -Kv /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm +], +[0], +[/build/RPMS/noarch/attrtest-1.0-1.noarch.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + MD5 digest: OK +], +[]) +AT_CLEANUP + +# ------------------------------ +# Import a public RSA key +AT_SETUP([rpmkeys --import rsa]) +AT_KEYWORDS([rpmkeys import]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpm -qi gpg-pubkey-1964c5fc-58e63918|grep -v Date|grep -v Version: +], +[0], +[Name : gpg-pubkey +Version : 1964c5fc +Release : 58e63918 +Architecture: (none) +Group : Public Keys +Size : 0 +License : pubkey +Signature : (none) +Source RPM : (none) +Build Host : localhost +Relocations : (not relocatable) +Packager : rpm.org RSA testkey <rsa@rpm.org> +Summary : gpg(rpm.org RSA testkey <rsa@rpm.org>) +Description : +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFjmORgBCAC7TMEk6wnjSs8Dr4yqSScWdU2pjcqrkTxuzdWvowcIUPZI0w/g +HkRqGd4apjvY2V15kjL10gk3QhFP3pZ/9p7zh8o8NHX7aGdSGDK7NOq1eFaErPRY +91LW9RiZ0lbOjXEzIL0KHxUiTQEmdXJT43DJMFPyW9fkCWg0OltiX618FUdWWfI8 +eySdLur1utnqBvdEbCUvWK2RX3vQZQdvEBODnNk2pxqTyV0w6VPQ96W++lF/5Aas +7rUv3HIyIXxIggc8FRrnH+y9XvvHDonhTIlGnYZN4ubm9i4y3gOkrZlGTrEw7elQ +1QeMyG2QQEbze8YjpTm4iLABCBrRfPRaQpwrABEBAAG0IXJwbS5vcmcgUlNBIHRl +c3RrZXkgPHJzYUBycG0ub3JnPokBNwQTAQgAIQUCWOY5GAIbAwULCQgHAgYVCAkK +CwIEFgIDAQIeAQIXgAAKCRBDRFkeGWTF/MxxCACnjqFL+MmPh9W9JQKT2DcLbBzf +Cqo6wcEBoCOcwgRSk8dSikhARoteoa55JRJhuMyeKhhEAogE9HRmCPFdjezFTwgB +BDVBpO2dZ023mLXDVCYX3S8pShOgCP6Tn4wqCnYeAdLcGg106N4xcmgtcssJE+Pr +XzTZksbZsrTVEmL/Ym+R5w5jBfFnGk7Yw7ndwfQsfNXQb5AZynClFxnX546lcyZX +fEx3/e6ezw57WNOUK6WT+8b+EGovPkbetK/rGxNXuWaP6X4A/QUm8O98nCuHYFQq ++mvNdsCBqGf7mhaRGtpHk/JgCn5rFvArMDqLVrR9hX0LdCSsH7EGE+bR3r7wuQEN +BFjmORgBCACk+vDZrIXQuFXEYToZVwb2attzbbJJCqD71vmZTLsW0QxuPKRgbcYY +zp4K4lVBnHhFrF8MOUOxJ7kQWIJZMZFt+BDcptCYurbD2H4W2xvnWViiC+LzCMzz +iMJT6165uefL4JHTDPxC2fFiM9yrc72LmylJNkM/vepT128J5Qv0gRUaQbHiQuS6 +Dm/+WRnUfx3i89SV4mnBxb/Ta93GVqoOciWwzWSnwEnWYAvOb95JL4U7c5J5f/+c +KnQDHsW7sIiIdscsWzvgf6qs2Ra1Zrt7Fdk4+ZS2f/adagLhDO1C24sXf5XfMk5m +L0OGwZSr9m5s17VXxfspgU5ugc8kBJfzABEBAAGJAR8EGAEIAAkFAljmORgCGwwA +CgkQQ0RZHhlkxfzwDQf/Y5on5o+s/xD3tDyRYa6SErfT44lEArdCD7Yi+cygJFox +3jyM8ovtJAkwRegwyxcaLN7zeG1p1Sk9ZAYWQEJT6qSU4Ppu+CVGHgxgnTcfUiu6 +EZZQE6srvua53IMY1lT50M7vx0T5VicHFRWBFV2C/Mc32p7cEE6nn45nEZgUXQNl +ySEyvoRlsAJq6gFsfqucVz2vMJDTMVczUtq1CjvUqFbif8JVL36EoZCf1SeRw6d6 +s1Kp3AA33Rjd+Uw87HJ4EIB75zMFQX2H0ggAVdYTQcqGXHP5MZK1jJrHfxJyMi3d +UNW2iqnN3BA7guhOv6OMiROF1+I7Q5nWT63mQC7IgQ== +=Z6nu +-----END PGP PUBLIC KEY BLOCK----- + +], +[]) +AT_CLEANUP + +# ------------------------------ +# Test pre-built package verification +AT_SETUP([rpmkeys -K <signed> 1]) +AT_KEYWORDS([rpmkeys digest signature]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmkeys -K /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -K /data/RPMS/hello-2.0-1.x86_64-signed.rpm +], +[0], +[[/data/RPMS/hello-2.0-1.x86_64-signed.rpm: digests SIGNATURES NOT OK +/data/RPMS/hello-2.0-1.x86_64-signed.rpm: digests signatures OK +]], +[]) +AT_CLEANUP + +# ------------------------------ +# Test pre-built package verification +AT_SETUP([rpmkeys -Kv <signed> 1]) +AT_KEYWORDS([rpmkeys digest signature]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys -Kv --nodigest /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys -Kv --nosignature /data/RPMS/hello-2.0-1.x86_64-signed.rpm +], +[0], +[/data/RPMS/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + MD5 digest: OK +/data/RPMS/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + MD5 digest: OK +/data/RPMS/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: OK +/data/RPMS/hello-2.0-1.x86_64-signed.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + MD5 digest: OK +], +[]) +AT_CLEANUP + +# ------------------------------ +# Test pre-built corrupted package verification (corrupted signature) +AT_SETUP([rpmkeys -Kv <corrupted signed> 1]) +AT_KEYWORDS([rpmkeys digest signature]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=264 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/${pkg} +], +[1], +[/tmp/hello-2.0-1.x86_64-signed.rpm: + Header signature: BAD (package tag 268: invalid OpenPGP signature) + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + MD5 digest: OK +/tmp/hello-2.0-1.x86_64-signed.rpm: + Header signature: BAD (package tag 268: invalid OpenPGP signature) + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + MD5 digest: OK +], +[]) +AT_CLEANUP +# ------------------------------ +# Test pre-built corrupted package verification (corrupted header) +AT_SETUP([rpmkeys -Kv <corrupted signed> 2]) +AT_KEYWORDS([rpmkeys digest signature]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/${pkg} +], +[1], +[/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + Header SHA1 digest: BAD (Expected 5cd9874c510b67b44483f9e382a1649ef7743bac != 4261b2c1eb861a4152c2239bce20bfbcaa8971ba) + Header SHA256 digest: BAD (Expected ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9 != 29fdfe92782fb0470a9a164a6c94af87d3b138c63b39d4c30e0223ca1202ba82) + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != de65519eeb4ab52eb076ec054d42e34e) +/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + Header SHA1 digest: BAD (Expected 5cd9874c510b67b44483f9e382a1649ef7743bac != 4261b2c1eb861a4152c2239bce20bfbcaa8971ba) + Header SHA256 digest: BAD (Expected ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9 != 29fdfe92782fb0470a9a164a6c94af87d3b138c63b39d4c30e0223ca1202ba82) + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != de65519eeb4ab52eb076ec054d42e34e) +], +[]) +AT_CLEANUP + +# ------------------------------ +# Test pre-built corrupted package verification (corrupted payload) +AT_SETUP([rpmkeys -Kv <corrupted signed> 3]) +AT_KEYWORDS([rpmkeys digest signature]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=7777 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/${pkg} +], +[1], +[/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: BAD (Expected 84a7338287bf19715c4eed0243f5cdb447eeb0ade37b2af718d4060aefca2f7c != bea903609dceac36e1f26a983c493c98064d320fdfeb423034ed63d649b2c8dc) + V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != d662cd0d81601a7107312684ad1ddf38) +/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: BAD (Expected 84a7338287bf19715c4eed0243f5cdb447eeb0ade37b2af718d4060aefca2f7c != bea903609dceac36e1f26a983c493c98064d320fdfeb423034ed63d649b2c8dc) + V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != d662cd0d81601a7107312684ad1ddf38) +], +[]) +AT_CLEANUP + +# ------------------------------ +# Test --addsign +AT_SETUP([rpmsign --addsign <unsigned>]) +AT_KEYWORDS([rpmsign signature]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +cp "${RPMTEST}"/data/RPMS/hello-2.0-1.x86_64.rpm "${RPMTEST}"/tmp/ +run rpmsign --key-id 1964C5FC --addsign "${RPMTEST}"/tmp/hello-2.0-1.x86_64.rpm > /dev/null +echo PRE-IMPORT +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest +echo POST-IMPORT +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest +run rpmsign --delsign "${RPMTEST}"/tmp/hello-2.0-1.x86_64.rpm > /dev/null +echo POST-DELSIGN +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest +], +[0], +[PRE-IMPORT +/tmp/hello-2.0-1.x86_64.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +POST-IMPORT +/tmp/hello-2.0-1.x86_64.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: OK +POST-DELSIGN +/tmp/hello-2.0-1.x86_64.rpm: +], +[]) +AT_CLEANUP + +# ------------------------------ +# Test --delsign +AT_SETUP([rpmsign --delsign <package>]) +AT_KEYWORDS([rpmsign signature]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +cp "${RPMTEST}"/data/RPMS/hello-2.0-1.x86_64-signed.rpm "${RPMTEST}"/tmp/ +echo PRE-DELSIGN +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64-signed.rpm|grep -v digest +echo POST-DELSIGN +run rpmsign --delsign "${RPMTEST}"/tmp/hello-2.0-1.x86_64-signed.rpm > /dev/null +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64-signed.rpm|grep -v digest +], +[0], +[PRE-DELSIGN +/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +POST-DELSIGN +/tmp/hello-2.0-1.x86_64-signed.rpm: +], +[]) +AT_CLEANUP + +# ------------------------------ +# Test --addsign +AT_SETUP([rpmsign --addsign <signed>]) +AT_KEYWORDS([rpmsign signature]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +cp "${RPMTEST}"/data/RPMS/hello-2.0-1.x86_64-signed.rpm "${RPMTEST}"/tmp/ +run rpmsign --key-id 1964C5FC --addsign "${RPMTEST}"/tmp/hello-2.0-1.x86_64-signed.rpm 2>&1 |grep -q "already contains identical signature, skipping" +], +[0], +[], +[]) +AT_CLEANUP diff --git a/tests/rpmtests b/tests/rpmtests new file mode 100755 index 000000000..7a2a9a742 --- /dev/null +++ b/tests/rpmtests @@ -0,0 +1,30451 @@ +#! /bin/sh +# Generated from local.at by GNU Autoconf 2.69. +# +# Copyright (C) 2009-2012 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 +test -x / || 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 : + export CONFIG_SHELL + # 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 +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+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +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_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_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; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # 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 -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +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 + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# 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 --showrc;basic; +4;rpmgeneral.at:50;rpm --querytags;basic; +5;rpmio.at:21;SIGPIPE from install scriptlet;signals; +6;rpmquery.at:22;rpm --qf -p *.i386.rpm;query; +7;rpmquery.at:36;rpm --qf -p *.src.rpm;query; +8;rpmquery.at:50;rpm -ql -p *.src.rpm;query; +9;rpmquery.at:65;rpmspec -q;query; +10;rpmquery.at:77;rpm -ql -p *.i386.rpm;query; +11;rpmquery.at:94;rpm -qp <manifest>;query; +12;rpmquery.at:115;rpm -q --scripts -p *.i386.rpm;query; +13;rpmquery.at:136;rpm -q on installed package;rpmdb install query; +14;rpmquery.at:180;integer array query;query; +15;rpmquery.at:196;formatted filesbypkg query;query; +16;rpmquery.at:212;hex formatted integer array extension query;query; +17;rpmquery.at:228;base64 extension query;query; +18;rpmquery.at:241;pgpsig extension query;query signature; +19;rpmquery.at:255;integer array perms format query;query; +20;rpmquery.at:271;string array query;query; +21;rpmquery.at:284;empty string array query;query; +22;rpmquery.at:297;empty string array extension array format;query; +23;rpmquery.at:310;empty string array extension query;query; +24;rpmquery.at:323;different sizes arrays query 1;query; +25;rpmquery.at:339;different sizes arrays query 2;query; +26;rpmquery.at:353;different sizes arrays query 3;query; +27;rpmquery.at:367;different sizes arrays query 4;query; +28;rpmquery.at:383;non-existent string tag;query; +29;rpmquery.at:396;non-existent integer tag query;query; +30;rpmquery.at:409;conditional queryformat;query; +31;rpmquery.at:422;invalid tag query;query; +32;rpmquery.at:436;invalid data for format query;query; +33;rpmquery.at:449;invalid format width query;query; +34;rpmquery.at:462;xml format;query; +35;rpmquery.at:761;query file attribute filtering;query; +36;rpmverify.at:7;dependency problems;verify; +37;rpmverify.at:32;files with no problems;verify; +38;rpmverify.at:48;files with no problems in verbose mode;verify; +39;rpmverify.at:67;directory replaced with a directory symlink;verify; +40;rpmverify.at:98;directory replaced with an invalid directory symlink;verify; +41;rpmverify.at:128;verify from db, with problems present;verify; +42;rpmverify.at:150;verify from package, with problems present;verify; +43;rpmverify.at:171;verify file attribute filtering;query; +44;rpmverify.at:220;verifyscript failure;verify; +45;rpmverify.at:237;verifyscript success;verify; +46;rpmverify.at:256;shared file timestamp behavior;verify; +47;rpmverify.at:285;Upgraded verification with min_writes 1 (files);upgrade verify min_writes; +48;rpmverify.at:357;Upgraded verification with min_writes 2 (files);upgrade verify min_writes; +49;rpmverify.at:436;Upgraded verification with min_writes 3 (LINKs);upgrade verify min_writes; +50;rpmverify.at:503;Upgraded verification with min_writes 4 (LINKs);upgrade verify min_writes; +51;rpmsigdig.at:7;rpmkeys -Kv <unsigned> 1;rpmkeys digest; +52;rpmsigdig.at:31;rpmkeys -Kv <corrupted unsigned> 1;rpmkeys digest; +53;rpmsigdig.at:56;rpmkeys -Kv <corrupted unsigned> 2;rpmkeys digest; +54;rpmsigdig.at:81;rpmkeys -Kv <corrupted unsigned> 3;rpmkeys digest; +55;rpmsigdig.at:106;rpmkeys -Kv <unsigned> 2;rpmkeys digest; +56;rpmsigdig.at:135;rpmkeys --import rsa;rpmkeys import; +57;rpmsigdig.at:196;rpmkeys -K <signed> 1;rpmkeys digest signature; +58;rpmsigdig.at:216;rpmkeys -Kv <signed> 1;rpmkeys digest signature; +59;rpmsigdig.at:258;rpmkeys -Kv <corrupted signed> 1;rpmkeys digest signature; +60;rpmsigdig.at:294;rpmkeys -Kv <corrupted signed> 2;rpmkeys digest signature; +61;rpmsigdig.at:331;rpmkeys -Kv <corrupted signed> 3;rpmkeys digest signature; +62;rpmsigdig.at:368;rpmsign --addsign <unsigned>;rpmsign signature; +63;rpmsigdig.at:403;rpmsign --delsign <package>;rpmsign signature; +64;rpmsigdig.at:430;rpmsign --addsign <signed>;rpmsign signature; +65;rpmdb.at:23;rpm --initdb;rpmdb; +66;rpmdb.at:36;rpm -qa;rpmdb query; +67;rpmdb.at:49;rpm -q foo;rpmdb query; +68;rpmdb.at:69;rpm -q foo-;rpmdb query; +69;rpmdb.at:90;rpm -i *.noarch.rpm;rpmdb install; +70;rpmdb.at:106;rpm -U --replacepkgs 1;rpmdb install; +71;rpmdb.at:128;rpm -U --replacepkgs 2;rpmdb install; +72;rpmdb.at:150;rpm --reinstall 1;rpmdb install; +73;rpmdb.at:173;rpm -i --relocate=.. *.i386.rpm;rpmdb install; +74;rpmdb.at:192;rpm -i --relocate=.. *.ppc64.rpm;rpmdb install; +75;rpmdb.at:208;rpmdb --rebuilddb;rpmdb; +76;rpmdb.at:233;rpmdb --rebuilddb and verify empty database;rpmdb; +77;rpmdb.at:248;rpm -U and verify status;install rpmdb query; +78;rpmdb.at:271;rpm -U with _install_lang and verify status;install rpmdb query; +79;rpmdb.at:297;rpm -U and verify files on disk;install rpmdb; +80;rpmdb.at:318;rpm -e and verify files removed;install rpmdb; +81;rpmi.at:21;rpm -U <manifest>;install; +82;rpmi.at:36;rpm -U <manifest notfound 1>;install; +83;rpmi.at:52;rpm -U <manifest notfound 2>;install; +84;rpmi.at:68;rpm -U <notfound>;install; +85;rpmi.at:83;rpm -U <unsigned>;install; +86;rpmi.at:97;rpm -U <signed nokey>;install; +87;rpmi.at:112;rpm -U <signed>;install; +88;rpmi.at:127;rpm -U <corrupted signed 1>;install; +89;rpmi.at:148;rpm -U <corrupted signed 2>;install; +90;rpmi.at:173;rpm -U <corrupted signed 3>;install; +91;rpmi.at:197;rpm -U *.src.rpm;install; +92;rpmi.at:212;rpm -i *.src.rpm;install; +93;rpmi.at:228;rpm -i <nonexistent file>;install; +94;rpmi.at:240;rpm -i --nomanifest <garbage text file>;install; +95;rpmi.at:257;rpm -i <garbage text file;install; +96;rpmi.at:276;rpm -U upgrade to newer;; +97;rpmi.at:299;rpm -U upgrade to older;; +98;rpmi.at:314;rpm -U --oldpackage downgrade;; +99;rpmi.at:330;rpm -U two versions of same package 1;; +100;rpmi.at:350;rpm -U two versions of same package 2;; +101;rpmi.at:370;rpm -U obsoleted package 1;; +102;rpmi.at:399;rpm -U obsoleted package 2;; +103;rpmi.at:428;rpm -i two versions of same package;; +104;rpmi.at:447;rpm -i identical versions of same package;; +105;rpmi.at:465;rpm -U with invalid --relocate;install relocate; +106;rpmi.at:482;rpm -U --badreloc with invalid --relocate;install relocate; +107;rpmi.at:498;rpm -i with/without --excludedocs;install excludedocs; +108;rpmorder.at:3;basic install/erase order 1;install erase order; +109;rpmbuild.at:23;rpmbuild -ba *.spec;build; +110;rpmbuild.at:41;rpmbuild --rebuild;build; +111;rpmbuild.at:54;rpmbuild --short-circuit -bl;build; +112;rpmbuild.at:72;rpmbuild -tb <tar with bad spec>;build; +113;rpmbuild.at:89;rpmbuild -tb;build; +114;rpmbuild.at:104;rpmbuild %attr and %defattr;build; +115;rpmbuild.at:144;rpmbuild hardlink;build; +116;rpmbuild.at:175;rpmbuild unpackaged files;build; +117;rpmbuild.at:195;rpmbuild unpackaged directories;build; +118;rpmbuild.at:215;rpmbuild glob;build; +119;rpmbuild.at:247;rpmbuild prefixpostfix;build; +120;rpmbuild.at:282;Weak and reverse requires;build; +121;rpmbuild.at:310;Build requires;build; +122;rpmbuild.at:326;Dependency generation;build; +123;rpmbuild.at:369;rpmspec query 1;build; +124;rpmbuild.at:389;rpmbuild archive sanity;build; +125;rpmbuild.at:407;rpmbuild debuginfo minisymtab;build debuginfo; +126;rpmbuild.at:444;rpmbuild debuginfo minisymtab strip -g;build debuginfo; +127;rpmbuild.at:483;rpmbuild debuginfo dwz;build debuginfo dwz; +128;rpmbuild.at:575;rpmbuild debuginfo dwz unique debug names;build debuginfo dwz; +129;rpmbuild.at:664;rpmbuild debuginfo dwz gnu_debuglink crc;build debuginfo; +130;rpmbuild.at:698;rpmbuild implicit suid binary;build debuginfo dwz suid; +131;rpmbuild.at:732;rpmbuild debuginfo gdb index included;build debuginfo gdb; +132;rpmbuild.at:761;rpmbuild debuginfo no gdb index included;build debuginfo gdb; +133;rpmbuild.at:789;rpmbuild debuginfo unique debug src dir;build debuginfo; +134;rpmbuild.at:828;rpmbuild debuginfo no unique debug src dir;build debuginfo; +135;rpmbuild.at:864;rpmbuild debugsource;build debuginfo debugsource; +136;rpmbuild.at:899;rpmbuild debugsource debugsourcefiles.list path;build debuginfo debugsource; +137;rpmbuild.at:927;rpmbuild debuginfo subpackages single;build debuginfo debugsubpackage; +138;rpmbuild.at:969;rpmbuild debuginfo subpackages multiple;build debuginfo debugsubpackage; +139;rpmbuild.at:1053;rpmbuild debuginfo subpackages multiple unique;build debuginfo debugsubpackage; +140;rpmbuild.at:1137;rpmbuild debuginfo subpackages multiple unique debugsource;build debuginfo debugsubpackage debugsource; +141;rpmbuild.at:1224;rpmbuild debuginfo subpackages multiple excluded;build debuginfo debugsubpackage debugsource; +142;rpmbuild.at:1288;rpmbuild debuginfo subpackages multiple excluded;build debuginfo debugsubpackage debugsource; +143;rpmbuildid.at:23;rpmbuild buildid none;build debuginfo buildid; +144;rpmbuildid.at:57;rpmbuild buildid alldebug;build debuginfo buildid; +145;rpmbuildid.at:149;rpmbuild buildid alldebug unique debug names;build debuginfo buildid; +146;rpmbuildid.at:240;rpmbuild buildid separate;build debuginfo buildid; +147;rpmbuildid.at:331;rpmbuild buildid separate unique debug names;build debuginfo buildid; +148;rpmbuildid.at:421;rpmbuild buildid compat;build debuginfo buildid; +149;rpmbuildid.at:525;rpmbuild buildid compat unique debug names;build debuginfo buildid; +150;rpmbuildid.at:629;rpmbuild buildid duplicate alldebug;build debuginfo buildid; +151;rpmbuildid.at:697;rpmbuild buildid hardlink alldebug;build debuginfo buildid; +152;rpmbuildid.at:762;rpmbuild buildid duplicate separate;build debuginfo buildid; +153;rpmbuildid.at:827;rpmbuild buildid hardlink separate;build debuginfo buildid; +154;rpmbuildid.at:889;rpmbuild buildid duplicate compat;build debuginfo buildid; +155;rpmbuildid.at:966;rpmbuild buildid hardlink compat;build debuginfo buildid; +156;rpmbuildid.at:1039;rpmbuild buildid recompute;build debuginfo buildid; +157;rpmbuildid.at:1153;rpmbuild buildid unique r1 r2;build debuginfo buildid; +158;rpmbuildid.at:1201;rpmbuild buildid non-unique r1 r2;build debuginfo buildid; +159;rpmbuildid.at:1253;rpmbuild buildid attrs;build debuginfo buildid; +160;rpmbuildid.at:1287;rpmbuild buildid config attrs;build debuginfo buildid; +161;rpmscript.at:7;basic scripts and arguments;verify; +162;rpmscript.at:44;basic trigger scripts and arguments;trigger script; +163;rpmscript.at:102;basic file trigger scripts;file trigger script; +164;rpmscript.at:205;basic file triggers 2;filetrigger script; +165;rpmvercmp.at:13;rpmvercmp(1.0, 1.0) = 0;vercmp; +166;rpmvercmp.at:14;rpmvercmp(1.0, 2.0) = -1;vercmp; +167;rpmvercmp.at:15;rpmvercmp(2.0, 1.0) = 1;vercmp; +168;rpmvercmp.at:17;rpmvercmp(2.0.1, 2.0.1) = 0;vercmp; +169;rpmvercmp.at:18;rpmvercmp(2.0, 2.0.1) = -1;vercmp; +170;rpmvercmp.at:19;rpmvercmp(2.0.1, 2.0) = 1;vercmp; +171;rpmvercmp.at:21;rpmvercmp(2.0.1a, 2.0.1a) = 0;vercmp; +172;rpmvercmp.at:22;rpmvercmp(2.0.1a, 2.0.1) = 1;vercmp; +173;rpmvercmp.at:23;rpmvercmp(2.0.1, 2.0.1a) = -1;vercmp; +174;rpmvercmp.at:25;rpmvercmp(5.5p1, 5.5p1) = 0;vercmp; +175;rpmvercmp.at:26;rpmvercmp(5.5p1, 5.5p2) = -1;vercmp; +176;rpmvercmp.at:27;rpmvercmp(5.5p2, 5.5p1) = 1;vercmp; +177;rpmvercmp.at:29;rpmvercmp(5.5p10, 5.5p10) = 0;vercmp; +178;rpmvercmp.at:30;rpmvercmp(5.5p1, 5.5p10) = -1;vercmp; +179;rpmvercmp.at:31;rpmvercmp(5.5p10, 5.5p1) = 1;vercmp; +180;rpmvercmp.at:33;rpmvercmp(10xyz, 10.1xyz) = -1;vercmp; +181;rpmvercmp.at:34;rpmvercmp(10.1xyz, 10xyz) = 1;vercmp; +182;rpmvercmp.at:36;rpmvercmp(xyz10, xyz10) = 0;vercmp; +183;rpmvercmp.at:37;rpmvercmp(xyz10, xyz10.1) = -1;vercmp; +184;rpmvercmp.at:38;rpmvercmp(xyz10.1, xyz10) = 1;vercmp; +185;rpmvercmp.at:40;rpmvercmp(xyz.4, xyz.4) = 0;vercmp; +186;rpmvercmp.at:41;rpmvercmp(xyz.4, 8) = -1;vercmp; +187;rpmvercmp.at:42;rpmvercmp(8, xyz.4) = 1;vercmp; +188;rpmvercmp.at:43;rpmvercmp(xyz.4, 2) = -1;vercmp; +189;rpmvercmp.at:44;rpmvercmp(2, xyz.4) = 1;vercmp; +190;rpmvercmp.at:46;rpmvercmp(5.5p2, 5.6p1) = -1;vercmp; +191;rpmvercmp.at:47;rpmvercmp(5.6p1, 5.5p2) = 1;vercmp; +192;rpmvercmp.at:49;rpmvercmp(5.6p1, 6.5p1) = -1;vercmp; +193;rpmvercmp.at:50;rpmvercmp(6.5p1, 5.6p1) = 1;vercmp; +194;rpmvercmp.at:52;rpmvercmp(6.0.rc1, 6.0) = 1;vercmp; +195;rpmvercmp.at:53;rpmvercmp(6.0, 6.0.rc1) = -1;vercmp; +196;rpmvercmp.at:55;rpmvercmp(10b2, 10a1) = 1;vercmp; +197;rpmvercmp.at:56;rpmvercmp(10a2, 10b2) = -1;vercmp; +198;rpmvercmp.at:58;rpmvercmp(1.0aa, 1.0aa) = 0;vercmp; +199;rpmvercmp.at:59;rpmvercmp(1.0a, 1.0aa) = -1;vercmp; +200;rpmvercmp.at:60;rpmvercmp(1.0aa, 1.0a) = 1;vercmp; +201;rpmvercmp.at:62;rpmvercmp(10.0001, 10.0001) = 0;vercmp; +202;rpmvercmp.at:63;rpmvercmp(10.0001, 10.1) = 0;vercmp; +203;rpmvercmp.at:64;rpmvercmp(10.1, 10.0001) = 0;vercmp; +204;rpmvercmp.at:65;rpmvercmp(10.0001, 10.0039) = -1;vercmp; +205;rpmvercmp.at:66;rpmvercmp(10.0039, 10.0001) = 1;vercmp; +206;rpmvercmp.at:68;rpmvercmp(4.999.9, 5.0) = -1;vercmp; +207;rpmvercmp.at:69;rpmvercmp(5.0, 4.999.9) = 1;vercmp; +208;rpmvercmp.at:71;rpmvercmp(20101121, 20101121) = 0;vercmp; +209;rpmvercmp.at:72;rpmvercmp(20101121, 20101122) = -1;vercmp; +210;rpmvercmp.at:73;rpmvercmp(20101122, 20101121) = 1;vercmp; +211;rpmvercmp.at:75;rpmvercmp(2_0, 2_0) = 0;vercmp; +212;rpmvercmp.at:76;rpmvercmp(2.0, 2_0) = 0;vercmp; +213;rpmvercmp.at:77;rpmvercmp(2_0, 2.0) = 0;vercmp; +214;rpmvercmp.at:80;rpmvercmp(a, a) = 0;vercmp; +215;rpmvercmp.at:81;rpmvercmp(a+, a+) = 0;vercmp; +216;rpmvercmp.at:82;rpmvercmp(a+, a_) = 0;vercmp; +217;rpmvercmp.at:83;rpmvercmp(a_, a+) = 0;vercmp; +218;rpmvercmp.at:84;rpmvercmp(+a, +a) = 0;vercmp; +219;rpmvercmp.at:85;rpmvercmp(+a, _a) = 0;vercmp; +220;rpmvercmp.at:86;rpmvercmp(_a, +a) = 0;vercmp; +221;rpmvercmp.at:87;rpmvercmp(+_, +_) = 0;vercmp; +222;rpmvercmp.at:88;rpmvercmp(_+, +_) = 0;vercmp; +223;rpmvercmp.at:89;rpmvercmp(_+, _+) = 0;vercmp; +224;rpmvercmp.at:90;rpmvercmp(+, _) = 0;vercmp; +225;rpmvercmp.at:91;rpmvercmp(_, +) = 0;vercmp; +226;rpmvercmp.at:94;rpmvercmp(1.0~rc1, 1.0~rc1) = 0;vercmp; +227;rpmvercmp.at:95;rpmvercmp(1.0~rc1, 1.0) = -1;vercmp; +228;rpmvercmp.at:96;rpmvercmp(1.0, 1.0~rc1) = 1;vercmp; +229;rpmvercmp.at:97;rpmvercmp(1.0~rc1, 1.0~rc2) = -1;vercmp; +230;rpmvercmp.at:98;rpmvercmp(1.0~rc2, 1.0~rc1) = 1;vercmp; +231;rpmvercmp.at:99;rpmvercmp(1.0~rc1~git123, 1.0~rc1~git123) = 0;vercmp; +232;rpmvercmp.at:100;rpmvercmp(1.0~rc1~git123, 1.0~rc1) = -1;vercmp; +233;rpmvercmp.at:101;rpmvercmp(1.0~rc1, 1.0~rc1~git123) = 1;vercmp; +234;rpmdeps.at:7;missing dependency;install; +235;rpmdeps.at:30;cross-depending packages;install; +236;rpmdeps.at:56;unsatisfied versioned require;install; +237;rpmdeps.at:84;satisfied versioned require;install; +238;rpmdeps.at:110;versioned conflict in transaction;install; +239;rpmdeps.at:137;versioned conflict in database;install; +240;rpmdeps.at:163;install and verify self-conflicting package;install; +241;rpmdeps.at:185;explicit file conflicts;install; +242;rpmdeps.at:224;erase to break dependencies;install; +243;rpmdeps.at:252;erase to break colored file dependency;install; +244;rpmdeps.at:281;erase on wrong-colored file dependency;install; +245;rpmdeps.at:309;unsatisfied WITH require;install, boolean; +246;rpmdeps.at:340;unsatisfied WITH require (rpmdb);install, boolean; +247;rpmdeps.at:373;satisfied WITH require;install, boolean; +248;rpmdeps.at:397;satisfied WITH require (rpmdb);install, boolean; +249;rpmdeps.at:425;unsatisfied WITHOUT require;install, boolean; +250;rpmdeps.at:451;unsatisfied WITHOUT require (rpmdb);install, boolean; +251;rpmdeps.at:479;satisfied WITHOUT require;install, boolean; +252;rpmdeps.at:502;satisfied WITHOUT require (rpmdb);install, boolean; +253;rpmdeps.at:529;unsatisfied AND require - all missing;install, boolean; +254;rpmdeps.at:550;unsatisfied AND require - first is missing;install, boolean; +255;rpmdeps.at:575;unsatisfied AND require - second is missing;install, boolean; +256;rpmdeps.at:600;satisfied AND require;install, boolean; +257;rpmdeps.at:629;unsatisfied OR require - all missing;install, boolean; +258;rpmdeps.at:650;satisfied OR require - first is missing;install, boolean; +259;rpmdeps.at:673;satisfied OR require - second is missing;install, boolean; +260;rpmdeps.at:696;satisfied OR require - both present;install, boolean; +261;rpmdeps.at:725;unsatisfied IF require;install, boolean; +262;rpmdeps.at:750;satisfied IF require;install, boolean; +263;rpmdeps.at:777;unsatisfied IF-ELSE require;install, boolean; +264;rpmdeps.at:798;satisfied IF-ELSE require - right clause;install, boolean; +265;rpmdeps.at:821;satisfied IF-ELSE require - left clause;install, boolean; +266;rpmdeps.at:850;unsatisfied nested AND-OR require;install, boolean; +267;rpmdeps.at:875;satisfied nested AND-OR require;install, boolean; +268;rpmdeps.at:904;satisfied nested AND-IF require - without right clause;install, boolean; +269;rpmdeps.at:927;satisfied nested AND-IF require - with right clause;install, boolean; +270;rpmconflict.at:7;package with file conflict;install; +271;rpmconflict.at:31;two packages with a conflicting file;install; +272;rpmconflict.at:48;package with shareable file;install; +273;rpmconflict.at:72;two packages with shareable file;install; +274;rpmconflict.at:89;non-conflicting identical basenames;install; +275;rpmconflict.at:107;conflicting identical basenames;install; +276;rpmconflict.at:127;multilib elf conflict, prefer 64bit 1;install; +277;rpmconflict.at:149;multilib elf conflict, prefer 64bit 2;install; +278;rpmconflict.at:176;multilib elf conflict, prefer 64bit 3;install; +279;rpmconflict.at:203;multilib elf conflict, prefer 32bit 1;install; +280;rpmconflict.at:225;multilib elf conflict, prefer 32bit 2;install; +281;rpmconflict.at:252;multilib elf conflict, prefer 32bit 3;install; +282;rpmconflict.at:279;multilib elf vs non-elf file conflict 1;install; +283;rpmconflict.at:300;multilib elf vs non-elf file conflict 2;install; +284;rpmconflict.at:325;multilib elf vs non-elf file conflict 3;install; +285;rpmconflict.at:351;replacing directory with symlink;install; +286;rpmconflict.at:375;replacing symlink with directory;install; +287;rpmconflict.at:400;real file with shared ghost;install; +288;rpmreplace.at:4;upgrade to/from regular file;install; +289;rpmreplace.at:40;upgrade regular file to/from broken link;install; +290;rpmreplace.at:76;upgrade regular file to/from file link;install; +291;rpmreplace.at:112;upgrade broken link to broken link;install; +292;rpmreplace.at:145;upgrade file link to file link;install; +293;rpmreplace.at:178;upgrade directory link to directory link;install; +294;rpmreplace.at:211;upgrade regular file to directory;install; +295;rpmreplace.at:242;upgrade broken link to directory;install; +296;rpmreplace.at:273;upgrade file link to directory;install; +297;rpmreplace.at:304;upgrade directory link to directory;install; +298;rpmreplace.at:335;upgrade empty directory to empty directory;install; +299;rpmreplace.at:363;upgrade empty directory to regular file;install; +300;rpmreplace.at:392;upgrade locally symlinked directory;install; +301;rpmreplace.at:428;upgrade invalid locally symlinked directory;install; +302;rpmreplace.at:460;upgrade empty directory to broken link;install; +303;rpmreplace.at:489;upgrade empty directory to file link;install; +304;rpmreplace.at:518;upgrade removed empty directory to file link;install; +305;rpmreplace.at:548;upgrade replaced empty directory to file link;install; +306;rpmreplace.at:578;upgrade empty directory to file link with pretrans;install; +307;rpmconfig.at:6;install config on existiting file;install; +308;rpmconfig.at:35;install config(noreplace) on existing file;install; +309;rpmconfig.at:70;install config on existiting identical file;install; +310;rpmconfig.at:97;erase unchanged config;install; +311;rpmconfig.at:123;erase changed config;install; +312;rpmconfig.at:153;erase changed config(noreplace);install; +313;rpmconfig.at:185;upgrade unchanged config;install; +314;rpmconfig.at:215;upgrade unchanged config - touching test;install; +315;rpmconfig.at:243;upgrade modified config;install; +316;rpmconfig.at:276;upgrade changing config;install; +317;rpmconfig.at:306;upgrade changing, modified config 1;install; +318;rpmconfig.at:342;upgrade changing, modified config 2;install; +319;rpmconfig.at:377;upgrade unchanged config(noreplace);install; +320;rpmconfig.at:409;upgrade modified config(noreplace);install; +321;rpmconfig.at:443;upgrade changing config(noreplace);install; +322;rpmconfig.at:474;upgrade changing, modified config(noreplace) 1;install; +323;rpmconfig.at:511;upgrade changing, modified config(noreplace) 2;install; +324;rpmconfig.at:546;upgrade unchanged shared config;install; +325;rpmconfig.at:584;upgrade modified shared config;install; +326;rpmconfig.at:624;upgrade changing shared config;install; +327;rpmconfig.at:661;upgrade changing, modified shared config 1;install; +328;rpmconfig.at:704;upgrade changing, modified shared config 2;install; +329;rpmconfig.at:745;upgrade changing, modified shared config(noreplace) 1;install; +330;rpmconfig.at:789;upgrade changing, modified shared config(noreplace) 2;install; +331;rpmconfig.at:830;install/upgrade/erase ghost config;install; +332;rpmconfig2.at:6;install config on existiting symlink;install; +333;rpmconfig2.at:36;install config on existiting identical link;install; +334;rpmconfig2.at:66;erase unchanged config link;install; +335;rpmconfig2.at:93;erase changed config link;install; +336;rpmconfig2.at:124;upgrade unchanged config link;install; +337;rpmconfig2.at:155;upgrade unchanged config link - touching test;install; +338;rpmconfig2.at:185;upgrade modified config link;install; +339;rpmconfig2.at:219;upgrade changing config link;install; +340;rpmconfig2.at:250;upgrade changing, modified config link 1;install; +341;rpmconfig2.at:287;upgrade changing, modified config link 2;install; +342;rpmconfig2.at:323;upgrade unchanged config(noreplace) link;install; +343;rpmconfig2.at:356;upgrade modified config(noreplace) link;install; +344;rpmconfig2.at:391;upgrade changing config(noreplace) link;install; +345;rpmconfig2.at:423;upgrade changing, modified config(noreplace) link 1;install; +346;rpmconfig2.at:461;upgrade changing, modified config(noreplace) link 2;install; +347;rpmconfig2.at:498;upgrade unchanged shared config link;install; +348;rpmconfig2.at:537;upgrade modified shared config link;install; +349;rpmconfig2.at:578;upgrade changing shared config link;install; +350;rpmconfig2.at:616;upgrade changing, modified shared config link 1;install; +351;rpmconfig2.at:660;upgrade changing, modified shared config link 2;install; +352;rpmconfig2.at:702;upgrade changing, modified shared config(noreplace) link 1;install; +353;rpmconfig2.at:747;upgrade changing, modified shared config(noreplace) link 2;install; +354;rpmconfig3.at:6;upgrade config to/from non-config;install; +355;rpmconfig3.at:44;upgrade modified config to/from non-config 1;install; +356;rpmconfig3.at:88;upgrade modified config to/from non-config 2;install; +357;rpmconfig3.at:129;upgrade config to/from config link;install; +358;rpmconfig3.at:166;upgrade modified config to config link;install; +359;rpmconfig3.at:206;upgrade modified config link to config;install; +360;rpmconfig3.at:246;upgrade config to directory;install; +361;rpmconfig3.at:278;upgrade modified config to directory;install; +362;rpmmacro.at:6;simple rpm --eval;macros; +363;rpmmacro.at:17;invalid rpm --eval;macros; +364;rpmmacro.at:29;invalid rpm --define;macros; +365;rpmmacro.at:40;rpm --undefine;macros; +366;rpmmacro.at:55;simple true conditional rpm --eval;macros; +367;rpmmacro.at:65;simple false conditional rpm --eval;macros; +368;rpmmacro.at:75;nested macro in name;macros; +369;rpmmacro.at:85;parametrized macro 1;macros; +370;rpmmacro.at:121;parametrized macro 2;macros; +371;rpmmacro.at:134;parametrized macro 3;macros; +372;rpmmacro.at:146;parametrized macro 4;macros; +373;rpmmacro.at:161;parametrized macro 5;macros; +374;rpmmacro.at:190;uncompress macro;macros; +375;rpmmacro.at:202;basename macro;macros; +376;rpmmacro.at:213;shrink macro;macros; +377;rpmmacro.at:224;suffix macro;macros; +378;rpmmacro.at:235;url2path macro;macros; +379;rpmmacro.at:246;shell expansion;macros; +380;rpmmacro.at:257;simple lua --eval;macros lua; +381;rpmmacro.at:267;lua rpm extensions;macros lua; +382;rpmmacro.at:277;lua posix extensions;macros lua; +383;rpmmacro.at:288;lua script exit behavior;macros lua; +384;rpmmacro.at:300;%define + %undefine in nested levels 1;macros define undefine; +385;rpmmacro.at:315;%define + %undefine in nested levels 2;macros define; +386;rpmmacro.at:331;%define + %undefine in nested levels 3;macros define; +387;rpmmacro.at:349;%define + %undefine in nested levels 4;macros define global; +388;rpmmacro.at:371;%define in conditional macro;macros; +389;rpmmacro.at:389;%verbose negative test;macros verbose; +390;rpmmacro.at:407;%verbose positive test;macros verbose; +391;rpmpython.at:6;module import;python; +392;rpmpython.at:12;macro manipulation;python; +393;rpmpython.at:35;basic rpmio;python; +394;rpmpython.at:70;spec parse;python; +395;rpmpython.at:85;basic header manipulation;python; +396;rpmpython.at:110;invalid header data;python; +397;rpmpython.at:129;reading a package file;python; +398;rpmpython.at:137;reading a signed package file 1;python; +399;rpmpython.at:152;reading a signed package file 2;python; +400;rpmpython.at:170;add package to transaction;python; +401;rpmpython.at:182;add bogus package to transaction 1;python; +402;rpmpython.at:196;add bogus package to transaction 2;python; +403;rpmpython.at:217;database iterators;python rpmdb; +404;rpmpython.at:316;dependency sets 1;python; +405;rpmpython.at:333;dependency sets 2;python; +406;rpmpython.at:343;file info sets 1;python; +407;rpmpython.at:360;string pool 1;python; +408;rpmpython.at:375;string pool 2;python; +409;rpmpython.at:393;archive 1;python; +410;rpmpython.at:413;header unload;python; +411;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 411; 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.14.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.14.1)" && + cat <<\_ATEOF || at_write_fail=1 + +Copyright (C) 2012 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. rpmio.at:3 +# Category starts at test group 5. +at_banner_text_2="I/O" +# Banner 3. rpmquery.at:19 +# Category starts at test group 6. +at_banner_text_3="RPM queries" +# Banner 4. rpmverify.at:3 +# Category starts at test group 36. +at_banner_text_4="RPM verification" +# Banner 5. rpmsigdig.at:3 +# Category starts at test group 51. +at_banner_text_5="RPM signatures and digests" +# Banner 6. rpmdb.at:19 +# Category starts at test group 65. +at_banner_text_6="RPM database access" +# Banner 7. rpmi.at:19 +# Category starts at test group 81. +at_banner_text_7="RPM install tests" +# Banner 8. rpmorder.at:1 +# Category starts at test group 108. +at_banner_text_8="RPM install/erase ordering" +# Banner 9. rpmbuild.at:19 +# Category starts at test group 109. +at_banner_text_9="RPM build" +# Banner 10. rpmbuildid.at:19 +# Category starts at test group 143. +at_banner_text_10="RPM buildid tests" +# Banner 11. rpmscript.at:3 +# Category starts at test group 161. +at_banner_text_11="RPM scriptlets" +# Banner 12. rpmvercmp.at:11 +# Category starts at test group 165. +at_banner_text_12="RPM version comparison" +# Banner 13. rpmdeps.at:3 +# Category starts at test group 234. +at_banner_text_13="RPM dependencies" +# Banner 14. rpmconflict.at:3 +# Category starts at test group 270. +at_banner_text_14="RPM implicit file conflicts" +# Banner 15. rpmreplace.at:2 +# Category starts at test group 288. +at_banner_text_15="RPM file replacement" +# Banner 16. rpmconfig.at:3 +# Category starts at test group 307. +at_banner_text_16="RPM config file behavior" +# Banner 17. rpmconfig2.at:3 +# Category starts at test group 332. +at_banner_text_17="RPM config symlink behavior" +# Banner 18. rpmconfig3.at:3 +# Category starts at test group 354. +at_banner_text_18="RPM config filetype changes" +# Banner 19. rpmmacro.at:3 +# Category starts at test group 362. +at_banner_text_19="RPM macros" +# Banner 20. rpmpython.at:4 +# Category starts at test group 391. +at_banner_text_20="Python bindings" +# Banner 21. rpmdepmatch.at:2 +# Category starts at test group 411. +at_banner_text_21="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.14.1 test suite. ## +## ---------------------- ##" +{ + $as_echo "## ---------------------- ## +## rpm 4.14.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:36: $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.14.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: runroot rpm --version" +at_fn_check_prepare_trace "rpmgeneral.at:24" +( $at_check_trace; runroot rpm --version +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "RPM version 4.14.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: runroot rpmbuild --version" +at_fn_check_prepare_trace "rpmgeneral.at:33" +( $at_check_trace; runroot rpmbuild --version +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "RPM version 4.14.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 --showrc" " " 1 +at_xfail=no +( + $as_echo "3. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmgeneral.at:42: runroot rpm --showrc" +at_fn_check_prepare_trace "rpmgeneral.at:42" +( $at_check_trace; runroot rpm --showrc +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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:50' \ + "rpm --querytags" " " 1 +at_xfail=no +( + $as_echo "4. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmgeneral.at:52: runroot rpm --querytags" +at_fn_check_prepare_trace "rpmgeneral.at:52" +( $at_check_trace; runroot rpm --querytags +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 +CONFLICTFLAGS +CONFLICTNAME +CONFLICTNEVRS +CONFLICTS +CONFLICTVERSION +COOKIE +DBINSTANCE +DEPENDSDICT +DESCRIPTION +DIRINDEXES +DIRNAMES +DISTRIBUTION +DISTTAG +DISTURL +DSAHEADER +E +ENCODING +ENHANCEFLAGS +ENHANCENAME +ENHANCENEVRS +ENHANCES +ENHANCEVERSION +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 +FILENLINKS +FILEPROVIDE +FILERDEVS +FILEREQUIRE +FILESIGNATURELENGTH +FILESIGNATURES +FILESIZES +FILESTATES +FILETRIGGERCONDS +FILETRIGGERFLAGS +FILETRIGGERINDEX +FILETRIGGERNAME +FILETRIGGERPRIORITIES +FILETRIGGERSCRIPTFLAGS +FILETRIGGERSCRIPTPROG +FILETRIGGERSCRIPTS +FILETRIGGERTYPE +FILETRIGGERVERSION +FILEUSERNAME +FILEVERIFYFLAGS +FSCONTEXTS +GIF +GROUP +HDRID +HEADERCOLOR +HEADERI18NTABLE +HEADERIMAGE +HEADERIMMUTABLE +HEADERREGIONS +HEADERSIGNATURES +ICON +INSTALLCOLOR +INSTALLTID +INSTALLTIME +INSTFILENAMES +INSTPREFIXES +LICENSE +LONGARCHIVESIZE +LONGFILESIZES +LONGSIGSIZE +LONGSIZE +N +NAME +NEVR +NEVRA +NOPATCH +NOSOURCE +NVR +NVRA +O +OBSOLETEFLAGS +OBSOLETENAME +OBSOLETENEVRS +OBSOLETES +OBSOLETEVERSION +OLDENHANCES +OLDENHANCESFLAGS +OLDENHANCESNAME +OLDENHANCESVERSION +OLDFILENAMES +OLDSUGGESTS +OLDSUGGESTSFLAGS +OLDSUGGESTSNAME +OLDSUGGESTSVERSION +OPTFLAGS +ORDERFLAGS +ORDERNAME +ORDERVERSION +ORIGBASENAMES +ORIGDIRINDEXES +ORIGDIRNAMES +ORIGFILENAMES +OS +P +PACKAGER +PATCH +PATCHESFLAGS +PATCHESNAME +PATCHESVERSION +PAYLOADCOMPRESSOR +PAYLOADDIGEST +PAYLOADDIGESTALGO +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 +PROVIDENEVRS +PROVIDES +PROVIDEVERSION +PUBKEYS +R +RECOMMENDFLAGS +RECOMMENDNAME +RECOMMENDNEVRS +RECOMMENDS +RECOMMENDVERSION +RECONTEXTS +RELEASE +REMOVETID +REQUIREFLAGS +REQUIRENAME +REQUIRENEVRS +REQUIRES +REQUIREVERSION +RPMVERSION +RSAHEADER +SHA1HEADER +SHA256HEADER +SIGGPG +SIGMD5 +SIGPGP +SIGSIZE +SIZE +SOURCE +SOURCEPACKAGE +SOURCEPKGID +SOURCERPM +SUGGESTFLAGS +SUGGESTNAME +SUGGESTNEVRS +SUGGESTS +SUGGESTVERSION +SUMMARY +SUPPLEMENTFLAGS +SUPPLEMENTNAME +SUPPLEMENTNEVRS +SUPPLEMENTS +SUPPLEMENTVERSION +TRANSFILETRIGGERCONDS +TRANSFILETRIGGERFLAGS +TRANSFILETRIGGERINDEX +TRANSFILETRIGGERNAME +TRANSFILETRIGGERPRIORITIES +TRANSFILETRIGGERSCRIPTFLAGS +TRANSFILETRIGGERSCRIPTPROG +TRANSFILETRIGGERSCRIPTS +TRANSFILETRIGGERTYPE +TRANSFILETRIGGERVERSION +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: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_4 +#AT_START_5 +at_fn_group_banner 5 'rpmio.at:21' \ + "SIGPIPE from install scriptlet" " " 2 +at_xfail=no +( + $as_echo "5. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmio.at:23: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/sigpipe.spec +runroot rpm -U --nodeps /build/RPMS/noarch/sigpipe-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmio.at:23" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/sigpipe.spec +runroot rpm -U --nodeps /build/RPMS/noarch/sigpipe-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmio.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_5 +#AT_START_6 +at_fn_group_banner 6 'rpmquery.at:22' \ + "rpm --qf -p *.i386.rpm" " " 3 +at_xfail=no +( + $as_echo "6. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:24: +runroot rpm \\ + -q --qf \"%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\\n\" \\ + -p /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:24" +( $at_check_trace; +runroot rpm \ + -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \ + -p /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_6 +#AT_START_7 +at_fn_group_banner 7 'rpmquery.at:36' \ + "rpm --qf -p *.src.rpm" " " 3 +at_xfail=no +( + $as_echo "7. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:38: +runroot rpm \\ + -q --qf \"%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\\n\" \\ + -p /data/SRPMS/hello-1.0-1.src.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:38" +( $at_check_trace; +runroot rpm \ + -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \ + -p /data/SRPMS/hello-1.0-1.src.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_7 +#AT_START_8 +at_fn_group_banner 8 'rpmquery.at:50' \ + "rpm -ql -p *.src.rpm" " " 3 +at_xfail=no +( + $as_echo "8. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:52: +runroot rpm \\ + -ql \\ + -p /data/SRPMS/hello-1.0-1.src.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:52" +( $at_check_trace; +runroot rpm \ + -ql \ + -p /data/SRPMS/hello-1.0-1.src.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_8 +#AT_START_9 +at_fn_group_banner 9 'rpmquery.at:65' \ + "rpmspec -q" " " 3 +at_xfail=no +( + $as_echo "9. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:67: +runroot rpmspec \\ + -q --qf \"%{name}\" /data/SPECS/hello.spec +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:67" +( $at_check_trace; +runroot rpmspec \ + -q --qf "%{name}" /data/SPECS/hello.spec + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_9 +#AT_START_10 +at_fn_group_banner 10 'rpmquery.at:77' \ + "rpm -ql -p *.i386.rpm" " " 3 +at_xfail=no +( + $as_echo "10. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:79: +runroot rpm \\ + -ql \\ + -p /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:79" +( $at_check_trace; +runroot rpm \ + -ql \ + -p /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_10 +#AT_START_11 +at_fn_group_banner 11 'rpmquery.at:94' \ + "rpm -qp <manifest>" " " 3 +at_xfail=no +( + $as_echo "11. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:96: +cat << EOF > \${RPMTEST}/query.mft +/data/RPMS/hello-1.0-1.i386.rpm +/data/RPMS/hello-1.0-1.ppc64.rpm +/data/RPMS/foo-1.0-1.noarch.rpm +EOF +runroot rpm -qp --qf \"%{nvr}\\n\" /query.mft +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:96" +( $at_check_trace; +cat << EOF > ${RPMTEST}/query.mft +/data/RPMS/hello-1.0-1.i386.rpm +/data/RPMS/hello-1.0-1.ppc64.rpm +/data/RPMS/foo-1.0-1.noarch.rpm +EOF +runroot rpm -qp --qf "%{nvr}\n" /query.mft + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_11 +#AT_START_12 +at_fn_group_banner 12 'rpmquery.at:115' \ + "rpm -q --scripts -p *.i386.rpm" " " 3 +at_xfail=no +( + $as_echo "12. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:117: +runroot rpm \\ + -q --scripts \\ + -p /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:117" +( $at_check_trace; +runroot rpm \ + -q --scripts \ + -p /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_12 +#AT_START_13 +at_fn_group_banner 13 'rpmquery.at:136' \ + "rpm -q on installed package" " " 3 +at_xfail=no +( + $as_echo "13. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:139: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm \\ + --noscripts --nodeps --ignorearch --relocate=/usr=/check \\ + -i /data/RPMS/hello-1.0-1.ppc64.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmquery.at:139" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm \ + --noscripts --nodeps --ignorearch --relocate=/usr=/check \ + -i /data/RPMS/hello-1.0-1.ppc64.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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; } + + +# check common NVRA combinations +{ set +x +$as_echo "$at_srcdir/rpmquery.at:150: +runroot rpm \\ + -q hello hello-1.0 hello-1.0-1 \\ + hello.ppc64 hello-1.0.ppc64 hello-1.0-1.ppc64 +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:150" +( $at_check_trace; +runroot rpm \ + -q hello hello-1.0 hello-1.0-1 \ + hello.ppc64 hello-1.0.ppc64 hello-1.0-1.ppc64 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello-1.0-1.ppc64 +hello-1.0-1.ppc64 +hello-1.0-1.ppc64 +hello-1.0-1.ppc64 +hello-1.0-1.ppc64 +hello-1.0-1.ppc64 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:150" +$at_failed && at_fn_log_failure +$at_traceon; } + + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:166: +runroot rpm \\ + -ql hello +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:166" +( $at_check_trace; +runroot rpm \ + -ql hello + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "/check/local/bin/hello +/check/share/doc/hello-1.0 +/check/share/doc/hello-1.0/FAQ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:166" +$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:180' \ + "integer array query" " " 3 +at_xfail=no +( + $as_echo "14. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:182: +runroot rpm \\ + --queryformat=\"[%{filemodes}\\n]\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:182" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{filemodes}\n]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:182" +$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:196' \ + "formatted filesbypkg query" " " 3 +at_xfail=no +( + $as_echo "15. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:198: +runroot rpm \\ + --queryformat=\"[%-10{=NAME} %{FILENAMES}\\n]\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:198" +( $at_check_trace; +runroot rpm \ + --queryformat="[%-10{=NAME} %{FILENAMES}\n]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:198" +$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:212' \ + "hex formatted integer array extension query" " " 3 +at_xfail=no +( + $as_echo "16. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:214: +runroot rpm \\ + --queryformat=\"[%5{longfilesizes:hex}\\n]\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:214" +( $at_check_trace; +runroot rpm \ + --queryformat="[%5{longfilesizes:hex}\n]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:214" +$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:228' \ + "base64 extension query" " " 3 +at_xfail=no +( + $as_echo "17. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:230: +runroot rpm \\ + --queryformat=\"%{pkgid:base64}\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:230" +( $at_check_trace; +runroot rpm \ + --queryformat="%{pkgid:base64}" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:230" +$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:241' \ + "pgpsig extension query" " " 3 +at_xfail=no +( + $as_echo "18. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:243: +runroot rpm \\ + --queryformat=\"%{rsaheader:pgpsig}\" \\ + -qp /data/RPMS/hello-2.0-1.x86_64-signed.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:243" +( $at_check_trace; +runroot rpm \ + --queryformat="%{rsaheader:pgpsig}" \ + -qp /data/RPMS/hello-2.0-1.x86_64-signed.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /data/RPMS/hello-2.0-1.x86_64-signed.rpm: Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "RSA/SHA256, Thu Apr 6 13:02:33 2017, Key ID 4344591e1964c5fc" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:243" +$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:255' \ + "integer array perms format query" " " 3 +at_xfail=no +( + $as_echo "19. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:257: +runroot rpm \\ + --queryformat=\"[%{filemodes:perms}\\n]\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:257" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{filemodes:perms}\n]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:257" +$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:271' \ + "string array query" " " 3 +at_xfail=no +( + $as_echo "20. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:273: +runroot rpm \\ + --queryformat=\"[%{basenames} ]\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:273" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{basenames} ]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:273" +$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:284' \ + "empty string array query" " " 3 +at_xfail=no +( + $as_echo "21. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:286: +runroot rpm \\ + --queryformat=\"[%{basenames}]\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:286" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{basenames}]" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:286" +$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:297' \ + "empty string array extension array format" " " 3 +at_xfail=no +( + $as_echo "22. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:299: +runroot rpm \\ + --queryformat=\"[%{filenames}]\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:299" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{filenames}]" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:299" +$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:310' \ + "empty string array extension query" " " 3 +at_xfail=no +( + $as_echo "23. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:312: +runroot rpm \\ + --queryformat=\"%{filenames}\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:312" +( $at_check_trace; +runroot rpm \ + --queryformat="%{filenames}" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:312" +$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:323' \ + "different sizes arrays query 1" " " 3 +at_xfail=no +( + $as_echo "24. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:325: +runroot rpm \\ + --queryformat=\"[%{basenames} %{changelogname}]\\n\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:325" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{basenames} %{changelogname}]\n" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:325" +$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:339' \ + "different sizes arrays query 2" " " 3 +at_xfail=no +( + $as_echo "25. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:341: +runroot rpm \\ + --queryformat=\"[%{name} %{changelogtime}]\\n\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:341" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{name} %{changelogtime}]\n" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "hello 908877600 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:341" +$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:353' \ + "different sizes arrays query 3" " " 3 +at_xfail=no +( + $as_echo "26. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:355: +runroot rpm \\ + --queryformat=\"[%{name} %{basenames}]\\n\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:355" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{name} %{basenames}]\n" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:355" +$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:367' \ + "different sizes arrays query 4" " " 3 +at_xfail=no +( + $as_echo "27. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:369: +runroot rpm \\ + --queryformat=\"[%{=name} %{basenames}\\n]\" \\ + -qp /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:369" +( $at_check_trace; +runroot rpm \ + --queryformat="[%{=name} %{basenames}\n]" \ + -qp /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "hello hello +hello hello-1.0 +hello FAQ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:369" +$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:383' \ + "non-existent string tag" " " 3 +at_xfail=no +( + $as_echo "28. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:385: +runroot rpm \\ + --queryformat=\"%{vendor}\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:385" +( $at_check_trace; +runroot rpm \ + --queryformat="%{vendor}" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:385" +$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:396' \ + "non-existent integer tag query" " " 3 +at_xfail=no +( + $as_echo "29. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:398: +runroot rpm \\ + --queryformat=\"%{installcolor}\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:398" +( $at_check_trace; +runroot rpm \ + --queryformat="%{installcolor}" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:398" +$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 'rpmquery.at:409' \ + "conditional queryformat" " " 3 +at_xfail=no +( + $as_echo "30. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:411: +runroot rpm \\ + --queryformat=\"%|name?{%{name}}:{no}| %|installtime?{%{installtime}}:{(not installed)}|\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:411" +( $at_check_trace; +runroot rpm \ + --queryformat="%|name?{%{name}}:{no}| %|installtime?{%{installtime}}:{(not installed)}|" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:411" +$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 'rpmquery.at:422' \ + "invalid tag query" " " 3 +at_xfail=no +( + $as_echo "31. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:424: +runroot rpm \\ + --queryformat=\"%{notag}\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:424" +( $at_check_trace; +runroot rpm \ + --queryformat="%{notag}" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: incorrect format: unknown tag: \"notag\" +" | \ + $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:424" +$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 'rpmquery.at:436' \ + "invalid data for format query" " " 3 +at_xfail=no +( + $as_echo "32. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:438: +runroot rpm \\ + --queryformat=\"%{name:depflags}\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:438" +( $at_check_trace; +runroot rpm \ + --queryformat="%{name:depflags}" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:438" +$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 'rpmquery.at:449' \ + "invalid format width query" " " 3 +at_xfail=no +( + $as_echo "33. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:451: +runroot rpm \\ + --queryformat=\"%ss{size}\" \\ + -qp /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:451" +( $at_check_trace; +runroot rpm \ + --queryformat="%ss{size}" \ + -qp /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: incorrect format: invalid field width +" | \ + $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:451" +$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 'rpmquery.at:462' \ + "xml format" " " 3 +at_xfail=no +( + $as_echo "34. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:464: +runroot rpm -qp --xml data/RPMS/hello-2.0-1.x86_64.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmquery.at:464" +( $at_check_trace; +runroot rpm -qp --xml data/RPMS/hello-2.0-1.x86_64.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "<rpmHeader> + <rpmTag name=\"Headeri18ntable\"> + <string>C</string> + </rpmTag> + <rpmTag name=\"Sigsize\"> + <integer>5411</integer> + </rpmTag> + <rpmTag name=\"Sigmd5\"> + <base64>E3yh2LNcygKhhUujAcVDLg== +</base64> + </rpmTag> + <rpmTag name=\"Sha1header\"> + <string>5cd9874c510b67b44483f9e382a1649ef7743bac</string> + </rpmTag> + <rpmTag name=\"Sha256header\"> + <string>ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9</string> + </rpmTag> + <rpmTag name=\"Name\"> + <string>hello</string> + </rpmTag> + <rpmTag name=\"Version\"> + <string>2.0</string> + </rpmTag> + <rpmTag name=\"Release\"> + <string>1</string> + </rpmTag> + <rpmTag name=\"Summary\"> + <string>hello -- hello, world rpm</string> + </rpmTag> + <rpmTag name=\"Description\"> + <string>Simple rpm demonstration.</string> + </rpmTag> + <rpmTag name=\"Buildtime\"> + <integer>1227355200</integer> + </rpmTag> + <rpmTag name=\"Buildhost\"> + <string>localhost</string> + </rpmTag> + <rpmTag name=\"Size\"> + <integer>7243</integer> + </rpmTag> + <rpmTag name=\"License\"> + <string>GPL</string> + </rpmTag> + <rpmTag name=\"Group\"> + <string>Testing</string> + </rpmTag> + <rpmTag name=\"Os\"> + <string>linux</string> + </rpmTag> + <rpmTag name=\"Arch\"> + <string>x86_64</string> + </rpmTag> + <rpmTag name=\"Filesizes\"> + <integer>7120</integer> + <integer>4096</integer> + <integer>48</integer> + <integer>36</integer> + <integer>39</integer> + </rpmTag> + <rpmTag name=\"Filemodes\"> + <integer>33257</integer> + <integer>16877</integer> + <integer>33188</integer> + <integer>33188</integer> + <integer>33188</integer> + </rpmTag> + <rpmTag name=\"Filerdevs\"> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + </rpmTag> + <rpmTag name=\"Filemtimes\"> + <integer>1489670606</integer> + <integer>1489670606</integer> + <integer>908894882</integer> + <integer>908895030</integer> + <integer>908884468</integer> + </rpmTag> + <rpmTag name=\"Filedigests\"> + <string>c89fa87aeb1143969c0b6be9334b21d932f77f74e8f60120b5de316406369cf0</string> + <string/> + <string>fac3b28492ecdc16da172a6f1a432ceed356ca4d9248157b2a962b395e37b3b0</string> + <string>678b87e217a415f05e43460e2c7b668245b412e2b4f18a75aa7399d9774ed0b4</string> + <string>d63fdc6c986106f57230f217d36b2395d83ecf491d2b7187af714dc8db9629e9</string> + </rpmTag> + <rpmTag name=\"Filelinktos\"> + <string/> + <string/> + <string/> + <string/> + <string/> + </rpmTag> + <rpmTag name=\"Fileflags\"> + <integer>0</integer> + <integer>0</integer> + <integer>2</integer> + <integer>2</integer> + <integer>2</integer> + </rpmTag> + <rpmTag name=\"Fileusername\"> + <string>root</string> + <string>root</string> + <string>root</string> + <string>root</string> + <string>root</string> + </rpmTag> + <rpmTag name=\"Filegroupname\"> + <string>root</string> + <string>root</string> + <string>root</string> + <string>root</string> + <string>root</string> + </rpmTag> + <rpmTag name=\"Sourcerpm\"> + <string>hello-2.0-1.src.rpm</string> + </rpmTag> + <rpmTag name=\"Fileverifyflags\"> + <integer>4294967295</integer> + <integer>0</integer> + <integer>4294967295</integer> + <integer>4294967295</integer> + <integer>4294967295</integer> + </rpmTag> + <rpmTag name=\"Archivesize\"> + <integer>8060</integer> + </rpmTag> + <rpmTag name=\"Providename\"> + <string>hello</string> + <string>hello(x86-64)</string> + </rpmTag> + <rpmTag name=\"Requireflags\"> + <integer>16384</integer> + <integer>16384</integer> + <integer>16777226</integer> + <integer>16777226</integer> + <integer>16777226</integer> + <integer>16384</integer> + </rpmTag> + <rpmTag name=\"Requirename\"> + <string>libc.so.6()(64bit)</string> + <string>libc.so.6(GLIBC_2.2.5)(64bit)</string> + <string>rpmlib(CompressedFileNames)</string> + <string>rpmlib(FileDigests)</string> + <string>rpmlib(PayloadFilesHavePrefix)</string> + <string>rtld(GNU_HASH)</string> + </rpmTag> + <rpmTag name=\"Requireversion\"> + <string/> + <string/> + <string>3.0.4-1</string> + <string>4.6.0-1</string> + <string>4.0-1</string> + <string/> + </rpmTag> + <rpmTag name=\"Rpmversion\"> + <string>4.13.90</string> + </rpmTag> + <rpmTag name=\"Changelogtime\"> + <integer>1227355200</integer> + <integer>908884800</integer> + </rpmTag> + <rpmTag name=\"Changelogname\"> + <string>Panu Matilainen <pmatilai@redhat.com></string> + <string>Jeff Johnson <jbj@redhat.com></string> + </rpmTag> + <rpmTag name=\"Changelogtext\"> + <string>- updated version</string> + <string>- create.</string> + </rpmTag> + <rpmTag name=\"Filedevices\"> + <integer>1</integer> + <integer>1</integer> + <integer>1</integer> + <integer>1</integer> + <integer>1</integer> + </rpmTag> + <rpmTag name=\"Fileinodes\"> + <integer>1</integer> + <integer>2</integer> + <integer>3</integer> + <integer>4</integer> + <integer>5</integer> + </rpmTag> + <rpmTag name=\"Filelangs\"> + <string/> + <string/> + <string/> + <string/> + <string/> + </rpmTag> + <rpmTag name=\"Prefixes\"> + <string>/usr</string> + </rpmTag> + <rpmTag name=\"Provideflags\"> + <integer>8</integer> + <integer>8</integer> + </rpmTag> + <rpmTag name=\"Provideversion\"> + <string>2.0-1</string> + <string>2.0-1</string> + </rpmTag> + <rpmTag name=\"Dirindexes\"> + <integer>0</integer> + <integer>1</integer> + <integer>2</integer> + <integer>2</integer> + <integer>2</integer> + </rpmTag> + <rpmTag name=\"Basenames\"> + <string>hello</string> + <string>hello-2.0</string> + <string>COPYING</string> + <string>FAQ</string> + <string>README</string> + </rpmTag> + <rpmTag name=\"Dirnames\"> + <string>/usr/bin/</string> + <string>/usr/share/doc/</string> + <string>/usr/share/doc/hello-2.0/</string> + </rpmTag> + <rpmTag name=\"Optflags\"> + <string>-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic</string> + </rpmTag> + <rpmTag name=\"Payloadformat\"> + <string>cpio</string> + </rpmTag> + <rpmTag name=\"Payloadcompressor\"> + <string>gzip</string> + </rpmTag> + <rpmTag name=\"Payloadflags\"> + <string>9</string> + </rpmTag> + <rpmTag name=\"Platform\"> + <string>x86_64-redhat-linux-gnu</string> + </rpmTag> + <rpmTag name=\"Filecolors\"> + <integer>2</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + </rpmTag> + <rpmTag name=\"Fileclass\"> + <integer>0</integer> + <integer>1</integer> + <integer>2</integer> + <integer>2</integer> + <integer>2</integer> + </rpmTag> + <rpmTag name=\"Classdict\"> + <string>ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=775fdcb927e4300adbe83cfacec3cfeb1f63fe17, stripped</string> + <string>directory</string> + <string>ASCII text</string> + </rpmTag> + <rpmTag name=\"Filedependsx\"> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + </rpmTag> + <rpmTag name=\"Filedependsn\"> + <integer>3</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + <integer>0</integer> + </rpmTag> + <rpmTag name=\"Dependsdict\"> + <integer>1375731713</integer> + <integer>1375731712</integer> + <integer>1375731717</integer> + </rpmTag> + <rpmTag name=\"Filedigestalgo\"> + <integer>8</integer> + </rpmTag> + <rpmTag name=\"Encoding\"> + <string>utf-8</string> + </rpmTag> + <rpmTag name=\"Payloaddigest\"> + <string>84a7338287bf19715c4eed0243f5cdb447eeb0ade37b2af718d4060aefca2f7c</string> + </rpmTag> + <rpmTag name=\"Payloaddigestalgo\"> + <integer>8</integer> + </rpmTag> +</rpmHeader> +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:464" +$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 'rpmquery.at:761' \ + "query file attribute filtering" " " 3 +at_xfail=no +( + $as_echo "35. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmquery.at:763: +runroot rpmbuild -bb --quiet \\ + /data/SPECS/vattrtest.spec + +pkg=\"/build/RPMS/noarch/vattrtest-1.0-1.noarch.rpm\" +cmd=\"rpm -qpl\" +for filter in --noconfig --noghost --noartifact -A -c -d -L; do + echo \${filter} + runroot \${cmd} \${filter} \${pkg} +done +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmquery.at:763" +( $at_check_trace; +runroot rpmbuild -bb --quiet \ + /data/SPECS/vattrtest.spec + +pkg="/build/RPMS/noarch/vattrtest-1.0-1.noarch.rpm" +cmd="rpm -qpl" +for filter in --noconfig --noghost --noartifact -A -c -d -L; do + echo ${filter} + runroot ${cmd} ${filter} ${pkg} +done + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "--noconfig +/opt/vattrtest +/opt/vattrtest/a +/opt/vattrtest/d +/opt/vattrtest/g +/opt/vattrtest/l +/opt/vattrtest/m +/opt/vattrtest/r +--noghost +/opt/vattrtest +/opt/vattrtest/a +/opt/vattrtest/c +/opt/vattrtest/cn +/opt/vattrtest/d +/opt/vattrtest/l +/opt/vattrtest/m +/opt/vattrtest/r +--noartifact +/opt/vattrtest +/opt/vattrtest/c +/opt/vattrtest/cn +/opt/vattrtest/d +/opt/vattrtest/g +/opt/vattrtest/l +/opt/vattrtest/m +/opt/vattrtest/r +-A +/opt/vattrtest/a +-c +/opt/vattrtest/c +/opt/vattrtest/cn +-d +/opt/vattrtest/d +-L +/opt/vattrtest/l +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmquery.at:763" +$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 'rpmverify.at:7' \ + "dependency problems" " " 4 +at_xfail=no +( + $as_echo "36. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:9: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs deptest-two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U --nodeps /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -Va --nofiles +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:9" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-two" \ + /data/SPECS/deptest.spec + +runroot rpm -U --nodeps /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -Va --nofiles + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_36 +#AT_START_37 +at_fn_group_banner 37 'rpmverify.at:32' \ + "files with no problems" " " 4 +at_xfail=no +( + $as_echo "37. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:34: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \\ + /data/RPMS/hello-1.0-1.i386.rpm +runroot rpm -Va --nodeps --nouser --nogroup +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:34" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \ + /data/RPMS/hello-1.0-1.i386.rpm +runroot rpm -Va --nodeps --nouser --nogroup + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:34" +$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 'rpmverify.at:48' \ + "files with no problems in verbose mode" " " 4 +at_xfail=no +( + $as_echo "38. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:50: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \\ + /data/RPMS/hello-1.0-1.i386.rpm +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`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \ + /data/RPMS/hello-1.0-1.i386.rpm +runroot rpm -Vva --nodeps --nouser --nogroup + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_38 +#AT_START_39 +at_fn_group_banner 39 'rpmverify.at:67' \ + "directory replaced with a directory symlink" " " 4 +at_xfail=no +( + $as_echo "39. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:69: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype datadir\" \\ + --define \"filedata README1\" \\ + --define \"user \$(id -u -n)\" \\ + --define \"grp \$(id -g -n)\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +mv \"\${RPMTEST}\"/opt/foo \"\${RPMTEST}\"/opt/was +ln -s was \"\${RPMTEST}\"/opt/foo +runroot rpm -Vv replacetest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:69" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype datadir" \ + --define "filedata README1" \ + --define "user $(id -u -n)" \ + --define "grp $(id -g -n)" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +mv "${RPMTEST}"/opt/foo "${RPMTEST}"/opt/was +ln -s was "${RPMTEST}"/opt/foo +runroot rpm -Vv replacetest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "......... /opt/foo +......... /opt/foo/README1 +......... /opt/goo +......... /opt/zoo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:69" +$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 'rpmverify.at:98' \ + "directory replaced with an invalid directory symlink" "" 4 +at_xfail=no +( + $as_echo "40. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:100: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype datadir\" \\ + --define \"filedata README1\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +mv \"\${RPMTEST}\"/opt/foo \"\${RPMTEST}\"/opt/was +ln -s was \"\${RPMTEST}\"/opt/foo +runroot rpm -Vv --nouser --nogroup replacetest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:100" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype datadir" \ + --define "filedata README1" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +mv "${RPMTEST}"/opt/foo "${RPMTEST}"/opt/was +ln -s was "${RPMTEST}"/opt/foo +runroot rpm -Vv --nouser --nogroup replacetest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "....L.... /opt/foo +......... /opt/foo/README1 +......... /opt/goo +......... /opt/zoo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:100" +$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 'rpmverify.at:128' \ + "verify from db, with problems present" " " 4 +at_xfail=no +( + $as_echo "41. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:130: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \\ + /data/RPMS/hello-1.0-1.i386.rpm +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:130" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \ + /data/RPMS/hello-1.0-1.i386.rpm +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" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo ".M5....T. /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:130" +$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 'rpmverify.at:150' \ + "verify from package, with problems present" " " 4 +at_xfail=no +( + $as_echo "42. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:152: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \\ + /data/RPMS/hello-1.0-1.i386.rpm +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 -Vp --nodeps --nouser --nogroup /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:152" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \ + /data/RPMS/hello-1.0-1.i386.rpm +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 -Vp --nodeps --nouser --nogroup /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo ".M5....T. /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:152" +$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 'rpmverify.at:171' \ + "verify file attribute filtering" " " 4 +at_xfail=no +( + $as_echo "43. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:173: +runroot rpmbuild -bb --quiet \\ + /data/SPECS/vattrtest.spec + +runroot rpm -U /build/RPMS/noarch/vattrtest-1.0-1.noarch.rpm +runroot_other touch /opt/vattrtest/g +runroot_other chmod 644 /opt/vattrtest/g + +cmd=\"rpm -Vv --nouser --nogroup\" +for filter in --noconfig --noghost --noartifact; do + echo \${filter} + runroot \${cmd} \${filter} vattrtest +done +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmverify.at:173" +( $at_check_trace; +runroot rpmbuild -bb --quiet \ + /data/SPECS/vattrtest.spec + +runroot rpm -U /build/RPMS/noarch/vattrtest-1.0-1.noarch.rpm +runroot_other touch /opt/vattrtest/g +runroot_other chmod 644 /opt/vattrtest/g + +cmd="rpm -Vv --nouser --nogroup" +for filter in --noconfig --noghost --noartifact; do + echo ${filter} + runroot ${cmd} ${filter} vattrtest +done + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "--noconfig +......... /opt/vattrtest +......... a /opt/vattrtest/a +......... d /opt/vattrtest/d +......... g /opt/vattrtest/g +......... l /opt/vattrtest/l +......... m /opt/vattrtest/m +......... r /opt/vattrtest/r +--noghost +......... /opt/vattrtest +......... a /opt/vattrtest/a +......... c /opt/vattrtest/c +......... c /opt/vattrtest/cn +......... d /opt/vattrtest/d +......... l /opt/vattrtest/l +......... m /opt/vattrtest/m +......... r /opt/vattrtest/r +--noartifact +......... /opt/vattrtest +......... c /opt/vattrtest/c +......... c /opt/vattrtest/cn +......... d /opt/vattrtest/d +......... g /opt/vattrtest/g +......... l /opt/vattrtest/l +......... m /opt/vattrtest/m +......... r /opt/vattrtest/r +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_skip $at_status "$at_srcdir/rpmverify.at:173" +$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 'rpmverify.at:220' \ + "verifyscript failure" " " 4 +at_xfail=no +( + $as_echo "44. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:222: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +rm -rf \"\${TOPDIR}\" +runroot rpmbuild --quiet -bb /data/SPECS/verifyscript.spec +runroot rpm -U --nodeps /build/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:222" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +rm -rf "${TOPDIR}" +runroot rpmbuild --quiet -bb /data/SPECS/verifyscript.spec +runroot rpm -U --nodeps /build/RPMS/noarch/verifyscript-1.0-1.noarch.rpm +rm -f "${RPMTEST}"/var/checkme +runroot rpm -V --nodeps verifyscript + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:222" +$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 'rpmverify.at:237' \ + "verifyscript success" " " 4 +at_xfail=no +( + $as_echo "45. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:239: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +rm -rf \"\${TOPDIR}\" +runroot rpmbuild --quiet -bb /data/SPECS/verifyscript.spec +runroot rpm -U --nodeps /build/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:239" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +rm -rf "${TOPDIR}" +runroot rpmbuild --quiet -bb /data/SPECS/verifyscript.spec +runroot rpm -U --nodeps /build/RPMS/noarch/verifyscript-1.0-1.noarch.rpm +touch "${RPMTEST}"/var/checkme +runroot rpm -V --nodeps verifyscript + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:239" +$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 'rpmverify.at:256' \ + "shared file timestamp behavior" " " 4 +at_xfail=no +( + $as_echo "46. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:258: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +# create packages sharing a file but with different timestamp +for p in \"one\" \"two\"; do + runroot rpmbuild --quiet -bb \\ + --define \"pkg \$p\" \\ + --define \"filedata same_stuff\" \\ + /data/SPECS/conflicttest.spec + sleep 1 +done + +# first instance of a shared file is the one that actually gets created, +# force the order so we know what to expect as these dont depend on each other +runroot rpm -U --noorder /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm +runroot rpm -e conflicttwo +runroot rpm -Va --nouser --nogroup +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:258" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +# create packages sharing a file but with different timestamp +for p in "one" "two"; do + runroot rpmbuild --quiet -bb \ + --define "pkg $p" \ + --define "filedata same_stuff" \ + /data/SPECS/conflicttest.spec + sleep 1 +done + +# first instance of a shared file is the one that actually gets created, +# force the order so we know what to expect as these dont depend on each other +runroot rpm -U --noorder /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm +runroot rpm -e conflicttwo +runroot rpm -Va --nouser --nogroup + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_46 +#AT_START_47 +at_fn_group_banner 47 'rpmverify.at:285' \ + "Upgraded verification with min_writes 1 (files)" "" 4 +at_xfail=no +( + $as_echo "47. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:287: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${tf}\" \"\${tf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/replacetest.spec +done + +for v in \"3.0\" \"4.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filetype file\" \\ + --define \"filedata fox\" \\ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +touch -t 201703171717 \${tf} + +runroot rpm -U \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat \"\${tf}\" + +runroot rpm -U \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat \"\${tf}\" + +echo \"xx\" > \"\${tf}\" +cat \"\${tf}\" + +runroot rpm -U \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat \"\${tf}\" + +touch -t 201703171717 \${tf} + +runroot rpm -U --oldpackage \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:287" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec +done + +for v in "3.0" "4.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype file" \ + --define "filedata fox" \ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" +touch -t 201703171717 ${tf} + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat "${tf}" + +echo "xx" > "${tf}" +cat "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat "${tf}" + +touch -t 201703171717 ${tf} + +runroot rpm -U --oldpackage \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +fox +xx +fox +fox +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:287" +$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 'rpmverify.at:357' \ + "Upgraded verification with min_writes 2 (files)" "" 4 +at_xfail=no +( + $as_echo "48. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:359: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${tf}\" \"\${tf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/replacetest.spec +done + +for v in \"3.0\" \"4.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filetype file\" \\ + --define \"filedata fox\" \\ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +touch -t 201703171717 \${tf} + +runroot rpm -Uvv --fsmdebug \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c \"touch\" output.txt +cat \"\${tf}\" + + +runroot rpm -Uvv --fsmdebug \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c \"touch\" output.txt +cat \"\${tf}\" +echo \"xx\" > \"\${tf}\" +cat \"\${tf}\" + +runroot rpm -Uvv --fsmdebug \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c \"touch\" output.txt +cat \"\${tf}\" + +touch -t 201703171717 \${tf} + +runroot rpm -U -Uvv --fsmdebug --oldpackage \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c \"touch\" output.txt +cat \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:359" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec +done + +for v in "3.0" "4.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype file" \ + --define "filedata fox" \ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" +touch -t 201703171717 ${tf} + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +cat "${tf}" + + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +cat "${tf}" +echo "xx" > "${tf}" +cat "${tf}" + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +cat "${tf}" + +touch -t 201703171717 ${tf} + +runroot rpm -U -Uvv --fsmdebug --oldpackage \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +cat "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +2 +foo +1 +fox +xx +1 +fox +2 +fox +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:359" +$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 'rpmverify.at:436' \ + "Upgraded verification with min_writes 3 (LINKs)" "" 4 +at_xfail=no +( + $as_echo "49. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:438: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${tf}\" \"\${tf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filetype link\" \\ + --define \"filedata foo\" \\ + /data/SPECS/replacetest.spec +done + +for v in \"3.0\" \"4.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filetype link\" \\ + --define \"filedata fox\" \\ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink \"\${tf}\" + +runroot rpm -U \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink \"\${tf}\" + +runroot rpm -U \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink \"\${tf}\" + +ln -sf \"xx\" \"\${tf}\" +readlink \"\${tf}\" + +runroot rpm -U \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink \"\${tf}\" + +runroot rpm -U --oldpackage \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:438" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype link" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec +done + +for v in "3.0" "4.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype link" \ + --define "filedata fox" \ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink "${tf}" + +ln -sf "xx" "${tf}" +readlink "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink "${tf}" + +runroot rpm -U --oldpackage \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +fox +xx +fox +fox +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:438" +$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 'rpmverify.at:503' \ + "Upgraded verification with min_writes 4 (LINKs)" "" 4 +at_xfail=no +( + $as_echo "50. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmverify.at:505: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${tf}\" \"\${tf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filetype link\" \\ + --define \"filedata foo\" \\ + /data/SPECS/replacetest.spec +done + +for v in \"3.0\" \"4.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filetype link\" \\ + --define \"filedata fox\" \\ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink \"\${tf}\" + +runroot rpm -Uvv --fsmdebug \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c \"touch\" output.txt +readlink \"\${tf}\" + + +runroot rpm -Uvv --fsmdebug \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c \"touch\" output.txt +readlink \"\${tf}\" +ln -sf \"xx\" \"\${tf}\" +readlink \"\${tf}\" + +runroot rpm -Uvv --fsmdebug \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c \"touch\" output.txt +readlink \"\${tf}\" + +runroot rpm -U -Uvv --fsmdebug --oldpackage \\ + --define \"_minimize_writes 1\" \\ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c \"touch\" output.txt +readlink \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:505" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype link" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec +done + +for v in "3.0" "4.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype link" \ + --define "filedata fox" \ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +readlink "${tf}" + + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +readlink "${tf}" +ln -sf "xx" "${tf}" +readlink "${tf}" + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +readlink "${tf}" + +runroot rpm -U -Uvv --fsmdebug --oldpackage \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +readlink "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +2 +foo +1 +fox +xx +1 +fox +2 +fox +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:505" +$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 'rpmsigdig.at:7' \ + "rpmkeys -Kv <unsigned> 1" " " 5 +at_xfail=no +( + $as_echo "51. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:9: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64.rpm /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:9" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64.rpm /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/data/RPMS/hello-2.0-1.x86_64.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + MD5 digest: OK +/data/RPMS/hello-1.0-1.i386.rpm: + Header SHA1 digest: OK + MD5 digest: OK +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmsigdig.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_51 +#AT_START_52 +at_fn_group_banner 52 'rpmsigdig.at:31' \ + "rpmkeys -Kv <corrupted unsigned> 1" " " 5 +at_xfail=no +( + $as_echo "52. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:33: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +pkg=\"hello-2.0-1.x86_64.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +# conv=notrunc bs=1 seek=261 count=6 2> /dev/null +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=333 count=4 2> /dev/null +runroot rpmkeys -Kv /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:33" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +# conv=notrunc bs=1 seek=261 count=6 2> /dev/null +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=333 count=4 2> /dev/null +runroot rpmkeys -Kv /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/tmp/hello-2.0-1.x86_64.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + MD5 digest: BAD (Expected 007ca1d8b35cca02a1854ba301c5432e != 137ca1d8b35cca02a1854ba301c5432e) +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmsigdig.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_52 +#AT_START_53 +at_fn_group_banner 53 'rpmsigdig.at:56' \ + "rpmkeys -Kv <corrupted unsigned> 2" " " 5 +at_xfail=no +( + $as_echo "53. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:58: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +pkg=\"hello-2.0-1.x86_64.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null +runroot rpmkeys -Kv /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:58" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null +runroot rpmkeys -Kv /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/tmp/hello-2.0-1.x86_64.rpm: + Header SHA1 digest: BAD (Expected 5cd9874c510b67b44483f9e382a1649ef7743bac != 4261b2c1eb861a4152c2239bce20bfbcaa8971ba) + Header SHA256 digest: BAD (Expected ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9 != 29fdfe92782fb0470a9a164a6c94af87d3b138c63b39d4c30e0223ca1202ba82) + Payload SHA256 digest: OK + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != de65519eeb4ab52eb076ec054d42e34e) +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmsigdig.at:58" +$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 'rpmsigdig.at:81' \ + "rpmkeys -Kv <corrupted unsigned> 3" " " 5 +at_xfail=no +( + $as_echo "54. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:83: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +pkg=\"hello-2.0-1.x86_64.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=7777 count=6 2> /dev/null +runroot rpmkeys -Kv /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:83" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=7777 count=6 2> /dev/null +runroot rpmkeys -Kv /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/tmp/hello-2.0-1.x86_64.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: BAD (Expected 84a7338287bf19715c4eed0243f5cdb447eeb0ade37b2af718d4060aefca2f7c != bea903609dceac36e1f26a983c493c98064d320fdfeb423034ed63d649b2c8dc) + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != d662cd0d81601a7107312684ad1ddf38) +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmsigdig.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_54 +#AT_START_55 +at_fn_group_banner 55 'rpmsigdig.at:106' \ + "rpmkeys -Kv <unsigned> 2" " " 5 +at_xfail=no +( + $as_echo "55. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:108: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild -bb --quiet \\ + --define \"%optflags -O2 -g\" \\ + --define \"%_target_platform noarch-linux\" \\ + --define \"%_binary_payload w.ufdio\" \\ + --define \"%_buildhost localhost\" \\ + --define \"%source_date_epoch_from_changelog 1\" \\ + --define \"%clamp_mtime_to_source_date_epoch 1\" \\ + /data/SPECS/attrtest.spec +runroot rpmkeys -Kv /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:108" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild -bb --quiet \ + --define "%optflags -O2 -g" \ + --define "%_target_platform noarch-linux" \ + --define "%_binary_payload w.ufdio" \ + --define "%_buildhost localhost" \ + --define "%source_date_epoch_from_changelog 1" \ + --define "%clamp_mtime_to_source_date_epoch 1" \ + /data/SPECS/attrtest.spec +runroot rpmkeys -Kv /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/build/RPMS/noarch/attrtest-1.0-1.noarch.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + MD5 digest: OK +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmsigdig.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_55 +#AT_START_56 +at_fn_group_banner 56 'rpmsigdig.at:135' \ + "rpmkeys --import rsa" " " 5 +at_xfail=no +( + $as_echo "56. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:137: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpm -qi gpg-pubkey-1964c5fc-58e63918|grep -v Date|grep -v Version: +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:137" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpm -qi gpg-pubkey-1964c5fc-58e63918|grep -v Date|grep -v Version: + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Name : gpg-pubkey +Version : 1964c5fc +Release : 58e63918 +Architecture: (none) +Group : Public Keys +Size : 0 +License : pubkey +Signature : (none) +Source RPM : (none) +Build Host : localhost +Relocations : (not relocatable) +Packager : rpm.org RSA testkey <rsa@rpm.org> +Summary : gpg(rpm.org RSA testkey <rsa@rpm.org>) +Description : +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFjmORgBCAC7TMEk6wnjSs8Dr4yqSScWdU2pjcqrkTxuzdWvowcIUPZI0w/g +HkRqGd4apjvY2V15kjL10gk3QhFP3pZ/9p7zh8o8NHX7aGdSGDK7NOq1eFaErPRY +91LW9RiZ0lbOjXEzIL0KHxUiTQEmdXJT43DJMFPyW9fkCWg0OltiX618FUdWWfI8 +eySdLur1utnqBvdEbCUvWK2RX3vQZQdvEBODnNk2pxqTyV0w6VPQ96W++lF/5Aas +7rUv3HIyIXxIggc8FRrnH+y9XvvHDonhTIlGnYZN4ubm9i4y3gOkrZlGTrEw7elQ +1QeMyG2QQEbze8YjpTm4iLABCBrRfPRaQpwrABEBAAG0IXJwbS5vcmcgUlNBIHRl +c3RrZXkgPHJzYUBycG0ub3JnPokBNwQTAQgAIQUCWOY5GAIbAwULCQgHAgYVCAkK +CwIEFgIDAQIeAQIXgAAKCRBDRFkeGWTF/MxxCACnjqFL+MmPh9W9JQKT2DcLbBzf +Cqo6wcEBoCOcwgRSk8dSikhARoteoa55JRJhuMyeKhhEAogE9HRmCPFdjezFTwgB +BDVBpO2dZ023mLXDVCYX3S8pShOgCP6Tn4wqCnYeAdLcGg106N4xcmgtcssJE+Pr +XzTZksbZsrTVEmL/Ym+R5w5jBfFnGk7Yw7ndwfQsfNXQb5AZynClFxnX546lcyZX +fEx3/e6ezw57WNOUK6WT+8b+EGovPkbetK/rGxNXuWaP6X4A/QUm8O98nCuHYFQq ++mvNdsCBqGf7mhaRGtpHk/JgCn5rFvArMDqLVrR9hX0LdCSsH7EGE+bR3r7wuQEN +BFjmORgBCACk+vDZrIXQuFXEYToZVwb2attzbbJJCqD71vmZTLsW0QxuPKRgbcYY +zp4K4lVBnHhFrF8MOUOxJ7kQWIJZMZFt+BDcptCYurbD2H4W2xvnWViiC+LzCMzz +iMJT6165uefL4JHTDPxC2fFiM9yrc72LmylJNkM/vepT128J5Qv0gRUaQbHiQuS6 +Dm/+WRnUfx3i89SV4mnBxb/Ta93GVqoOciWwzWSnwEnWYAvOb95JL4U7c5J5f/+c +KnQDHsW7sIiIdscsWzvgf6qs2Ra1Zrt7Fdk4+ZS2f/adagLhDO1C24sXf5XfMk5m +L0OGwZSr9m5s17VXxfspgU5ugc8kBJfzABEBAAGJAR8EGAEIAAkFAljmORgCGwwA +CgkQQ0RZHhlkxfzwDQf/Y5on5o+s/xD3tDyRYa6SErfT44lEArdCD7Yi+cygJFox +3jyM8ovtJAkwRegwyxcaLN7zeG1p1Sk9ZAYWQEJT6qSU4Ppu+CVGHgxgnTcfUiu6 +EZZQE6srvua53IMY1lT50M7vx0T5VicHFRWBFV2C/Mc32p7cEE6nn45nEZgUXQNl +ySEyvoRlsAJq6gFsfqucVz2vMJDTMVczUtq1CjvUqFbif8JVL36EoZCf1SeRw6d6 +s1Kp3AA33Rjd+Uw87HJ4EIB75zMFQX2H0ggAVdYTQcqGXHP5MZK1jJrHfxJyMi3d +UNW2iqnN3BA7guhOv6OMiROF1+I7Q5nWT63mQC7IgQ== +=Z6nu +-----END PGP PUBLIC KEY BLOCK----- + +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmsigdig.at:137" +$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 'rpmsigdig.at:196' \ + "rpmkeys -K <signed> 1" " " 5 +at_xfail=no +( + $as_echo "57. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:198: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmkeys -K /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -K /data/RPMS/hello-2.0-1.x86_64-signed.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:198" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmkeys -K /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -K /data/RPMS/hello-2.0-1.x86_64-signed.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/data/RPMS/hello-2.0-1.x86_64-signed.rpm: digests SIGNATURES NOT OK +/data/RPMS/hello-2.0-1.x86_64-signed.rpm: digests signatures OK +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmsigdig.at:198" +$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 'rpmsigdig.at:216' \ + "rpmkeys -Kv <signed> 1" " " 5 +at_xfail=no +( + $as_echo "58. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:218: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys -Kv --nodigest /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys -Kv --nosignature /data/RPMS/hello-2.0-1.x86_64-signed.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:218" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys -Kv --nodigest /data/RPMS/hello-2.0-1.x86_64-signed.rpm +runroot rpmkeys -Kv --nosignature /data/RPMS/hello-2.0-1.x86_64-signed.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/data/RPMS/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + MD5 digest: OK +/data/RPMS/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + MD5 digest: OK +/data/RPMS/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: OK +/data/RPMS/hello-2.0-1.x86_64-signed.rpm: + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + MD5 digest: OK +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmsigdig.at:218" +$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 'rpmsigdig.at:258' \ + "rpmkeys -Kv <corrupted signed> 1" " " 5 +at_xfail=no +( + $as_echo "59. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:260: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +pkg=\"hello-2.0-1.x86_64-signed.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=264 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/\${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:260" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=264 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/tmp/hello-2.0-1.x86_64-signed.rpm: + Header signature: BAD (package tag 268: invalid OpenPGP signature) + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + MD5 digest: OK +/tmp/hello-2.0-1.x86_64-signed.rpm: + Header signature: BAD (package tag 268: invalid OpenPGP signature) + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + MD5 digest: OK +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmsigdig.at:260" +$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 'rpmsigdig.at:294' \ + "rpmkeys -Kv <corrupted signed> 2" " " 5 +at_xfail=no +( + $as_echo "60. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:296: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +pkg=\"hello-2.0-1.x86_64-signed.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/\${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:296" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + Header SHA1 digest: BAD (Expected 5cd9874c510b67b44483f9e382a1649ef7743bac != 4261b2c1eb861a4152c2239bce20bfbcaa8971ba) + Header SHA256 digest: BAD (Expected ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9 != 29fdfe92782fb0470a9a164a6c94af87d3b138c63b39d4c30e0223ca1202ba82) + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != de65519eeb4ab52eb076ec054d42e34e) +/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + Header SHA1 digest: BAD (Expected 5cd9874c510b67b44483f9e382a1649ef7743bac != 4261b2c1eb861a4152c2239bce20bfbcaa8971ba) + Header SHA256 digest: BAD (Expected ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9 != 29fdfe92782fb0470a9a164a6c94af87d3b138c63b39d4c30e0223ca1202ba82) + Payload SHA256 digest: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != de65519eeb4ab52eb076ec054d42e34e) +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmsigdig.at:296" +$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 'rpmsigdig.at:331' \ + "rpmkeys -Kv <corrupted signed> 3" " " 5 +at_xfail=no +( + $as_echo "61. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:333: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +pkg=\"hello-2.0-1.x86_64-signed.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=7777 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/\${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:333" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=7777 count=6 2> /dev/null + +runroot rpmkeys -Kv /tmp/${pkg} +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: BAD (Expected 84a7338287bf19715c4eed0243f5cdb447eeb0ade37b2af718d4060aefca2f7c != bea903609dceac36e1f26a983c493c98064d320fdfeb423034ed63d649b2c8dc) + V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != d662cd0d81601a7107312684ad1ddf38) +/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + Header SHA1 digest: OK + Header SHA256 digest: OK + Payload SHA256 digest: BAD (Expected 84a7338287bf19715c4eed0243f5cdb447eeb0ade37b2af718d4060aefca2f7c != bea903609dceac36e1f26a983c493c98064d320fdfeb423034ed63d649b2c8dc) + V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD + MD5 digest: BAD (Expected 137ca1d8b35cca02a1854ba301c5432e != d662cd0d81601a7107312684ad1ddf38) +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmsigdig.at:333" +$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 'rpmsigdig.at:368' \ + "rpmsign --addsign <unsigned>" " " 5 +at_xfail=no +( + $as_echo "62. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:370: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +cp \"\${RPMTEST}\"/data/RPMS/hello-2.0-1.x86_64.rpm \"\${RPMTEST}\"/tmp/ +run rpmsign --key-id 1964C5FC --addsign \"\${RPMTEST}\"/tmp/hello-2.0-1.x86_64.rpm > /dev/null +echo PRE-IMPORT +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest +echo POST-IMPORT +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest +run rpmsign --delsign \"\${RPMTEST}\"/tmp/hello-2.0-1.x86_64.rpm > /dev/null +echo POST-DELSIGN +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:370" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +cp "${RPMTEST}"/data/RPMS/hello-2.0-1.x86_64.rpm "${RPMTEST}"/tmp/ +run rpmsign --key-id 1964C5FC --addsign "${RPMTEST}"/tmp/hello-2.0-1.x86_64.rpm > /dev/null +echo PRE-IMPORT +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest +echo POST-IMPORT +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest +run rpmsign --delsign "${RPMTEST}"/tmp/hello-2.0-1.x86_64.rpm > /dev/null +echo POST-DELSIGN +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64.rpm|grep -v digest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "PRE-IMPORT +/tmp/hello-2.0-1.x86_64.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +POST-IMPORT +/tmp/hello-2.0-1.x86_64.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: OK + V4 RSA/SHA256 Signature, key ID 1964c5fc: OK +POST-DELSIGN +/tmp/hello-2.0-1.x86_64.rpm: +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmsigdig.at:370" +$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 'rpmsigdig.at:403' \ + "rpmsign --delsign <package>" " " 5 +at_xfail=no +( + $as_echo "63. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:405: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +cp \"\${RPMTEST}\"/data/RPMS/hello-2.0-1.x86_64-signed.rpm \"\${RPMTEST}\"/tmp/ +echo PRE-DELSIGN +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64-signed.rpm|grep -v digest +echo POST-DELSIGN +run rpmsign --delsign \"\${RPMTEST}\"/tmp/hello-2.0-1.x86_64-signed.rpm > /dev/null +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64-signed.rpm|grep -v digest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:405" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +cp "${RPMTEST}"/data/RPMS/hello-2.0-1.x86_64-signed.rpm "${RPMTEST}"/tmp/ +echo PRE-DELSIGN +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64-signed.rpm|grep -v digest +echo POST-DELSIGN +run rpmsign --delsign "${RPMTEST}"/tmp/hello-2.0-1.x86_64-signed.rpm > /dev/null +runroot rpmkeys -Kv /tmp/hello-2.0-1.x86_64-signed.rpm|grep -v digest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "PRE-DELSIGN +/tmp/hello-2.0-1.x86_64-signed.rpm: + Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY + V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +POST-DELSIGN +/tmp/hello-2.0-1.x86_64-signed.rpm: +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmsigdig.at:405" +$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 'rpmsigdig.at:430' \ + "rpmsign --addsign <signed>" " " 5 +at_xfail=no +( + $as_echo "64. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmsigdig.at:432: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +cp \"\${RPMTEST}\"/data/RPMS/hello-2.0-1.x86_64-signed.rpm \"\${RPMTEST}\"/tmp/ +run rpmsign --key-id 1964C5FC --addsign \"\${RPMTEST}\"/tmp/hello-2.0-1.x86_64-signed.rpm 2>&1 |grep -q \"already contains identical signature, skipping\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmsigdig.at:432" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +cp "${RPMTEST}"/data/RPMS/hello-2.0-1.x86_64-signed.rpm "${RPMTEST}"/tmp/ +run rpmsign --key-id 1964C5FC --addsign "${RPMTEST}"/tmp/hello-2.0-1.x86_64-signed.rpm 2>&1 |grep -q "already contains identical signature, skipping" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmsigdig.at:432" +$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 'rpmdb.at:23' \ + "rpm --initdb" " " 6 +at_xfail=no +( + $as_echo "65. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:25: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:25" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_65 +#AT_START_66 +at_fn_group_banner 66 'rpmdb.at:36' \ + "rpm -qa" " " 6 +at_xfail=no +( + $as_echo "66. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:38: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +runroot rpm \\ + -qa +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:38" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +runroot rpm \ + -qa + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_66 +#AT_START_67 +at_fn_group_banner 67 'rpmdb.at:49' \ + "rpm -q foo" " " 6 +at_xfail=no +( + $as_echo "67. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:51: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -i \\ + /data/RPMS/foo-1.0-1.noarch.rpm + +runroot rpm -q foo + +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:51" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -i \ + /data/RPMS/foo-1.0-1.noarch.rpm + +runroot rpm -q foo + + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmdb.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_67 +#AT_START_68 +at_fn_group_banner 68 'rpmdb.at:69' \ + "rpm -q foo-" " " 6 +at_xfail=no +( + $as_echo "68. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:71: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -i \\ + /data/RPMS/foo-1.0-1.noarch.rpm + +runroot rpm -q foo- + +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:71" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -i \ + /data/RPMS/foo-1.0-1.noarch.rpm + +runroot rpm -q foo- + + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "package foo- is not installed +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmdb.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_68 +#AT_START_69 +at_fn_group_banner 69 'rpmdb.at:90' \ + "rpm -i *.noarch.rpm" " " 6 +at_xfail=no +( + $as_echo "69. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:93: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -i \\ + /data/RPMS/foo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:93" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -i \ + /data/RPMS/foo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:93" +$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 'rpmdb.at:106' \ + "rpm -U --replacepkgs 1" " " 6 +at_xfail=no +( + $as_echo "70. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:109: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +tpkg=\"/data/RPMS/foo-1.0-1.noarch.rpm\" + +runroot rpm -i \"\${tpkg}\" && + runroot rpm -U --replacepkgs \"\${tpkg}\" && + runroot rpm -qa +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:109" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +tpkg="/data/RPMS/foo-1.0-1.noarch.rpm" + +runroot rpm -i "${tpkg}" && + runroot rpm -U --replacepkgs "${tpkg}" && + runroot rpm -qa + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmdb.at:109" +$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 'rpmdb.at:128' \ + "rpm -U --replacepkgs 2" " " 6 +at_xfail=no + test $RPM_XFAIL -ne 0 && at_xfail=yes +( + $as_echo "71. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:131: + + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +tpkg=\"/data/RPMS/hello-2.0-1.i686.rpm\" + +runroot rpm -U --nodeps --ignorearch \"\${tpkg}\" && + runroot rpm -U --nodeps --ignorearch --nodocs --replacepkgs \"\${tpkg}\" && + runroot rpm -e hello +test -d \"\${RPMTEST}\"/usr/share/doc/hello-2.0 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:131" +( $at_check_trace; + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +tpkg="/data/RPMS/hello-2.0-1.i686.rpm" + +runroot rpm -U --nodeps --ignorearch "${tpkg}" && + runroot rpm -U --nodeps --ignorearch --nodocs --replacepkgs "${tpkg}" && + runroot rpm -e hello +test -d "${RPMTEST}"/usr/share/doc/hello-2.0 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:131" +$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 'rpmdb.at:150' \ + "rpm --reinstall 1" " " 6 +at_xfail=no +( + $as_echo "72. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:153: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +tpkg=\"/data/RPMS/hello-2.0-1.i686.rpm\" + +runroot rpm -U --nodeps --ignorearch \"\${tpkg}\" && + runroot rpm --reinstall --nodeps --ignorearch --nodocs \"\${tpkg}\" && + runroot rpm -e hello +test -d \"\${RPMTEST}\"/usr/share/doc/hello-2.0 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:153" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +tpkg="/data/RPMS/hello-2.0-1.i686.rpm" + +runroot rpm -U --nodeps --ignorearch "${tpkg}" && + runroot rpm --reinstall --nodeps --ignorearch --nodocs "${tpkg}" && + runroot rpm -e hello +test -d "${RPMTEST}"/usr/share/doc/hello-2.0 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:153" +$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 'rpmdb.at:173' \ + "rpm -i --relocate=.. *.i386.rpm" " " 6 +at_xfail=no +( + $as_echo "73. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:175: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -i \\ + --noscripts --nodeps --ignorearch --relocate=/usr=/check \\ + /data/RPMS/hello-1.0-1.i386.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:175" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -i \ + --noscripts --nodeps --ignorearch --relocate=/usr=/check \ + /data/RPMS/hello-1.0-1.i386.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:175" +$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 'rpmdb.at:192' \ + "rpm -i --relocate=.. *.ppc64.rpm" " " 6 +at_xfail=no +( + $as_echo "74. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:194: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -i \\ + --noscripts --nodeps --ignorearch --relocate=/usr=/check \\ + /data/RPMS/hello-1.0-1.ppc64.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:194" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -i \ + --noscripts --nodeps --ignorearch --relocate=/usr=/check \ + /data/RPMS/hello-1.0-1.ppc64.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:194" +$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 'rpmdb.at:208' \ + "rpmdb --rebuilddb" " " 6 +at_xfail=no +( + $as_echo "75. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:210: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --noscripts --nodeps --ignorearch \\ + /data/RPMS/hello-1.0-1.i386.rpm +runroot rpm -qa --qf \"%{nevra} %{dbinstance}\\n\" +runroot rpm -U --noscripts --nodeps --ignorearch \\ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -qa --qf \"%{nevra} %{dbinstance}\\n\" +runroot rpmdb --rebuilddb +runroot rpm -qa --qf \"%{nevra} %{dbinstance}\\n\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:210" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --noscripts --nodeps --ignorearch \ + /data/RPMS/hello-1.0-1.i386.rpm +runroot rpm -qa --qf "%{nevra} %{dbinstance}\n" +runroot rpm -U --noscripts --nodeps --ignorearch \ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -qa --qf "%{nevra} %{dbinstance}\n" +runroot rpmdb --rebuilddb +runroot rpm -qa --qf "%{nevra} %{dbinstance}\n" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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.i386 1 +hello-2.0-1.i686 2 +hello-2.0-1.i686 1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:210" +$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 'rpmdb.at:233' \ + "rpmdb --rebuilddb and verify empty database" " " 6 +at_xfail=no +( + $as_echo "76. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:235: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +runroot rpmdb --rebuilddb +runroot rpmdb --verifydb +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:235" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +runroot rpmdb --rebuilddb +runroot rpmdb --verifydb + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:235" +$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 'rpmdb.at:248' \ + "rpm -U and verify status" " " 6 +at_xfail=no +( + $as_echo "77. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:250: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg status\" \\ + --define \"filedata same_stuff\" \\ + /data/SPECS/conflicttest.spec + +runroot rpm -U /build/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm +runroot rpm -qls conflictstatus +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:250" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg status" \ + --define "filedata same_stuff" \ + /data/SPECS/conflicttest.spec + +runroot rpm -U /build/RPMS/noarch/conflictstatus-1.0-1.noarch.rpm +runroot rpm -qls conflictstatus + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:250" +$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 'rpmdb.at:271' \ + "rpm -U with _install_lang and verify status" " " 6 +at_xfail=no +( + $as_echo "78. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:273: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + /data/SPECS/flangtest.spec + +runroot rpm -U --define \"_install_langs de:fi\" /build/RPMS/noarch/flangtest-1.0-1.noarch.rpm +runroot rpm -qls flangtest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:273" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + /data/SPECS/flangtest.spec + +runroot rpm -U --define "_install_langs de:fi" /build/RPMS/noarch/flangtest-1.0-1.noarch.rpm +runroot rpm -qls flangtest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 +normal /usr/share/flangtest/empty.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:273" +$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 'rpmdb.at:297' \ + "rpm -U and verify files on disk" " " 6 +at_xfail=no +( + $as_echo "79. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:299: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" +rm -rf \"\${RPMTEST}\"/opt/* + +runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +find \"\${RPMTEST}\"/opt | wc -l +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:299" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" +rm -rf "${RPMTEST}"/opt/* + +runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +find "${RPMTEST}"/opt | wc -l + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "6 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmdb.at:299" +$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 'rpmdb.at:318' \ + "rpm -e and verify files removed" " " 6 +at_xfail=no +( + $as_echo "80. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdb.at:320: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" +rm -rf \"\${RPMTEST}\"/opt/* + +runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +runroot rpm -e selfconflict +find \"\${RPMTEST}\"/opt | wc -l +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdb.at:320" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" +rm -rf "${RPMTEST}"/opt/* + +runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +runroot rpm -e selfconflict +find "${RPMTEST}"/opt | wc -l + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmdb.at:320" +$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 'rpmi.at:21' \ + "rpm -U <manifest>" " " 7 +at_xfail=no +( + $as_echo "81. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:23: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +echo /data/RPMS/hello-2.0-1.x86_64.rpm > \${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /tmp/test.mft +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:23" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +echo /data/RPMS/hello-2.0-1.x86_64.rpm > ${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/test.mft + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmi.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_81 +#AT_START_82 +at_fn_group_banner 82 'rpmi.at:36' \ + "rpm -U <manifest notfound 1>" " " 7 +at_xfail=no +( + $as_echo "82. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:38: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +echo /data/RPMS/hello-2.0-1.x86_64.rpm > \${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /tmp/test-not-there.mft +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:38" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +echo /data/RPMS/hello-2.0-1.x86_64.rpm > ${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/test-not-there.mft + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: open of /tmp/test-not-there.mft failed: No such file or directory +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmi.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_82 +#AT_START_83 +at_fn_group_banner 83 'rpmi.at:52' \ + "rpm -U <manifest notfound 2>" " " 7 +at_xfail=no +( + $as_echo "83. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:54: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +echo /data/RPMS/hello-not-there-2.0-1.x86_64.rpm > \${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /tmp/test.mft +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:54" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +echo /data/RPMS/hello-not-there-2.0-1.x86_64.rpm > ${RPMTEST}/tmp/test.mft +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/test.mft + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: open of /data/RPMS/hello-not-there-2.0-1.x86_64.rpm failed: No such file or directory +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmi.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_83 +#AT_START_84 +at_fn_group_banner 84 'rpmi.at:68' \ + "rpm -U <notfound>" " " 7 +at_xfail=no +( + $as_echo "84. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:70: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /data/RPMS/hello-not-there-2.0-1.x86_64.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:70" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /data/RPMS/hello-not-there-2.0-1.x86_64.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: open of /data/RPMS/hello-not-there-2.0-1.x86_64.rpm failed: No such file or directory +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmi.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_84 +#AT_START_85 +at_fn_group_banner 85 'rpmi.at:83' \ + "rpm -U <unsigned>" " " 7 +at_xfail=no +( + $as_echo "85. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:85: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /data/RPMS/hello-2.0-1.x86_64.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:85" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /data/RPMS/hello-2.0-1.x86_64.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/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_85 +#AT_START_86 +at_fn_group_banner 86 'rpmi.at:97' \ + "rpm -U <signed nokey>" " " 7 +at_xfail=no +( + $as_echo "86. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:99: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /data/RPMS/hello-2.0-1.x86_64-signed.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:99" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /data/RPMS/hello-2.0-1.x86_64-signed.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /data/RPMS/hello-2.0-1.x86_64-signed.rpm: Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:99" +$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 'rpmi.at:112' \ + "rpm -U <signed>" " " 7 +at_xfail=no +( + $as_echo "87. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:114: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /data/RPMS/hello-2.0-1.x86_64-signed.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:114" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmkeys --import /data/keys/rpm.org-rsa-2048-test.pub +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /data/RPMS/hello-2.0-1.x86_64-signed.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmi.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_87 +#AT_START_88 +at_fn_group_banner 88 'rpmi.at:127' \ + "rpm -U <corrupted signed 1>" " " 7 +at_xfail=no +( + $as_echo "88. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:129: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +pkg=\"hello-2.0-1.x86_64-signed.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=264 count=2 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:129" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=264 count=2 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: /tmp/hello-2.0-1.x86_64-signed.rpm: Header signature: BAD (package tag 268: invalid OpenPGP signature) +error: /tmp/hello-2.0-1.x86_64-signed.rpm cannot be installed +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmi.at:129" +$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 'rpmi.at:148' \ + "rpm -U <corrupted signed 2>" " " 7 +at_xfail=no +( + $as_echo "89. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:150: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +pkg=\"hello-2.0-1.x86_64-signed.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:150" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=5555 count=6 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: /tmp/hello-2.0-1.x86_64-signed.rpm: Header V4 RSA/SHA256 Signature, key ID 1964c5fc: BAD +error: /tmp/hello-2.0-1.x86_64-signed.rpm: Header SHA1 digest: BAD (Expected 5cd9874c510b67b44483f9e382a1649ef7743bac != 4261b2c1eb861a4152c2239bce20bfbcaa8971ba) +error: /tmp/hello-2.0-1.x86_64-signed.rpm: Header SHA256 digest: BAD (Expected ef920781af3bf072ae9888eec3de1c589143101dff9cc0b561468d395fb766d9 != 29fdfe92782fb0470a9a164a6c94af87d3b138c63b39d4c30e0223ca1202ba82) +error: /tmp/hello-2.0-1.x86_64-signed.rpm cannot be installed +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmi.at:150" +$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 'rpmi.at:173' \ + "rpm -U <corrupted signed 3>" " " 7 +at_xfail=no +( + $as_echo "90. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:175: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +pkg=\"hello-2.0-1.x86_64-signed.rpm\" +cp \"\${RPMTEST}\"/data/RPMS/\${pkg} \"\${RPMTEST}\"/tmp/\${pkg} +dd if=/dev/zero of=\"\${RPMTEST}\"/tmp/\${pkg} \\ + conv=notrunc bs=1 seek=7788 count=6 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \\ + /tmp/\${pkg} +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:175" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +pkg="hello-2.0-1.x86_64-signed.rpm" +cp "${RPMTEST}"/data/RPMS/${pkg} "${RPMTEST}"/tmp/${pkg} +dd if=/dev/zero of="${RPMTEST}"/tmp/${pkg} \ + conv=notrunc bs=1 seek=7788 count=6 2> /dev/null + +runroot rpm -U --ignorearch --ignoreos --nodeps \ + /tmp/${pkg} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /tmp/hello-2.0-1.x86_64-signed.rpm: Header V4 RSA/SHA256 Signature, key ID 1964c5fc: NOKEY +error: unpacking of archive failed: cpio: Bad magic +error: hello-2.0-1.x86_64: install failed +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmi.at:175" +$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 'rpmi.at:197' \ + "rpm -U *.src.rpm" " " 7 +at_xfail=no +( + $as_echo "91. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:199: +rm -rf \${TOPDIR} + +runroot rpm \\ + -U /data/SRPMS/hello-1.0-1.src.rpm +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmi.at:199" +( $at_check_trace; +rm -rf ${TOPDIR} + +runroot rpm \ + -U /data/SRPMS/hello-1.0-1.src.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:199" +$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 'rpmi.at:212' \ + "rpm -i *.src.rpm" " " 7 +at_xfail=no +( + $as_echo "92. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:214: +rm -rf \${TOPDIR} + +runroot rpm \\ + -i /data/SRPMS/hello-1.0-1.src.rpm +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmi.at:214" +( $at_check_trace; +rm -rf ${TOPDIR} + +runroot rpm \ + -i /data/SRPMS/hello-1.0-1.src.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:214" +$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 'rpmi.at:228' \ + "rpm -i <nonexistent file>" " " 7 +at_xfail=no +( + $as_echo "93. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:230: +runroot rpm \\ + -i no_such_file +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmi.at:230" +( $at_check_trace; +runroot rpm \ + -i no_such_file + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:230" +$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 'rpmi.at:240' \ + "rpm -i --nomanifest <garbage text file>" " " 7 +at_xfail=no +( + $as_echo "94. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:242: +junk=\"\${RPMTEST}/textfile\" +cat << EOF > \"\${junk}\" +no_such.file +not_an.rpm +EOF + +runroot rpm \\ + -Uvv --nomanifest /textfile +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmi.at:242" +( $at_check_trace; +junk="${RPMTEST}/textfile" +cat << EOF > "${junk}" +no_such.file +not_an.rpm +EOF + +runroot rpm \ + -Uvv --nomanifest /textfile + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_94 +#AT_START_95 +at_fn_group_banner 95 'rpmi.at:257' \ + "rpm -i <garbage text file" " " 7 +at_xfail=no +( + $as_echo "95. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:259: +junk=\"\${RPMTEST}/not_an.rpm\" +cat << EOF > \"\${junk}\" +no_such.file +not_pkg.rpm +EOF + +runroot rpm \\ + -Uvv /not_an.rpm +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmi.at:259" +( $at_check_trace; +junk="${RPMTEST}/not_an.rpm" +cat << EOF > "${junk}" +no_such.file +not_pkg.rpm +EOF + +runroot rpm \ + -Uvv /not_an.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:259" +$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 'rpmi.at:276' \ + "rpm -U upgrade to newer" " " 7 +at_xfail=no +( + $as_echo "96. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:277: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + /data/SPECS/versiontest.spec +done + +runroot rpm -U /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -q versiontest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:277" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + /data/SPECS/versiontest.spec +done + +runroot rpm -U /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -q versiontest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:277" +$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 'rpmi.at:299' \ + "rpm -U upgrade to older" " " 7 +at_xfail=no +( + $as_echo "97. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:300: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:300" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:300" +$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 'rpmi.at:314' \ + "rpm -U --oldpackage downgrade" " " 7 +at_xfail=no +( + $as_echo "98. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:315: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -q versiontest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:315" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -U --oldpackage /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -q versiontest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:315" +$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 'rpmi.at:330' \ + "rpm -U two versions of same package 1" " " 7 +at_xfail=no +( + $as_echo "99. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:331: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -Uv \\ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -q versiontest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:331" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -Uv \ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -q versiontest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: package versiontest-1.0-1.noarch was already added, replacing with versiontest-2.0-1.noarch +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Preparing packages... +versiontest-2.0-1.noarch +versiontest-2.0-1.noarch +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:331" +$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 'rpmi.at:350' \ + "rpm -U two versions of same package 2" " " 7 +at_xfail=no +( + $as_echo "100. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:351: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -Uv \\ + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -q versiontest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:351" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -Uv \ + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm \ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -q versiontest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: package versiontest-2.0-1.noarch was already added, skipping versiontest-1.0-1.noarch +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Preparing packages... +versiontest-2.0-1.noarch +versiontest-2.0-1.noarch +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:351" +$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 'rpmi.at:370' \ + "rpm -U obsoleted package 1" " " 7 +at_xfail=no +( + $as_echo "101. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:371: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"obs deptest-two\" \\ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + + +runroot rpm -Uv \\ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -q deptest-one +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:371" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "obs deptest-two" \ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + + +runroot rpm -Uv \ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -q deptest-one + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: package deptest-two-1.0-1.noarch was already added, replacing with deptest-one-1.0-1.noarch +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Preparing packages... +deptest-one-1.0-1.noarch +deptest-one-1.0-1.noarch +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:371" +$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 'rpmi.at:399' \ + "rpm -U obsoleted package 2" " " 7 +at_xfail=no +( + $as_echo "102. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:400: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"obs deptest-two\" \\ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + + +runroot rpm -Uv \\ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -q deptest-one +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:400" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "obs deptest-two" \ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + + +runroot rpm -Uv \ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -q deptest-one + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: package deptest-one-1.0-1.noarch was already added, skipping deptest-two-1.0-1.noarch +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Preparing packages... +deptest-one-1.0-1.noarch +deptest-one-1.0-1.noarch +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:400" +$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 'rpmi.at:428' \ + "rpm -i two versions of same package" " " 7 +at_xfail=no +( + $as_echo "103. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:429: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -i \\ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -q versiontest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:429" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -i \ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + /build/RPMS/noarch/versiontest-2.0-1.noarch.rpm +runroot rpm -q versiontest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:429" +$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 'rpmi.at:447' \ + "rpm -i identical versions of same package" " " 7 +at_xfail=no +( + $as_echo "104. $at_setup_line: testing $at_desc ..." + $at_traceon + +{ set +x +$as_echo "$at_srcdir/rpmi.at:448: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -i \\ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -q versiontest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:448" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -i \ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm \ + /build/RPMS/noarch/versiontest-1.0-1.noarch.rpm +runroot rpm -q versiontest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:448" +$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 'rpmi.at:465' \ + "rpm -U with invalid --relocate" " " 7 +at_xfail=no +( + $as_echo "105. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:467: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --test --ignoreos --relocate /usr=/opt \\ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:467" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --test --ignoreos --relocate /usr=/opt \ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " path /usr in package hello-script-1.0-1.noarch is not relocatable +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmi.at:467" +$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 'rpmi.at:482' \ + "rpm -U --badreloc with invalid --relocate" " " 7 +at_xfail=no +( + $as_echo "106. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:484: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --test --ignoreos --badreloc --relocate /usr=/opt \\ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:484" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --test --ignoreos --badreloc --relocate /usr=/opt \ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmi.at:484" +$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 'rpmi.at:498' \ + "rpm -i with/without --excludedocs" " " 7 +at_xfail=no +( + $as_echo "107. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmi.at:500: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/testdoc.spec + +runroot rpm -i --excludedocs \\ + /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm + +RPM_DOCDIR=\$(runroot rpm --eval '%_defaultdocdir') +RPM_DATADIR=\$(runroot rpm --eval '%_datadir') + +test ! -e \${RPMTEST}\${RPM_DOCDIR}/testdoc || exit 1 +test -e \${RPMTEST}\${RPM_DATADIR}/testdoc/nodoc || exit 1 + +runroot rpm -e testdoc + +runroot rpm -i \\ + /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm +test -e \${RPMTEST}\${RPM_DOCDIR}/testdoc/documentation1 || exit 1 +test -e \${RPMTEST}\${RPM_DOCDIR}/testdoc/documentation2 || exit 1 +test -e \${RPMTEST}\${RPM_DOCDIR}/testdoc/examples/example1 || exit 1 +test -e \${RPMTEST}\${RPM_DOCDIR}/testdoc/examples/example2 || exit 1 +test -e \${RPMTEST}\${RPM_DATADIR}/testdoc/nodoc || exit 1 + +runroot rpm -e testdoc +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:500" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/testdoc.spec + +runroot rpm -i --excludedocs \ + /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm + +RPM_DOCDIR=$(runroot rpm --eval '%_defaultdocdir') +RPM_DATADIR=$(runroot rpm --eval '%_datadir') + +test ! -e ${RPMTEST}${RPM_DOCDIR}/testdoc || exit 1 +test -e ${RPMTEST}${RPM_DATADIR}/testdoc/nodoc || exit 1 + +runroot rpm -e testdoc + +runroot rpm -i \ + /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm +test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/documentation1 || exit 1 +test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/documentation2 || exit 1 +test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/examples/example1 || exit 1 +test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/examples/example2 || exit 1 +test -e ${RPMTEST}${RPM_DATADIR}/testdoc/nodoc || exit 1 + +runroot rpm -e testdoc + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmi.at:500" +$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 'rpmorder.at:3' \ + "basic install/erase order 1" " " 8 +at_xfail=no +( + $as_echo "108. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmorder.at:5: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs deptest-two\" \\ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"reqs deptest-three\" \\ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +echo INSTALL: +runroot rpm -Uv --justdb \\ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +echo ERASE: +runroot rpm -ev --justdb \\ + deptest-three \\ + deptest-one \\ + deptest-two +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmorder.at:5" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-two" \ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "reqs deptest-three" \ + /data/SPECS/deptest.spec +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +echo INSTALL: +runroot rpm -Uv --justdb \ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +echo ERASE: +runroot rpm -ev --justdb \ + deptest-three \ + deptest-one \ + deptest-two + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "INSTALL: +Preparing packages... +deptest-three-1.0-1.noarch +deptest-two-1.0-1.noarch +deptest-one-1.0-1.noarch +ERASE: +Preparing packages... +deptest-one-1.0-1.noarch +deptest-two-1.0-1.noarch +deptest-three-1.0-1.noarch +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmorder.at:5" +$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 'rpmbuild.at:23' \ + "rpmbuild -ba *.spec" " " 9 +at_xfail=no +( + $as_echo "109. $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" 5>&- +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_109 +#AT_START_110 +at_fn_group_banner 110 'rpmbuild.at:41' \ + "rpmbuild --rebuild" " " 9 +at_xfail=no +( + $as_echo "110. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:43: +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:43" +( $at_check_trace; +rm -rf ${TOPDIR} + +run rpmbuild \ + --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:43" +$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_110 +#AT_START_111 +at_fn_group_banner 111 'rpmbuild.at:54' \ + "rpmbuild --short-circuit -bl" " " 9 +at_xfail=no +( + $as_echo "111. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:56: +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 -bi \"\${abs_srcdir}\"/data/SPECS/hello.spec &> /dev/null +run rpmbuild --quiet -bl --short-circuit \"\${abs_srcdir}\"/data/SPECS/hello.spec +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:56" +( $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 -bi "${abs_srcdir}"/data/SPECS/hello.spec &> /dev/null +run rpmbuild --quiet -bl --short-circuit "${abs_srcdir}"/data/SPECS/hello.spec + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmbuild.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_111 +#AT_START_112 +at_fn_group_banner 112 'rpmbuild.at:72' \ + "rpmbuild -tb <tar with bad spec>" " " 9 +at_xfail=no +( + $as_echo "112. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:74: +rm -rf \${TOPDIR} + +run rpmbuild \\ + -tb \"\${RPMDATA}/SOURCES/hello-1.0.tar.gz\" +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:74" +( $at_check_trace; +rm -rf ${TOPDIR} + +run rpmbuild \ + -tb "${RPMDATA}/SOURCES/hello-1.0.tar.gz" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:74" +$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_112 +#AT_START_113 +at_fn_group_banner 113 'rpmbuild.at:89' \ + "rpmbuild -tb" " " 9 +at_xfail=no +( + $as_echo "113. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:91: +rm -rf \${TOPDIR} + +run rpmbuild \\ + -ta \"\${RPMDATA}/SOURCES/hello-2.0.tar.gz\" +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:91" +( $at_check_trace; +rm -rf ${TOPDIR} + +run rpmbuild \ + -ta "${RPMDATA}/SOURCES/hello-2.0.tar.gz" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_113 +#AT_START_114 +at_fn_group_banner 114 'rpmbuild.at:104' \ + "rpmbuild %attr and %defattr" " " 9 +at_xfail=no +( + $as_echo "114. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:106: +rm -rf \${TOPDIR} + +runroot rpmbuild \\ + -bb --quiet /data/SPECS/attrtest.spec + +runroot rpm -qp --qf \\ + \"\\n[%{filemodes:perms} %-8{fileusername} %-8{filegroupname} %{filenames}\\n]\"\\ + /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:106" +( $at_check_trace; +rm -rf ${TOPDIR} + +runroot rpmbuild \ + -bb --quiet /data/SPECS/attrtest.spec + +runroot rpm -qp --qf \ + "\n[%{filemodes:perms} %-8{fileusername} %-8{filegroupname} %{filenames}\n]"\ + /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo " +drwx------ root root /a/dir +-r-------- root root /a/file +drwx------ daemon adm /b/dir +-r-------- daemon adm /b/file +drwxr-x--- root adm /c/dir +-rw-r----- daemon root /c/file +drwxr-x--x daemon bin /d/dir +-rw-r--r-- bin daemon /d/file +drwx------ foo bar /e/dir +-r-------- foo bar /e/file +drwxrwx--- bar foo /f/dir +-rw-rw---- bar foo /f/file +drwx------ adm foo /g/dir +-r-------- bar adm /g/file +drwxr-xr-x foo bar /h/dir +-rw-r--r-- foo bar /h/file +drwxr-x--- adm root /i/dir +-rwsr-xr-x root adm /i/file +drwxrwxrwx zoot zoot /j/dir +--w--w--w- zoot zoot /j/file +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:106" +$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_114 +#AT_START_115 +at_fn_group_banner 115 'rpmbuild.at:144' \ + "rpmbuild hardlink" " " 9 +at_xfail=no +( + $as_echo "115. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:146: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \${TOPDIR} + +runroot rpmbuild \\ + -bb --quiet /data/SPECS/hlinktest.spec + +runroot rpm -i /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm + +runroot rpm -q --qf \"[%{filenlinks} %{filenames}\\n]%{longsize}\\n\" hlinktest +runroot rpm -V --nouser --nogroup hlinktest +ls -i \"\${RPMTEST}\"/foo/hello* | awk {'print \$1'} | sort -u | wc -l + +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmbuild.at:146" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf ${TOPDIR} + +runroot rpmbuild \ + -bb --quiet /data/SPECS/hlinktest.spec + +runroot rpm -i /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm + +runroot rpm -q --qf "[%{filenlinks} %{filenames}\n]%{longsize}\n" hlinktest +runroot rpm -V --nouser --nogroup hlinktest +ls -i "${RPMTEST}"/foo/hello* | awk {'print $1'} | sort -u | wc -l + + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "2 /foo/aaaa +1 /foo/copyllo +4 /foo/hello +4 /foo/hello-bar +4 /foo/hello-foo +4 /foo/hello-world +2 /foo/zzzz +87 +1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:146" +$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_115 +#AT_START_116 +at_fn_group_banner 116 'rpmbuild.at:175' \ + "rpmbuild unpackaged files" " " 9 +at_xfail=no +( + $as_echo "116. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:177: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \${TOPDIR} + +runroot rpmbuild \\ + -bb --quiet --with unpackaged_files /data/SPECS/hlinktest.spec +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmbuild.at:177" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf ${TOPDIR} + +runroot rpmbuild \ + -bb --quiet --with unpackaged_files /data/SPECS/hlinktest.spec + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Installed (but unpackaged) file(s) found: + /toot + Installed (but unpackaged) file(s) found: + /toot +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmbuild.at:177" +$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_116 +#AT_START_117 +at_fn_group_banner 117 'rpmbuild.at:195' \ + "rpmbuild unpackaged directories" " " 9 +at_xfail=no + test $RPM_XFAIL -ne 0 && at_xfail=yes +( + $as_echo "117. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:198: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \${TOPDIR} + +runroot rpmbuild \\ + -bb --quiet --with unpackaged_dirs /data/SPECS/hlinktest.spec +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmbuild.at:198" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf ${TOPDIR} + +runroot rpmbuild \ + -bb --quiet --with unpackaged_dirs /data/SPECS/hlinktest.spec + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Installed (but unpackaged) file(s) found: + /zoo + Installed (but unpackaged) file(s) found: + /zoo +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmbuild.at:198" +$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_117 +#AT_START_118 +at_fn_group_banner 118 'rpmbuild.at:215' \ + "rpmbuild glob" " " 9 +at_xfail=no +( + $as_echo "118. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:217: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \${TOPDIR} + +runroot rpmbuild -bb --quiet /data/SPECS/globtest.spec +runroot rpm -qp \\ + --qf \"[%{filemodes:perms} %{filenames}\\n]\" \\ + /build/RPMS/noarch/globtest-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmbuild.at:217" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf ${TOPDIR} + +runroot rpmbuild -bb --quiet /data/SPECS/globtest.spec +runroot rpm -qp \ + --qf "[%{filemodes:perms} %{filenames}\n]" \ + /build/RPMS/noarch/globtest-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "-rw-r--r-- /opt/globtest/baf +drwxr-xr-x /opt/globtest/bang +-rw-r--r-- /opt/globtest/bif +drwxr-xr-x /opt/globtest/bing +drwxr-xr-x /opt/globtest/bong +drwxr-xr-x /opt/globtest/foo +-rw-r--r-- /opt/globtest/foo/one +-rw-r--r-- /opt/globtest/foo/three +-rw-r--r-- /opt/globtest/foo/two +lrwxrwxrwx /opt/globtest/linkbad +lrwxrwxrwx /opt/globtest/linkgood +-rw-r--r-- /opt/globtest/weird%name +-rw-r--r-- /opt/globtest/zab +-rw-r--r-- /opt/globtest/zeb +-rw-r--r-- /opt/globtest/zib +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:217" +$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_118 +#AT_START_119 +at_fn_group_banner 119 'rpmbuild.at:247' \ + "rpmbuild prefixpostfix" " " 9 +at_xfail=no +( + $as_echo "119. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:249: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \${TOPDIR} + +runroot rpmbuild -bb --quiet \\ + /data/SPECS/prefixtest.spec +runroot rpm -qp \\ + --qf \"[%{filemodes:perms} %{filenames}\\n]\" \\ + /build/RPMS/noarch/prefixtest-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmbuild.at:249" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf ${TOPDIR} + +runroot rpmbuild -bb --quiet \ + /data/SPECS/prefixtest.spec +runroot rpm -qp \ + --qf "[%{filemodes:perms} %{filenames}\n]" \ + /build/RPMS/noarch/prefixtest-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "-rw-r--r-- /opt/prefixtest/ba +drwxr-xr-x /opt/prefixtest/ban +-rw-r--r-- /opt/prefixtest/bi +drwxr-xr-x /opt/prefixtest/bin +drwxr-xr-x /opt/prefixtest/bon +drwxr-xr-x /opt/prefixtest/foo +-rw-r--r-- /opt/prefixtest/foo/one +-rw-r--r-- /opt/prefixtest/foo/three +-rw-r--r-- /opt/prefixtest/foo/two +lrwxrwxrwx /opt/prefixtest/linkbad +lrwxrwxrwx /opt/prefixtest/linkgood +-rw-r--r-- /opt/prefixtest/weird%name +-rw-r--r-- /opt/prefixtest/zab +-rw-r--r-- /opt/prefixtest/zeb +-rw-r--r-- /opt/prefixtest/zib +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:249" +$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_119 +#AT_START_120 +at_fn_group_banner 120 'rpmbuild.at:282' \ + "Weak and reverse requires" " " 9 +at_xfail=no +( + $as_echo "120. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:284: + +runroot rpmbuild -bb --quiet \\ + --define \"pkg weakdeps\" \\ + --define \"recs foo > 1.2.3\" \\ + --define \"sugs bar >= 0.1.2\" \\ + --define \"sups baz\" \\ + --define \"ens zap = 3\" \\ + /data/SPECS/deptest.spec + +runroot rpm -qp --recommends /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --suggests /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --supplements /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --enhances /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:284" +( $at_check_trace; + +runroot rpmbuild -bb --quiet \ + --define "pkg weakdeps" \ + --define "recs foo > 1.2.3" \ + --define "sugs bar >= 0.1.2" \ + --define "sups baz" \ + --define "ens zap = 3" \ + /data/SPECS/deptest.spec + +runroot rpm -qp --recommends /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --suggests /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --supplements /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm +runroot rpm -qp --enhances /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "foo > 1.2.3 +bar >= 0.1.2 +baz +zap = 3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.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_120 +#AT_START_121 +at_fn_group_banner 121 'rpmbuild.at:310' \ + "Build requires" " " 9 +at_xfail=no +( + $as_echo "121. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:312: + +runroot rpmbuild -bb --quiet \\ + --define \"pkg buildreq\" \\ + --define \"buildreqs foo > 1.2.3\" \\ + /data/SPECS/deptest.spec +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:312" +( $at_check_trace; + +runroot rpmbuild -bb --quiet \ + --define "pkg buildreq" \ + --define "buildreqs foo > 1.2.3" \ + /data/SPECS/deptest.spec + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed build dependencies: + foo > 1.2.3 is needed by deptest-buildreq-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/rpmbuild.at:312" +$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_121 +#AT_START_122 +at_fn_group_banner 122 'rpmbuild.at:326' \ + "Dependency generation" " " 9 +at_xfail=no +( + $as_echo "122. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:328: + +runroot rpmbuild -bb --quiet \\ + /data/SPECS/filedep.spec +echo Requires: +runroot rpm -qp --requires /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Provides: +runroot rpm -qp --provides /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Filerequires: +runroot rpm -qp --qf '[\"%{FILENAMES}\\t%{FILEREQUIRE}\"\\n]' /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Fileprovides: +runroot rpm -qp --qf '[\"%{FILENAMES}\\t%{FILEPROVIDE}\"\\n]' /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:328" +( $at_check_trace; + +runroot rpmbuild -bb --quiet \ + /data/SPECS/filedep.spec +echo Requires: +runroot rpm -qp --requires /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Provides: +runroot rpm -qp --provides /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Filerequires: +runroot rpm -qp --qf '["%{FILENAMES}\t%{FILEREQUIRE}"\n]' /build/RPMS/noarch/filedep-1.0-1.noarch.rpm +echo Fileprovides: +runroot rpm -qp --qf '["%{FILENAMES}\t%{FILEPROVIDE}"\n]' /build/RPMS/noarch/filedep-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Requires: +/bin/f00f +/bin/sh +rpmlib(CompressedFileNames) <= 3.0.4-1 +rpmlib(FileDigests) <= 4.6.0-1 +rpmlib(PayloadFilesHavePrefix) <= 4.0-1 +Provides: +filedep = 1.0-1 +Filerequires: +\"/etc/foo.conf \" +\"/usr/bin/bar /bin/f00f\" +\"/usr/bin/foo /bin/sh\" +\"/usr/share/doc/filedep \" +\"/usr/share/doc/filedep/README \" +Fileprovides: +\"/etc/foo.conf \" +\"/usr/bin/bar \" +\"/usr/bin/foo \" +\"/usr/share/doc/filedep \" +\"/usr/share/doc/filedep/README \" +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:328" +$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_122 +#AT_START_123 +at_fn_group_banner 123 'rpmbuild.at:369' \ + "rpmspec query 1" " " 9 +at_xfail=no +( + $as_echo "123. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:371: + +runroot rpmspec -q \\ + --define \"pkg dep\" \\ + --define \"reqs foo > 1.2.3 bar <= 2.3\" \\ + --requires \\ + /data/SPECS/deptest.spec +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:371" +( $at_check_trace; + +runroot rpmspec -q \ + --define "pkg dep" \ + --define "reqs foo > 1.2.3 bar <= 2.3" \ + --requires \ + /data/SPECS/deptest.spec + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "bar <= 2.3 +foo > 1.2.3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:371" +$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_123 +#AT_START_124 +at_fn_group_banner 124 'rpmbuild.at:389' \ + "rpmbuild archive sanity" " " 9 +at_xfail=no +( + $as_echo "124. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:391: +rm -rf \${TOPDIR} + +runroot rpmbuild \\ + -bb --quiet /data/SPECS/attrtest.spec + +runroot rpm2cpio \\ + /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm > /tmp/attrtest.cpio +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:391" +( $at_check_trace; +rm -rf ${TOPDIR} + +runroot rpmbuild \ + -bb --quiet /data/SPECS/attrtest.spec + +runroot rpm2cpio \ + /build/RPMS/noarch/attrtest-1.0-1.noarch.rpm > /tmp/attrtest.cpio + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmbuild.at:391" +$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_124 +#AT_START_125 +at_fn_group_banner 125 'rpmbuild.at:407' \ + "rpmbuild debuginfo minisymtab" " " 9 +at_xfail=no +( + $as_echo "125. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:409: +rm -rf \${TOPDIR} + +# Use macros.debug to generate a debuginfo package. +export CFLAGS=\"-g\" +rundebug rpmbuild --quiet \\ + --rebuild \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm + +# Extract the main package and inspect the hello binary +# It should contain .gnu_debugdata, but not the full .symtab +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu +test -f ./usr/local/bin/hello || exit 1 +readelf -S ./usr/local/bin/hello |\\ + grep -q .gnu_debugdata; test \$? == 0 || exit 1 +readelf -S ./usr/local/bin/hello \\ + | grep -q .symtab; test \$? == 1 || exit 1 + +# And the opposite for the debuginfo package +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | cpio -diu +test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \\ + | grep -q .gnu_debugdata; test \$? == 1 || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \\ + | grep -q .symtab; test \$? == 0 || exit 1 +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:409" +( $at_check_trace; +rm -rf ${TOPDIR} + +# Use macros.debug to generate a debuginfo package. +export CFLAGS="-g" +rundebug rpmbuild --quiet \ + --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm + +# Extract the main package and inspect the hello binary +# It should contain .gnu_debugdata, but not the full .symtab +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu +test -f ./usr/local/bin/hello || exit 1 +readelf -S ./usr/local/bin/hello |\ + grep -q .gnu_debugdata; test $? == 0 || exit 1 +readelf -S ./usr/local/bin/hello \ + | grep -q .symtab; test $? == 1 || exit 1 + +# And the opposite for the debuginfo package +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu +test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \ + | grep -q .gnu_debugdata; test $? == 1 || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \ + | grep -q .symtab; test $? == 0 || exit 1 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 0 $at_status "$at_srcdir/rpmbuild.at:409" +$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_125 +#AT_START_126 +at_fn_group_banner 126 'rpmbuild.at:444' \ + "rpmbuild debuginfo minisymtab strip -g" " " 9 +at_xfail=no +( + $as_echo "126. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:446: +rm -rf \${TOPDIR} + +# Use macros.debug to generate a debuginfo package. +export CFLAGS=\"-g\" +rundebug rpmbuild --quiet \\ + --define=\"_find_debuginfo_opts -g\" \\ + --rebuild \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm + +# Extract the main package and inspect the hello binary +# It should contain .symtab (because of strip -g), so doesn't .gnu_debugdata. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu +test -f ./usr/local/bin/hello || exit 1 +readelf -S ./usr/local/bin/hello \\ + | grep -q .gnu_debugdata; test \$? == 1 || exit 1 +readelf -S ./usr/local/bin/hello \\ + | grep -q .symtab; test \$? == 0 || exit 1 + +# The debuginfo package should contain neither. The .symtab is NOBITS. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | cpio -diu +test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \\ + | grep -q .gnu_debugdata; test \$? == 1 || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \\ + | grep .symtab | grep -q NOBITS; test \$? == 0 || exit 1 +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:446" +( $at_check_trace; +rm -rf ${TOPDIR} + +# Use macros.debug to generate a debuginfo package. +export CFLAGS="-g" +rundebug rpmbuild --quiet \ + --define="_find_debuginfo_opts -g" \ + --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm + +# Extract the main package and inspect the hello binary +# It should contain .symtab (because of strip -g), so doesn't .gnu_debugdata. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu +test -f ./usr/local/bin/hello || exit 1 +readelf -S ./usr/local/bin/hello \ + | grep -q .gnu_debugdata; test $? == 1 || exit 1 +readelf -S ./usr/local/bin/hello \ + | grep -q .symtab; test $? == 0 || exit 1 + +# The debuginfo package should contain neither. The .symtab is NOBITS. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu +test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \ + | grep -q .gnu_debugdata; test $? == 1 || exit 1 +readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \ + | grep .symtab | grep -q NOBITS; test $? == 0 || exit 1 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 0 $at_status "$at_srcdir/rpmbuild.at:446" +$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_126 +#AT_START_127 +at_fn_group_banner 127 'rpmbuild.at:483' \ + "rpmbuild debuginfo dwz" " " 9 +at_xfail=no +( + $as_echo "127. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:485: +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 + +rundebug rpmbuild --quiet \\ + --undefine \"_unique_debug_names\" \\ + --undefine \"_unique_debug_srcs\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec + +# The debuginfo package should contain a .debug file for each binary +# and a dwz multi file that contains the shared debuginfo between them. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu + +hello_file_debug=./usr/lib/debug/usr/local/bin/hello.debug +hello2_file_debug=./usr/lib/debug/usr/local/bin/hello2.debug +hello_multi_file=./usr/lib/debug/.dwz/hello2-1.0-1.* +test -f \$hello_file_debug || echo \"no hello debug file: \$hello_file_debug\" +test -f \$hello2_file_debug || echo \"no hello2 debug file: \$hello2_file_debug\" +test -f \$hello_multi_file || echo \"no dwz multi file: \$hello_multi_file\" + +# Make sure the main package binaries contain the correct build-ids +# linking them to the debug packages. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu +hello_file=./usr/local/bin/hello +hello2_file=./usr/local/bin/hello2 +test -f \$hello_file || echo \"no hello file: \$hello_file\" +test -f \$hello2_file || echo \"no hello2 file: \$hello2_file\" + +id1=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') +id2=\$(file \$hello2_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') +id1debug=\$(file \$hello_file_debug | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') +id2debug=\$(file \$hello2_file_debug | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') +idmulti=\$(file \$hello_multi_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +test \"\$id1\" = \"\$id1debug\" || echo \"id1: \$id1 != id1debug: \$id1debug\" +test \"\$id2\" = \"\$id2debug\" || echo \"id2: \$id2 != id2debug: \$id2debug\" + +# The build-id files should link to the .debug files. +id1file=\"./usr/lib/debug/.build-id/\${id1:0:2}/\${id1:2}\" +canonid1file=\$(readlink -f \${id1file}) +canonfile1=\$(readlink -f \$hello_file) +canonid1debug=\$(readlink -f \${id1file}.debug) +canondebug1=\$(readlink -f \$hello_file_debug) + +test \"\$canonid1file\" = \"\$canonfile1\" \\ + || echo \"canonid1file: \$canonid1file != \$canonfile1\" +test \"\$canonid1debug\" = \"\$canondebug1\" \\ + || echo \"canonid1debug: \$canonid1debug != \$canondebug1\" + +id2file=\"./usr/lib/debug/.build-id/\${id2:0:2}/\${id2:2}\" +canonid2file=\$(readlink -f \${id2file}) +canonfile2=\$(readlink -f \$hello2_file) +canonid2debug=\$(readlink -f \${id2file}.debug) +canondebug2=\$(readlink -f \$hello2_file_debug) + +test \"\$canonid2file\" = \"\$canonfile2\" \\ + || echo \"canonid2: \$canonid2file != \$canonfile2\" +test \"\$canonid2debug\" = \"\$canondebug2\" \\ + || echo \"canonid2debug: \$canonid2debug\" != \"\$canondebug2\" + +# Both .debug files should point to the dwz multi file. +# It would be nice to also test that they contain the correct dwz build-id +# but that is a bit hard to grep out of the section data. +multiref1=\$(readelf --string-dump=.gnu_debugaltlink \$hello_file_debug \\ + | grep ' 0' | cut -c13-) +multiref2=\$(readelf --string-dump=.gnu_debugaltlink \$hello2_file_debug \\ + | grep ' 0' | cut -c13-) + +test \"\$multiref1\" = \"\$multiref2\" || echo \"multiref: \$multiref1 != \$multiref2\" + +canonmultiref=\$(readlink -f \$(dirname \$canondebug1)/\$multiref1) +canonmultifile=\$(readlink -f \$hello_multi_file) + +test \"\$canonmultiref\" = \"\$canonmultifile\" \\ + || echo \"canonmultiref: \$canonmultiref\" != \"\$canonmultifile\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:485" +( $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 + +rundebug rpmbuild --quiet \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# The debuginfo package should contain a .debug file for each binary +# and a dwz multi file that contains the shared debuginfo between them. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +hello_file_debug=./usr/lib/debug/usr/local/bin/hello.debug +hello2_file_debug=./usr/lib/debug/usr/local/bin/hello2.debug +hello_multi_file=./usr/lib/debug/.dwz/hello2-1.0-1.* +test -f $hello_file_debug || echo "no hello debug file: $hello_file_debug" +test -f $hello2_file_debug || echo "no hello2 debug file: $hello2_file_debug" +test -f $hello_multi_file || echo "no dwz multi file: $hello_multi_file" + +# Make sure the main package binaries contain the correct build-ids +# linking them to the debug packages. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu +hello_file=./usr/local/bin/hello +hello2_file=./usr/local/bin/hello2 +test -f $hello_file || echo "no hello file: $hello_file" +test -f $hello2_file || echo "no hello2 file: $hello2_file" + +id1=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') +id2=$(file $hello2_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') +id1debug=$(file $hello_file_debug | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') +id2debug=$(file $hello2_file_debug | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') +idmulti=$(file $hello_multi_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +test "$id1" = "$id1debug" || echo "id1: $id1 != id1debug: $id1debug" +test "$id2" = "$id2debug" || echo "id2: $id2 != id2debug: $id2debug" + +# The build-id files should link to the .debug files. +id1file="./usr/lib/debug/.build-id/${id1:0:2}/${id1:2}" +canonid1file=$(readlink -f ${id1file}) +canonfile1=$(readlink -f $hello_file) +canonid1debug=$(readlink -f ${id1file}.debug) +canondebug1=$(readlink -f $hello_file_debug) + +test "$canonid1file" = "$canonfile1" \ + || echo "canonid1file: $canonid1file != $canonfile1" +test "$canonid1debug" = "$canondebug1" \ + || echo "canonid1debug: $canonid1debug != $canondebug1" + +id2file="./usr/lib/debug/.build-id/${id2:0:2}/${id2:2}" +canonid2file=$(readlink -f ${id2file}) +canonfile2=$(readlink -f $hello2_file) +canonid2debug=$(readlink -f ${id2file}.debug) +canondebug2=$(readlink -f $hello2_file_debug) + +test "$canonid2file" = "$canonfile2" \ + || echo "canonid2: $canonid2file != $canonfile2" +test "$canonid2debug" = "$canondebug2" \ + || echo "canonid2debug: $canonid2debug" != "$canondebug2" + +# Both .debug files should point to the dwz multi file. +# It would be nice to also test that they contain the correct dwz build-id +# but that is a bit hard to grep out of the section data. +multiref1=$(readelf --string-dump=.gnu_debugaltlink $hello_file_debug \ + | grep ' 0' | cut -c13-) +multiref2=$(readelf --string-dump=.gnu_debugaltlink $hello2_file_debug \ + | grep ' 0' | cut -c13-) + +test "$multiref1" = "$multiref2" || echo "multiref: $multiref1 != $multiref2" + +canonmultiref=$(readlink -f $(dirname $canondebug1)/$multiref1) +canonmultifile=$(readlink -f $hello_multi_file) + +test "$canonmultiref" = "$canonmultifile" \ + || echo "canonmultiref: $canonmultiref" != "$canonmultifile" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 0 $at_status "$at_srcdir/rpmbuild.at:485" +$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_127 +#AT_START_128 +at_fn_group_banner 128 'rpmbuild.at:575' \ + "rpmbuild debuginfo dwz unique debug names" " " 9 +at_xfail=no +( + $as_echo "128. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:577: +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 + +rundebug rpmbuild --quiet \\ + --define \"_unique_debug_names 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec + +# The debuginfo package should contain a .debug file for each binary +# and a dwz multi file that contains the shared debuginfo between them. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu + +hello_file_debug=./usr/lib/debug/usr/local/bin/hello-*.debug +hello2_file_debug=./usr/lib/debug/usr/local/bin/hello2-*.debug +hello_multi_file=./usr/lib/debug/.dwz/hello2-1.0-1.* +test -f \$hello_file_debug || echo \"no hello debug file: \$hello_file_debug\" +test -f \$hello2_file_debug || echo \"no hello2 debug file: \$hello2_file_debug\" +test -f \$hello_multi_file || echo \"no dwz multi file: \$hello_multi_file\" + +# Make sure the main package binaries contain the correct build-ids +# linking them to the debug packages. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu +hello_file=./usr/local/bin/hello +hello2_file=./usr/local/bin/hello2 +test -f \$hello_file || echo \"no hello file: \$hello_file\" +test -f \$hello2_file || echo \"no hello2 file: \$hello2_file\" + +id1=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') +id2=\$(file \$hello2_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') +id1debug=\$(file \$hello_file_debug | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') +id2debug=\$(file \$hello2_file_debug | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') +idmulti=\$(file \$hello_multi_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +test \"\$id1\" = \"\$id1debug\" || echo \"id1: \$id1 != id1debug: \$id1debug\" +test \"\$id2\" = \"\$id2debug\" || echo \"id2: \$id2 != id2debug: \$id2debug\" + +# The build-id files should link to the .debug files. +id1file=\"./usr/lib/debug/.build-id/\${id1:0:2}/\${id1:2}\" +canonid1file=\$(readlink -f \${id1file}) +canonfile1=\$(readlink -f \$hello_file) +canonid1debug=\$(readlink -f \${id1file}.debug) +canondebug1=\$(readlink -f \$hello_file_debug) + +test \"\$canonid1file\" = \"\$canonfile1\" \\ + || echo \"canonid1file: \$canonid1file != \$canonfile1\" +test \"\$canonid1debug\" = \"\$canondebug1\" \\ + || echo \"canonid1debug: \$canonid1debug != \$canondebug1\" + +id2file=\"./usr/lib/debug/.build-id/\${id2:0:2}/\${id2:2}\" +canonid2file=\$(readlink -f \${id2file}) +canonfile2=\$(readlink -f \$hello2_file) +canonid2debug=\$(readlink -f \${id2file}.debug) +canondebug2=\$(readlink -f \$hello2_file_debug) + +test \"\$canonid2file\" = \"\$canonfile2\" \\ + || echo \"canonid2: \$canonid2file != \$canonfile2\" +test \"\$canonid2debug\" = \"\$canondebug2\" \\ + || echo \"canonid2debug: \$canonid2debug\" != \"\$canondebug2\" + +# Both .debug files should point to the dwz multi file. +# It would be nice to also test that they contain the correct dwz build-id +# but that is a bit hard to grep out of the section data. +multiref1=\$(readelf --string-dump=.gnu_debugaltlink \$hello_file_debug \\ + | grep ' 0' | cut -c13-) +multiref2=\$(readelf --string-dump=.gnu_debugaltlink \$hello2_file_debug \\ + | grep ' 0' | cut -c13-) + +test \"\$multiref1\" = \"\$multiref2\" || echo \"multiref: \$multiref1 != \$multiref2\" + +canonmultiref=\$(readlink -f \$(dirname \$canondebug1)/\$multiref1) +canonmultifile=\$(readlink -f \$hello_multi_file) + +test \"\$canonmultiref\" = \"\$canonmultifile\" \\ + || echo \"canonmultiref: \$canonmultiref\" != \"\$canonmultifile\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:577" +( $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 + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# The debuginfo package should contain a .debug file for each binary +# and a dwz multi file that contains the shared debuginfo between them. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +hello_file_debug=./usr/lib/debug/usr/local/bin/hello-*.debug +hello2_file_debug=./usr/lib/debug/usr/local/bin/hello2-*.debug +hello_multi_file=./usr/lib/debug/.dwz/hello2-1.0-1.* +test -f $hello_file_debug || echo "no hello debug file: $hello_file_debug" +test -f $hello2_file_debug || echo "no hello2 debug file: $hello2_file_debug" +test -f $hello_multi_file || echo "no dwz multi file: $hello_multi_file" + +# Make sure the main package binaries contain the correct build-ids +# linking them to the debug packages. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu +hello_file=./usr/local/bin/hello +hello2_file=./usr/local/bin/hello2 +test -f $hello_file || echo "no hello file: $hello_file" +test -f $hello2_file || echo "no hello2 file: $hello2_file" + +id1=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') +id2=$(file $hello2_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') +id1debug=$(file $hello_file_debug | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') +id2debug=$(file $hello2_file_debug | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') +idmulti=$(file $hello_multi_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +test "$id1" = "$id1debug" || echo "id1: $id1 != id1debug: $id1debug" +test "$id2" = "$id2debug" || echo "id2: $id2 != id2debug: $id2debug" + +# The build-id files should link to the .debug files. +id1file="./usr/lib/debug/.build-id/${id1:0:2}/${id1:2}" +canonid1file=$(readlink -f ${id1file}) +canonfile1=$(readlink -f $hello_file) +canonid1debug=$(readlink -f ${id1file}.debug) +canondebug1=$(readlink -f $hello_file_debug) + +test "$canonid1file" = "$canonfile1" \ + || echo "canonid1file: $canonid1file != $canonfile1" +test "$canonid1debug" = "$canondebug1" \ + || echo "canonid1debug: $canonid1debug != $canondebug1" + +id2file="./usr/lib/debug/.build-id/${id2:0:2}/${id2:2}" +canonid2file=$(readlink -f ${id2file}) +canonfile2=$(readlink -f $hello2_file) +canonid2debug=$(readlink -f ${id2file}.debug) +canondebug2=$(readlink -f $hello2_file_debug) + +test "$canonid2file" = "$canonfile2" \ + || echo "canonid2: $canonid2file != $canonfile2" +test "$canonid2debug" = "$canondebug2" \ + || echo "canonid2debug: $canonid2debug" != "$canondebug2" + +# Both .debug files should point to the dwz multi file. +# It would be nice to also test that they contain the correct dwz build-id +# but that is a bit hard to grep out of the section data. +multiref1=$(readelf --string-dump=.gnu_debugaltlink $hello_file_debug \ + | grep ' 0' | cut -c13-) +multiref2=$(readelf --string-dump=.gnu_debugaltlink $hello2_file_debug \ + | grep ' 0' | cut -c13-) + +test "$multiref1" = "$multiref2" || echo "multiref: $multiref1 != $multiref2" + +canonmultiref=$(readlink -f $(dirname $canondebug1)/$multiref1) +canonmultifile=$(readlink -f $hello_multi_file) + +test "$canonmultiref" = "$canonmultifile" \ + || echo "canonmultiref: $canonmultiref" != "$canonmultifile" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 0 $at_status "$at_srcdir/rpmbuild.at:577" +$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_128 +#AT_START_129 +at_fn_group_banner 129 'rpmbuild.at:664' \ + "rpmbuild debuginfo dwz gnu_debuglink crc" " " 9 +at_xfail=no +( + $as_echo "129. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:666: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec + +# Unpack the main and debuginfo rpms so we can check binaries and .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu + +# Check that dwz has ran and a multi file has been produced +test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1 + +# Run sepdbugcrcfix on the binaries, both should have correct CRC already. +\${abs_top_builddir}/sepdebugcrcfix ./usr/lib/debug \\ + ./usr/local/bin/hello ./usr/local/bin/hello2 | grep CRC32 | cut -f2 -d: +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:666" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the main and debuginfo rpms so we can check binaries and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu + +# Check that dwz has ran and a multi file has been produced +test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1 + +# Run sepdbugcrcfix on the binaries, both should have correct CRC already. +${abs_top_builddir}/sepdebugcrcfix ./usr/lib/debug \ + ./usr/local/bin/hello ./usr/local/bin/hello2 | grep CRC32 | cut -f2 -d: + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo " Updated 0 CRC32s, 2 CRC32s did match. +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:666" +$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_129 +#AT_START_130 +at_fn_group_banner 130 'rpmbuild.at:698' \ + "rpmbuild implicit suid binary" " " 9 +at_xfail=no +( + $as_echo "130. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:700: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2-suid.spec + +# Unpack rpm so we can check the included binaries. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# List all binaries with suid bit set (should be one, hello). +echo \"suid:\" +find usr -executable -type f -perm /4000 +# List all binaries without suid bit set (should also be one, hello2). +echo \"no-suid:\" +find usr -executable -type f \\! -perm /4000 +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:700" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + -ba "${abs_srcdir}"/data/SPECS/hello2-suid.spec + +# Unpack rpm so we can check the included binaries. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +# List all binaries with suid bit set (should be one, hello). +echo "suid:" +find usr -executable -type f -perm /4000 +# List all binaries without suid bit set (should also be one, hello2). +echo "no-suid:" +find usr -executable -type f \! -perm /4000 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "suid: +usr/local/bin/hello +no-suid: +usr/local/bin/hello2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:700" +$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_130 +#AT_START_131 +at_fn_group_banner 131 'rpmbuild.at:732' \ + "rpmbuild debuginfo gdb index included" " " 9 +at_xfail=no +( + $as_echo "131. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:734: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --define \"_include_gdb_index 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# Check that gdb-add-index has ran and a .gdb_index section has been added +readelf -S ./usr/lib/debug/usr/local/bin/hello2*.debug \\ + | grep gdb_index | cut -c8-17 +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:734" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_include_gdb_index 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that gdb-add-index has ran and a .gdb_index section has been added +readelf -S ./usr/lib/debug/usr/local/bin/hello2*.debug \ + | grep gdb_index | cut -c8-17 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo ".gdb_index +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:734" +$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_131 +#AT_START_132 +at_fn_group_banner 132 'rpmbuild.at:761' \ + "rpmbuild debuginfo no gdb index included" " " 9 +at_xfail=no +( + $as_echo "132. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:763: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --undefine \"_include_gdb_index\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# Check that gdb-add-index has not ran and no .gdb_index section has been added +readelf -S ./usr/lib/debug/usr/local/bin/hello2*.debug \\ + | grep gdb_index | cut -c8-17 +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:763" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --undefine "_include_gdb_index" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that gdb-add-index has not ran and no .gdb_index section has been added +readelf -S ./usr/lib/debug/usr/local/bin/hello2*.debug \ + | grep gdb_index | cut -c8-17 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 0 $at_status "$at_srcdir/rpmbuild.at:763" +$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_132 +#AT_START_133 +at_fn_group_banner 133 'rpmbuild.at:789' \ + "rpmbuild debuginfo unique debug src dir" " " 9 +at_xfail=no +( + $as_echo "133. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:791: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Note that the spec defines hello2 as name, but the source is hello-1.0. +# Disable dwz to make debuginfo path rewrite checking easier. +rundebug rpmbuild --quiet \\ + --undefine \"_find_debuginfo_dwz_opts\" \\ + --define \"_unique_debug_srcs 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# Check that the source path is \"unique\" +# Drop the final arch prefix to make the test arch-independent. +ls ./usr/src/debug/ | cut -f1,2 -d\\. + +# Check that the source path has been rewritten in the .debug file. +# Drop the final arch prefix to make the test arch-independent. +readelf --debug-dump=info ./usr/lib/debug/usr/local/bin/hello2*.debug \\ + | grep comp_dir | sed -e 's/\\t\$//' | cut -f5- -d/ | cut -f1,2 -d\\. +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:791" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Note that the spec defines hello2 as name, but the source is hello-1.0. +# Disable dwz to make debuginfo path rewrite checking easier. +rundebug rpmbuild --quiet \ + --undefine "_find_debuginfo_dwz_opts" \ + --define "_unique_debug_srcs 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that the source path is "unique" +# Drop the final arch prefix to make the test arch-independent. +ls ./usr/src/debug/ | cut -f1,2 -d\. + +# Check that the source path has been rewritten in the .debug file. +# Drop the final arch prefix to make the test arch-independent. +readelf --debug-dump=info ./usr/lib/debug/usr/local/bin/hello2*.debug \ + | grep comp_dir | sed -e 's/\t$//' | cut -f5- -d/ | cut -f1,2 -d\. + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello2-1.0-1 +hello2-1.0-1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:791" +$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_133 +#AT_START_134 +at_fn_group_banner 134 'rpmbuild.at:828' \ + "rpmbuild debuginfo no unique debug src dir" " " 9 +at_xfail=no +( + $as_echo "134. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:830: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Note that the spec defines hello2 as name, but the source is hello-1.0. +# Disable dwz to make debuginfo path rewrite checking easier. +rundebug rpmbuild --quiet \\ + --undefine \"_find_debuginfo_dwz_opts\" \\ + --undefine \"_unique_debug_srcs\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# Check that the source path is \"unique\" +ls ./usr/src/debug/ + +# Check that the source path has been rewritten in the .debug file. +readelf --debug-dump=info ./usr/lib/debug/usr/local/bin/hello2*.debug \\ + | grep comp_dir | sed -e 's/\\t\$//' | cut -f5- -d/ +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:830" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Note that the spec defines hello2 as name, but the source is hello-1.0. +# Disable dwz to make debuginfo path rewrite checking easier. +rundebug rpmbuild --quiet \ + --undefine "_find_debuginfo_dwz_opts" \ + --undefine "_unique_debug_srcs" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debuginfo rpms so we can check the .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that the source path is "unique" +ls ./usr/src/debug/ + +# Check that the source path has been rewritten in the .debug file. +readelf --debug-dump=info ./usr/lib/debug/usr/local/bin/hello2*.debug \ + | grep comp_dir | sed -e 's/\t$//' | cut -f5- -d/ + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello-1.0 +hello-1.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:830" +$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_134 +#AT_START_135 +at_fn_group_banner 135 'rpmbuild.at:864' \ + "rpmbuild debugsource" " " 9 +at_xfail=no +( + $as_echo "135. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:866: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --define \"_debugsource_packages 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec + +# Unpack the debugsource rpm so we can check the sources are there. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debugsource-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# Check that hello.c is there. +ls ./usr/src/debug/hello2-1.0*/ + +# The debuginfo package should recommend the debugsource package (ignore arch). +echo -n \"Recommends: \" +run rpm -qp --recommends \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\\(.*\\) = ([-.0-9]+)/\\1\\(ignore-arch\\) = \\2/' +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:866" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Build a package that has some debuginfo +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_debugsource_packages 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello2.spec + +# Unpack the debugsource rpm so we can check the sources are there. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debugsource-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that hello.c is there. +ls ./usr/src/debug/hello2-1.0*/ + +# The debuginfo package should recommend the debugsource package (ignore arch). +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\(.*\) = ([-.0-9]+)/\1\(ignore-arch\) = \2/' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello.c +Recommends: hello2-debugsource(ignore-arch) = 1.0-1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:866" +$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_135 +#AT_START_136 +at_fn_group_banner 136 'rpmbuild.at:899' \ + "rpmbuild debugsource debugsourcefiles.list path" "" 9 +at_xfail=no +( + $as_echo "136. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:901: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --define \"_debugsource_packages 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello-cd.spec + +# Unpack the debuginfo rpms so we can check the sources are there. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-debugsource-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# Check that hello.c is there. +ls ./usr/src/debug/test-1.0*/ +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:901" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_debugsource_packages 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello-cd.spec + +# Unpack the debuginfo rpms so we can check the sources are there. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debugsource-1.0-1.*.rpm \ + | cpio -diu --quiet + +# Check that hello.c is there. +ls ./usr/src/debug/test-1.0*/ + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello.c +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:901" +$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_136 +#AT_START_137 +at_fn_group_banner 137 'rpmbuild.at:927' \ + "rpmbuild debuginfo subpackages single" " " 9 +at_xfail=no +( + $as_echo "137. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:929: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --undefine \"_unique_debug_names\" \\ + --undefine \"_unique_debug_srcs\" \\ + --undefine \"_debugsource_packages\" \\ + --undefine \"_debuginfo_subpackages\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/test-subpackages.spec + +# Check that there is just one debuginfo package. +ls \${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# Which contains hello.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello debug exists\" +else + echo \"No hello: \$debug_name\" +fi +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:929" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --undefine "_debugsource_packages" \ + --undefine "_debuginfo_subpackages" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages.spec + +# Check that there is just one debuginfo package. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# Which contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "1 +hello debug exists +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:929" +$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_137 +#AT_START_138 +at_fn_group_banner 138 'rpmbuild.at:969' \ + "rpmbuild debuginfo subpackages multiple" " " 9 +at_xfail=no +( + $as_echo "138. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:971: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --undefine \"_unique_debug_names\" \\ + --undefine \"_unique_debug_srcs\" \\ + --undefine \"_debugsource_packages\" \\ + --define \"_debuginfo_subpackages 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls \${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello debug exists\" +else + echo \"No hello: \$debug_name\" +fi + +# Second contains hello2.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello2 debug exists\" +else + echo \"No hello2: \$debug_name\" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n \"Recommends: \" +run rpm -qp --recommends \${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\\(.*\\) = ([-.0-9]+)/\\1\\(ignore-arch\\) = \\2/' + +# Third contains hello3.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello3 debug exists\" +else + echo \"No hello3: \$debug_name\" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n \"Recommends: \" +run rpm -qp --recommends \${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\\(.*\\) = ([-.0-9]+)/\\1\\(ignore-arch\\) = \\2/' +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:971" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --undefine "_debugsource_packages" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# Second contains hello2.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello2 debug exists" +else + echo "No hello2: $debug_name" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\(.*\) = ([-.0-9]+)/\1\(ignore-arch\) = \2/' + +# Third contains hello3.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello3 debug exists" +else + echo "No hello3: $debug_name" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\(.*\) = ([-.0-9]+)/\1\(ignore-arch\) = \2/' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "3 +hello debug exists +hello2 debug exists +Recommends: test-debuginfo(ignore-arch) = 1.0-1 +hello3 debug exists +Recommends: test-debuginfo(ignore-arch) = 1.0-1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:971" +$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_138 +#AT_START_139 +at_fn_group_banner 139 'rpmbuild.at:1053' \ + "rpmbuild debuginfo subpackages multiple unique" " " 9 +at_xfail=no +( + $as_echo "139. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:1055: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --define \"_unique_debug_names 1\" \\ + --define \"_unique_debug_srcs 1\" \\ + --undefine \"_debugsource_packages\" \\ + --define \"_debuginfo_subpackages 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls \${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello debug exists\" +else + echo \"No hello: \$debug_name\" +fi + +# Second contains hello2.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello2 debug exists\" +else + echo \"No hello2: \$debug_name\" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n \"Recommends: \" +run rpm -qp --recommends \${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\\(.*\\) = ([-.0-9]+)/\\1\\(ignore-arch\\) = \\2/' + +# Third contains hello3.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello3 debug exists\" +else + echo \"No hello3: \$debug_name\" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n \"Recommends: \" +run rpm -qp --recommends \${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\\(.*\\) = ([-.0-9]+)/\\1\\(ignore-arch\\) = \\2/' +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:1055" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --undefine "_debugsource_packages" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# Second contains hello2.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello2 debug exists" +else + echo "No hello2: $debug_name" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\(.*\) = ([-.0-9]+)/\1\(ignore-arch\) = \2/' + +# Third contains hello3.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello3 debug exists" +else + echo "No hello3: $debug_name" +fi + +# No debugsource package, so sources are in the main debuginfo package. +# Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\(.*\) = ([-.0-9]+)/\1\(ignore-arch\) = \2/' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "3 +hello debug exists +hello2 debug exists +Recommends: test-debuginfo(ignore-arch) = 1.0-1 +hello3 debug exists +Recommends: test-debuginfo(ignore-arch) = 1.0-1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:1055" +$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_139 +#AT_START_140 +at_fn_group_banner 140 'rpmbuild.at:1137' \ + "rpmbuild debuginfo subpackages multiple unique debugsource" "" 9 +at_xfail=no +( + $as_echo "140. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:1139: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --define \"_unique_debug_names 1\" \\ + --define \"_unique_debug_srcs 1\" \\ + --define \"_debugsource_packages 1\" \\ + --define \"_debuginfo_subpackages 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls \${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello debug exists\" +else + echo \"No hello: \$debug_name\" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n \"Recommends: \" +run rpm -qp --recommends \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\\(.*\\) = ([-.0-9]+)/\\1\\(ignore-arch\\) = \\2/' + +# Second contains hello2.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello2 debug exists\" +else + echo \"No hello2: \$debug_name\" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n \"Recommends: \" +run rpm -qp --recommends \${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\\(.*\\) = ([-.0-9]+)/\\1\\(ignore-arch\\) = \\2/' + +# Third contains hello3.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello3 debug exists\" +else + echo \"No hello3: \$debug_name\" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n \"Recommends: \" +run rpm -qp --recommends \${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\\(.*\\) = ([-.0-9]+)/\\1\\(ignore-arch\\) = \\2/' +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:1139" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --define "_debugsource_packages 1" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages.spec + +# Check that there are 3 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\(.*\) = ([-.0-9]+)/\1\(ignore-arch\) = \2/' + +# Second contains hello2.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello2 debug exists" +else + echo "No hello2: $debug_name" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\(.*\) = ([-.0-9]+)/\1\(ignore-arch\) = \2/' + +# Third contains hello3.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello3 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello3 debug exists" +else + echo "No hello3: $debug_name" +fi + +# Sources are in debugsource package. Make sure it is recommended. +echo -n "Recommends: " +run rpm -qp --recommends ${abs_builddir}/testing/build/RPMS/*/test-test3-debuginfo-1.0-1.*.rpm | sed -E 's/([-.a-z0-9]+)\(.*\) = ([-.0-9]+)/\1\(ignore-arch\) = \2/' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "3 +hello debug exists +Recommends: test-debugsource(ignore-arch) = 1.0-1 +hello2 debug exists +Recommends: test-debugsource(ignore-arch) = 1.0-1 +hello3 debug exists +Recommends: test-debugsource(ignore-arch) = 1.0-1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:1139" +$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_140 +#AT_START_141 +at_fn_group_banner 141 'rpmbuild.at:1224' \ + "rpmbuild debuginfo subpackages multiple excluded" "" 9 +at_xfail=no +( + $as_echo "141. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:1226: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --define \"_unique_debug_names 1\" \\ + --define \"_unique_debug_srcs 1\" \\ + --define \"_debugsource_packages 1\" \\ + --define \"_debuginfo_subpackages 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/test-subpackages-exclude.spec + +# Check that there are 2 debuginfo packages. +ls \${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello debug exists\" +else + echo \"No hello: \$debug_name\" +fi + +# Second contains hello2.debug but NOT hello3.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello2 debug exists\" +else + echo \"No hello2: \$debug_name\" +fi + +if test -f ./usr/lib/debug/bin/hello3*; then + echo \"hello3 debug exists\" +else + echo \"No hello3 debug\" +fi +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:1226" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --define "_debugsource_packages 1" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages-exclude.spec + +# Check that there are 2 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# Second contains hello2.debug but NOT hello3.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello2 | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello2 debug exists" +else + echo "No hello2: $debug_name" +fi + +if test -f ./usr/lib/debug/bin/hello3*; then + echo "hello3 debug exists" +else + echo "No hello3 debug" +fi + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "2 +hello debug exists +hello2 debug exists +No hello3 debug +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:1226" +$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_141 +#AT_START_142 +at_fn_group_banner 142 'rpmbuild.at:1288' \ + "rpmbuild debuginfo subpackages multiple excluded" "" 9 +at_xfail=no +( + $as_echo "142. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuild.at:1290: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \\ + --define \"_unique_debug_names 1\" \\ + --define \"_unique_debug_srcs 1\" \\ + --define \"_debugsource_packages 1\" \\ + --define \"_debuginfo_subpackages 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/test-subpackages-pathpostfixes.spec + +# Check that there are 2 debuginfo packages. +ls \${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello debug exists\" +else + echo \"No hello: \$debug_name\" +fi + +# remove it, we are going to check the other debuginfo package. +rm ./bin/hello +rm ./usr/lib/debug/bin/\$debug_name +orig_debugname=\$debugname + +# Second contains hello.foobar.debug but NOT hello.debug +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \\ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=\$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/\$debug_name; then + echo \"hello.foobar debug exists\" +else + echo \"No hello2: \$debug_name\" +fi + +if test -f ./usr/lib/debug/bin/\$orig_debugname; then + echo \"\$orig_debugname exists\" +else + echo \"No hello.debug\" +fi +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:1290" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +rundebug rpmbuild --quiet \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --define "_debugsource_packages 1" \ + --define "_debuginfo_subpackages 1" \ + -ba "${abs_srcdir}"/data/SPECS/test-subpackages-pathpostfixes.spec + +# Check that there are 2 debuginfo packages. +ls ${abs_builddir}/testing/build/RPMS/*/*debuginfo*rpm | wc --lines + +# First contains hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello debug exists" +else + echo "No hello: $debug_name" +fi + +# remove it, we are going to check the other debuginfo package. +rm ./bin/hello +rm ./usr/lib/debug/bin/$debug_name +orig_debugname=$debugname + +# Second contains hello.foobar.debug but NOT hello.debug +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-1.0-1.*.rpm \ + | cpio -diu --quiet +# Extract the debug name from the exe (.gnu_debuglink section, first string) +debug_name=$(readelf -p .gnu_debuglink ./bin/hello | grep hello | cut -c13-) + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/test-test2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet +if test -f ./usr/lib/debug/bin/$debug_name; then + echo "hello.foobar debug exists" +else + echo "No hello2: $debug_name" +fi + +if test -f ./usr/lib/debug/bin/$orig_debugname; then + echo "$orig_debugname exists" +else + echo "No hello.debug" +fi + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "2 +hello debug exists +hello.foobar debug exists +No hello.debug +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:1290" +$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_142 +#AT_START_143 +at_fn_group_banner 143 'rpmbuildid.at:23' \ + "rpmbuild buildid none" " " 10 +at_xfail=no +( + $as_echo "143. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:25: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links none\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +# There should be zero build-id files in both the main and debuginfo package +echo -n \"hello build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +echo -n \"hello debuginfo build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuildid.at:25" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links none" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be zero build-id files in both the main and debuginfo package +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello build-id files: 0 +hello debuginfo build-id files: 0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.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_143 +#AT_START_144 +at_fn_group_banner 144 'rpmbuildid.at:57' \ + "rpmbuild buildid alldebug" " " 10 +at_xfail=no +( + $as_echo "144. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:59: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links alldebug\" \\ + --undefine \"_unique_debug_names\" \\ + --undefine \"_unique_debug_srcs\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +# There should be zero build-id files in the main package +# Main and debug should be in the debuginfo package, +# plus the .build-id/xx subdir, 3 in total. +echo -n \"hello build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +echo -n \"hello debuginfo build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f \"\${main_file}\" || echo \"No main file \${main_file}\" + +# Extract the build-id from the main file +id_main=\$(file \$main_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +id_main_file=\"./usr/lib/debug/.build-id/\${id_main:0:2}/\${id_main:2}\" +test -L \"\$id_main_file\" || echo \"No build-id file \$id_main_file\" + +canon_main_file=\$(readlink -f \${main_file}) + +test -f \"\$canon_main_file\" \\ + || echo \"Cannot resolve main file \${main_file} -> \${canon_main_file}\" + +canon_main_id_file=\$(readlink -f \${id_main_file}) + +test -f \"\$canon_main_id_file\" \\ + || echo \"Cannot resolve main build-id file \${id_main_file} -> \${canon_main_id_file}\" + +test \"\$canon_main_file\" = \"\$canon_main_id_file\" \\ + || echo \"main and build-id file not linked\" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f \${debug_file} || echo \"No debug file \${debug_file}\" + +# Extract the build-id from the .debug file +id_debug=\$(file \$debug_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +test \${id_main} = \${id_debug} || echo \"unequal main and debug id\" + +id_debug_file=\"./usr/lib/debug/.build-id/\${id_debug:0:2}/\${id_debug:2}.debug\" +test -L \"\$id_debug_file\" || echo \"No build-id file \$id_debug_file\" + +canon_debug_file=\$(readlink -f \${debug_file}) + +test -f \"\$canon_debug_file\" \\ + || echo \"Cannot resolve debug file \${debug_file} -> \${canon_debug_file}\" + +canon_debug_id_file=\$(readlink -f \${id_debug_file}) + +test -f \"\$canon_debug_id_file\" \\ + || echo \"Cannot resolve debug build-id file \${id_debug_file} -> \${canon_debug_id_file}\" + +test \"\$canon_debug_file\" = \"\$canon_debug_id_file\" \\ + || echo \"debug and build-id not linked\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:59" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links alldebug" \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be zero build-id files in the main package +# Main and debug should be in the debuginfo package, +# plus the .build-id/xx subdir, 3 in total. +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +id_main_file="./usr/lib/debug/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello build-id files: 0 +hello debuginfo build-id files: 3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:59" +$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_144 +#AT_START_145 +at_fn_group_banner 145 'rpmbuildid.at:149' \ + "rpmbuild buildid alldebug unique debug names" " " 10 +at_xfail=no +( + $as_echo "145. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:151: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links alldebug\" \\ + --define=\"_unique_debug_names 1\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +# There should be zero build-id files in the main package +# Main and debug should be in the debuginfo package, +# plus the .build-id/xx subdir, 3 in total. +echo -n \"hello build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +echo -n \"hello debuginfo build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f \"\${main_file}\" || echo \"No main file \${main_file}\" + +# Extract the build-id from the main file +id_main=\$(file \$main_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +id_main_file=\"./usr/lib/debug/.build-id/\${id_main:0:2}/\${id_main:2}\" +test -L \"\$id_main_file\" || echo \"No build-id file \$id_main_file\" + +canon_main_file=\$(readlink -f \${main_file}) + +test -f \"\$canon_main_file\" \\ + || echo \"Cannot resolve main file \${main_file} -> \${canon_main_file}\" + +canon_main_id_file=\$(readlink -f \${id_main_file}) + +test -f \"\$canon_main_id_file\" \\ + || echo \"Cannot resolve main build-id file \${id_main_file} -> \${canon_main_id_file}\" + +test \"\$canon_main_file\" = \"\$canon_main_id_file\" \\ + || echo \"main and build-id file not linked\" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*.debug +test -f \${debug_file} || echo \"No debug file \${debug_file}\" + +# Extract the build-id from the .debug file +id_debug=\$(file \$debug_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +test \${id_main} = \${id_debug} || echo \"unequal main and debug id\" + +id_debug_file=\"./usr/lib/debug/.build-id/\${id_debug:0:2}/\${id_debug:2}.debug\" +test -L \"\$id_debug_file\" || echo \"No build-id file \$id_debug_file\" + +canon_debug_file=\$(readlink -f \${debug_file}) + +test -f \"\$canon_debug_file\" \\ + || echo \"Cannot resolve debug file \${debug_file} -> \${canon_debug_file}\" + +canon_debug_id_file=\$(readlink -f \${id_debug_file}) + +test -f \"\$canon_debug_id_file\" \\ + || echo \"Cannot resolve debug build-id file \${id_debug_file} -> \${canon_debug_id_file}\" + +test \"\$canon_debug_file\" = \"\$canon_debug_id_file\" \\ + || echo \"debug and build-id not linked\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:151" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links alldebug" \ + --define="_unique_debug_names 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be zero build-id files in the main package +# Main and debug should be in the debuginfo package, +# plus the .build-id/xx subdir, 3 in total. +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +id_main_file="./usr/lib/debug/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello build-id files: 0 +hello debuginfo build-id files: 3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:151" +$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_145 +#AT_START_146 +at_fn_group_banner 146 'rpmbuildid.at:240' \ + "rpmbuild buildid separate" " " 10 +at_xfail=no +( + $as_echo "146. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:242: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links separate\" \\ + --undefine \"_unique_debug_names\" \\ + --undefine \"_unique_debug_srcs\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package +# plus the .build-id/xx subdir, 2 in total. +echo -n \"hello build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +echo -n \"hello debuginfo build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f \"\${main_file}\" || echo \"No main file \${main_file}\" + +# Extract the build-id from the main file +id_main=\$(file \$main_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +id_main_file=\"./usr/lib/.build-id/\${id_main:0:2}/\${id_main:2}\" +test -L \"\$id_main_file\" || echo \"No build-id file \$id_main_file\" + +canon_main_file=\$(readlink -f \${main_file}) + +test -f \"\$canon_main_file\" \\ + || echo \"Cannot resolve main file \${main_file} -> \${canon_main_file}\" + +canon_main_id_file=\$(readlink -f \${id_main_file}) + +test -f \"\$canon_main_id_file\" \\ + || echo \"Cannot resolve main build-id file \${id_main_file} -> \${canon_main_id_file}\" + +test \"\$canon_main_file\" = \"\$canon_main_id_file\" \\ + || echo \"main and build-id file not linked\" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f \${debug_file} || echo \"No debug file \${debug_file}\" + +# Extract the build-id from the .debug file +id_debug=\$(file \$debug_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +test \${id_main} = \${id_debug} || echo \"unequal main and debug id\" + +id_debug_file=\"./usr/lib/debug/.build-id/\${id_debug:0:2}/\${id_debug:2}.debug\" +test -L \"\$id_debug_file\" || echo \"No build-id file \$id_debug_file\" + +canon_debug_file=\$(readlink -f \${debug_file}) + +test -f \"\$canon_debug_file\" \\ + || echo \"Cannot resolve debug file \${debug_file} -> \${canon_debug_file}\" + +canon_debug_id_file=\$(readlink -f \${id_debug_file}) + +test -f \"\$canon_debug_id_file\" \\ + || echo \"Cannot resolve debug build-id file \${id_debug_file} -> \${canon_debug_id_file}\" + +test \"\$canon_debug_file\" = \"\$canon_debug_id_file\" \\ + || echo \"debug and build-id not linked\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:242" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links separate" \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package +# plus the .build-id/xx subdir, 2 in total. +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +id_main_file="./usr/lib/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello build-id files: 2 +hello debuginfo build-id files: 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.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_146 +#AT_START_147 +at_fn_group_banner 147 'rpmbuildid.at:331' \ + "rpmbuild buildid separate unique debug names" " " 10 +at_xfail=no +( + $as_echo "147. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:333: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links separate\" \\ + --define=\"_unique_debug_names 1\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package +# plus the .build-id/xx subdir, 2 in total. +echo -n \"hello build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +echo -n \"hello debuginfo build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f \"\${main_file}\" || echo \"No main file \${main_file}\" + +# Extract the build-id from the main file +id_main=\$(file \$main_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +id_main_file=\"./usr/lib/.build-id/\${id_main:0:2}/\${id_main:2}\" +test -L \"\$id_main_file\" || echo \"No build-id file \$id_main_file\" + +canon_main_file=\$(readlink -f \${main_file}) + +test -f \"\$canon_main_file\" \\ + || echo \"Cannot resolve main file \${main_file} -> \${canon_main_file}\" + +canon_main_id_file=\$(readlink -f \${id_main_file}) + +test -f \"\$canon_main_id_file\" \\ + || echo \"Cannot resolve main build-id file \${id_main_file} -> \${canon_main_id_file}\" + +test \"\$canon_main_file\" = \"\$canon_main_id_file\" \\ + || echo \"main and build-id file not linked\" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*.debug +test -f \${debug_file} || echo \"No debug file \${debug_file}\" + +# Extract the build-id from the .debug file +id_debug=\$(file \$debug_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +test \${id_main} = \${id_debug} || echo \"unequal main and debug id\" + +id_debug_file=\"./usr/lib/debug/.build-id/\${id_debug:0:2}/\${id_debug:2}.debug\" +test -L \"\$id_debug_file\" || echo \"No build-id file \$id_debug_file\" + +canon_debug_file=\$(readlink -f \${debug_file}) + +test -f \"\$canon_debug_file\" \\ + || echo \"Cannot resolve debug file \${debug_file} -> \${canon_debug_file}\" + +canon_debug_id_file=\$(readlink -f \${id_debug_file}) + +test -f \"\$canon_debug_id_file\" \\ + || echo \"Cannot resolve debug build-id file \${id_debug_file} -> \${canon_debug_id_file}\" + +test \"\$canon_debug_file\" = \"\$canon_debug_id_file\" \\ + || echo \"debug and build-id not linked\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:333" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links separate" \ + --define="_unique_debug_names 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package +# plus the .build-id/xx subdir, 2 in total. +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +id_main_file="./usr/lib/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello build-id files: 2 +hello debuginfo build-id files: 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:333" +$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_147 +#AT_START_148 +at_fn_group_banner 148 'rpmbuildid.at:421' \ + "rpmbuild buildid compat" " " 10 +at_xfail=no +( + $as_echo "148. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:423: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links compat\" \\ + --undefine \"_unique_debug_names\" \\ + --undefine \"_unique_debug_srcs\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package. +# the debuginfo package has one extra main build-id compat symlink +# plus the .build-id/xx subdir, 2 in total in main, 3 in total in debug +echo -n \"hello build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +echo -n \"hello debuginfo build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f \"\${main_file}\" || echo \"No main file \${main_file}\" + +# Extract the build-id from the main file +id_main=\$(file \$main_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +id_main_file=\"./usr/lib/.build-id/\${id_main:0:2}/\${id_main:2}\" +test -L \"\$id_main_file\" || echo \"No build-id file \$id_main_file\" + +canon_main_file=\$(readlink -f \${main_file}) + +test -f \"\$canon_main_file\" \\ + || echo \"Cannot resolve main file \${main_file} -> \${canon_main_file}\" + +canon_main_id_file=\$(readlink -f \${id_main_file}) + +test -f \"\$canon_main_id_file\" \\ + || echo \"Cannot resolve main build-id file \${id_main_file} -> \${canon_main_id_file}\" + +test \"\$canon_main_file\" = \"\$canon_main_id_file\" \\ + || echo \"main and build-id file not linked\" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f \${debug_file} || echo \"No debug file \${debug_file}\" + +# Extract the build-id from the .debug file +id_debug=\$(file \$debug_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +test \${id_main} = \${id_debug} || echo \"unequal main and debug id\" + +id_debug_file=\"./usr/lib/debug/.build-id/\${id_debug:0:2}/\${id_debug:2}.debug\" +test -L \"\$id_debug_file\" || echo \"No build-id file \$id_debug_file\" + +canon_debug_file=\$(readlink -f \${debug_file}) + +test -f \"\$canon_debug_file\" \\ + || echo \"Cannot resolve debug file \${debug_file} -> \${canon_debug_file}\" + +canon_debug_id_file=\$(readlink -f \${id_debug_file}) + +test -f \"\$canon_debug_id_file\" \\ + || echo \"Cannot resolve debug build-id file \${id_debug_file} -> \${canon_debug_id_file}\" + +test \"\$canon_debug_file\" = \"\$canon_debug_id_file\" \\ + || echo \"debug and build-id not linked\" + +# The compat link should also point to the same (indirectly). +id_compat_file=\"./usr/lib/debug/.build-id/\${id_main:0:2}/\${id_main:2}\" +test -L \"\$id_compat_file\" || echo \"No build-id compat file \$id_compat_file\" + +canon_compat_file=\$(readlink -f \${id_compat_file}) + +test -f \"\$canon_compat_file\" \\ + || echo \"Cannot resolve compat file \${id_compat_file} -> \${canon_compat_file}\" + +test \"\$canon_compat_file\" = \"\$canon_main_file\" \\ + || echo \"compat and build-id not linked\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:423" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links compat" \ + --undefine "_unique_debug_names" \ + --undefine "_unique_debug_srcs" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package. +# the debuginfo package has one extra main build-id compat symlink +# plus the .build-id/xx subdir, 2 in total in main, 3 in total in debug +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +id_main_file="./usr/lib/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello.debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" + +# The compat link should also point to the same (indirectly). +id_compat_file="./usr/lib/debug/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_compat_file" || echo "No build-id compat file $id_compat_file" + +canon_compat_file=$(readlink -f ${id_compat_file}) + +test -f "$canon_compat_file" \ + || echo "Cannot resolve compat file ${id_compat_file} -> ${canon_compat_file}" + +test "$canon_compat_file" = "$canon_main_file" \ + || echo "compat and build-id not linked" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello build-id files: 2 +hello debuginfo build-id files: 3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:423" +$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_148 +#AT_START_149 +at_fn_group_banner 149 'rpmbuildid.at:525' \ + "rpmbuild buildid compat unique debug names" " " 10 +at_xfail=no +( + $as_echo "149. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:527: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links compat\" \\ + --define=\"_unique_debug_names 1\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package. +# the debuginfo package has one extra main build-id compat symlink +# plus the .build-id/xx subdir, 2 in total in main, 3 in total in debug +echo -n \"hello build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +echo -n \"hello debuginfo build-id files: \" +run rpm -ql -p \"\${TOPDIR}\"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f \"\${main_file}\" || echo \"No main file \${main_file}\" + +# Extract the build-id from the main file +id_main=\$(file \$main_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +id_main_file=\"./usr/lib/.build-id/\${id_main:0:2}/\${id_main:2}\" +test -L \"\$id_main_file\" || echo \"No build-id file \$id_main_file\" + +canon_main_file=\$(readlink -f \${main_file}) + +test -f \"\$canon_main_file\" \\ + || echo \"Cannot resolve main file \${main_file} -> \${canon_main_file}\" + +canon_main_id_file=\$(readlink -f \${id_main_file}) + +test -f \"\$canon_main_id_file\" \\ + || echo \"Cannot resolve main build-id file \${id_main_file} -> \${canon_main_id_file}\" + +test \"\$canon_main_file\" = \"\$canon_main_id_file\" \\ + || echo \"main and build-id file not linked\" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*debug +test -f \${debug_file} || echo \"No debug file \${debug_file}\" + +# Extract the build-id from the .debug file +id_debug=\$(file \$debug_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +test \${id_main} = \${id_debug} || echo \"unequal main and debug id\" + +id_debug_file=\"./usr/lib/debug/.build-id/\${id_debug:0:2}/\${id_debug:2}.debug\" +test -L \"\$id_debug_file\" || echo \"No build-id file \$id_debug_file\" + +canon_debug_file=\$(readlink -f \${debug_file}) + +test -f \"\$canon_debug_file\" \\ + || echo \"Cannot resolve debug file \${debug_file} -> \${canon_debug_file}\" + +canon_debug_id_file=\$(readlink -f \${id_debug_file}) + +test -f \"\$canon_debug_id_file\" \\ + || echo \"Cannot resolve debug build-id file \${id_debug_file} -> \${canon_debug_id_file}\" + +test \"\$canon_debug_file\" = \"\$canon_debug_id_file\" \\ + || echo \"debug and build-id not linked\" + +# The compat link should also point to the same (indirectly). +id_compat_file=\"./usr/lib/debug/.build-id/\${id_main:0:2}/\${id_main:2}\" +test -L \"\$id_compat_file\" || echo \"No build-id compat file \$id_compat_file\" + +canon_compat_file=\$(readlink -f \${id_compat_file}) + +test -f \"\$canon_compat_file\" \\ + || echo \"Cannot resolve compat file \${id_compat_file} -> \${canon_compat_file}\" + +test \"\$canon_compat_file\" = \"\$canon_main_file\" \\ + || echo \"compat and build-id not linked\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:527" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links compat" \ + --define="_unique_debug_names 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello.spec + +# There should be one build-id files in the main and debuginfo package. +# the debuginfo package has one extra main build-id compat symlink +# plus the .build-id/xx subdir, 2 in total in main, 3 in total in debug +echo -n "hello build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +echo -n "hello debuginfo build-id files: " +run rpm -ql -p "${TOPDIR}"/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | grep /.build-id/ | wc --lines + +# Extract the both packages to check the build-id files link to the +# main and .debug files. +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \ + | cpio -diu + +# Check there is a build-id symlink for the main file. +main_file=./usr/local/bin/hello +test -f "${main_file}" || echo "No main file ${main_file}" + +# Extract the build-id from the main file +id_main=$(file $main_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +id_main_file="./usr/lib/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_main_file" || echo "No build-id file $id_main_file" + +canon_main_file=$(readlink -f ${main_file}) + +test -f "$canon_main_file" \ + || echo "Cannot resolve main file ${main_file} -> ${canon_main_file}" + +canon_main_id_file=$(readlink -f ${id_main_file}) + +test -f "$canon_main_id_file" \ + || echo "Cannot resolve main build-id file ${id_main_file} -> ${canon_main_id_file}" + +test "$canon_main_file" = "$canon_main_id_file" \ + || echo "main and build-id file not linked" + +# And check the same for the debug file. +debug_file=./usr/lib/debug/usr/local/bin/hello-*debug +test -f ${debug_file} || echo "No debug file ${debug_file}" + +# Extract the build-id from the .debug file +id_debug=$(file $debug_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +test ${id_main} = ${id_debug} || echo "unequal main and debug id" + +id_debug_file="./usr/lib/debug/.build-id/${id_debug:0:2}/${id_debug:2}.debug" +test -L "$id_debug_file" || echo "No build-id file $id_debug_file" + +canon_debug_file=$(readlink -f ${debug_file}) + +test -f "$canon_debug_file" \ + || echo "Cannot resolve debug file ${debug_file} -> ${canon_debug_file}" + +canon_debug_id_file=$(readlink -f ${id_debug_file}) + +test -f "$canon_debug_id_file" \ + || echo "Cannot resolve debug build-id file ${id_debug_file} -> ${canon_debug_id_file}" + +test "$canon_debug_file" = "$canon_debug_id_file" \ + || echo "debug and build-id not linked" + +# The compat link should also point to the same (indirectly). +id_compat_file="./usr/lib/debug/.build-id/${id_main:0:2}/${id_main:2}" +test -L "$id_compat_file" || echo "No build-id compat file $id_compat_file" + +canon_compat_file=$(readlink -f ${id_compat_file}) + +test -f "$canon_compat_file" \ + || echo "Cannot resolve compat file ${id_compat_file} -> ${canon_compat_file}" + +test "$canon_compat_file" = "$canon_main_file" \ + || echo "compat and build-id not linked" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "hello build-id files: 2 +hello debuginfo build-id files: 3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:527" +$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_149 +#AT_START_150 +at_fn_group_banner 150 'rpmbuildid.at:629' \ + "rpmbuild buildid duplicate alldebug" " " 10 +at_xfail=no +( + $as_echo "150. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:631: +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 + +# Should create two warnings +rundebug rpmbuild --quiet \\ + --define=\"_build_id_links alldebug\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2cp.spec 2>&1 | grep \"^warning: \" \\ + | cut -f1-3 -d' ' + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# alldebug not here... +id_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}\" +test -L \"\$id_file\" && echo \"main id in main package\" +id_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1\" +test -L \"\$id_dup_file\" && echo \"main dup id in main package\" + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# alldebug, so they are all here +test -L \"\$id_file\" && echo \"main id in debug package\" +test -L \"\$id_dup_file\" && echo \"main dup id in debug package\" + +debug_id_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.debug\" +test -L \"\$debug_id_file\" && echo \"debug id in debug package\" +debug_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1.debug\" +test -L \"\$debug_dup_file\" && echo \"debug dup id in debug package\" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=\$(readlink -f \${id_file}) +canon_dup_file=\$(readlink -f \${id_dup_file}) +test \"\$canon_id_file\" != \"\$canon_dup_file\" \\ + || echo \"id and dup same\" + +canon_debug_id_file=\$(readlink -f \${debug_id_file}) +canon_debug_dup_file=\$(readlink -f \${debug_dup_file}) +test \"\$canon_debug_id_file\" != \"\$canon_debug_dup_file\" \\ + || echo \"debug id and dup same\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:631" +( $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 + +# Should create two warnings +rundebug rpmbuild --quiet \ + --define="_build_id_links alldebug" \ + -ba "${abs_srcdir}"/data/SPECS/hello2cp.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# alldebug not here... +id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# alldebug, so they are all here +test -L "$id_file" && echo "main id in debug package" +test -L "$id_dup_file" && echo "main dup id in debug package" + +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "warning: Duplicate build-ids +warning: Duplicate build-ids +main id in debug package +main dup id in debug package +debug id in debug package +debug dup id in debug package +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:631" +$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_150 +#AT_START_151 +at_fn_group_banner 151 'rpmbuildid.at:697' \ + "rpmbuild buildid hardlink alldebug" " " 10 +at_xfail=no +( + $as_echo "151. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:699: +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \\ + --define=\"_build_id_links alldebug\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2ln.spec 2>&1 | grep \"^warning: \" \\ + | cut -f1-3 -d' ' + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# alldebug not here... +id_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}\" +test -L \"\$id_file\" && echo \"main id in main package\" +id_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1\" +test -L \"\$id_dup_file\" && echo \"main dup id in main package\" + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# alldebug, so they are all here +test -L \"\$id_file\" && echo \"main id in debug package\" +test -L \"\$id_dup_file\" && echo \"main dup id in debug package\" + +debug_id_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.debug\" +test -L \"\$debug_id_file\" && echo \"debug id in debug package\" +debug_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1.debug\" +test -L \"\$debug_dup_file\" && echo \"debug dup id in debug package\" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=\$(readlink -f \${id_file}) +canon_dup_file=\$(readlink -f \${id_dup_file}) +test \"\$canon_id_file\" != \"\$canon_dup_file\" \\ + || echo \"id and dup same\" + +canon_debug_id_file=\$(readlink -f \${debug_id_file}) +canon_debug_dup_file=\$(readlink -f \${debug_dup_file}) +test \"\$canon_debug_id_file\" != \"\$canon_debug_dup_file\" \\ + || echo \"debug id and dup same\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:699" +( $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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --define="_build_id_links alldebug" \ + -ba "${abs_srcdir}"/data/SPECS/hello2ln.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# alldebug not here... +id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# alldebug, so they are all here +test -L "$id_file" && echo "main id in debug package" +test -L "$id_dup_file" && echo "main dup id in debug package" + +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "main id in debug package +main dup id in debug package +debug id in debug package +debug dup id in debug package +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:699" +$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_151 +#AT_START_152 +at_fn_group_banner 152 'rpmbuildid.at:762' \ + "rpmbuild buildid duplicate separate" " " 10 +at_xfail=no +( + $as_echo "152. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:764: +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 + +# Should create two warnings +rundebug rpmbuild --quiet \\ + --define=\"_build_id_links separate\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2cp.spec 2>&1 | grep \"^warning: \" \\ + | cut -f1-3 -d' ' + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# separate build-ids split... +id_file=\"./usr/lib/.build-id/\${id:0:2}/\${id:2}\" +test -L \"\$id_file\" && echo \"main id in main package\" +id_dup_file=\"./usr/lib/.build-id/\${id:0:2}/\${id:2}.1\" +test -L \"\$id_dup_file\" && echo \"main dup id in main package\" + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# separate, so debug ids are here +debug_id_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.debug\" +test -L \"\$debug_id_file\" && echo \"debug id in debug package\" +debug_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1.debug\" +test -L \"\$debug_dup_file\" && echo \"debug dup id in debug package\" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=\$(readlink -f \${id_file}) +canon_dup_file=\$(readlink -f \${id_dup_file}) +test \"\$canon_id_file\" != \"\$canon_dup_file\" \\ + || echo \"id and dup same\" + +canon_debug_id_file=\$(readlink -f \${debug_id_file}) +canon_debug_dup_file=\$(readlink -f \${debug_dup_file}) +test \"\$canon_debug_id_file\" != \"\$canon_debug_dup_file\" \\ + || echo \"debug id and dup same\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:764" +( $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 + +# Should create two warnings +rundebug rpmbuild --quiet \ + --define="_build_id_links separate" \ + -ba "${abs_srcdir}"/data/SPECS/hello2cp.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# separate build-ids split... +id_file="./usr/lib/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# separate, so debug ids are here +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "warning: Duplicate build-ids +warning: Duplicate build-ids +main id in main package +main dup id in main package +debug id in debug package +debug dup id in debug package +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:764" +$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_152 +#AT_START_153 +at_fn_group_banner 153 'rpmbuildid.at:827' \ + "rpmbuild buildid hardlink separate" " " 10 +at_xfail=no +( + $as_echo "153. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:829: +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \\ + --define=\"_build_id_links separate\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2ln.spec 2>&1 | grep \"^warning: \" \\ + | cut -f1-3 -d' ' + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# separate build-ids split... +id_file=\"./usr/lib/.build-id/\${id:0:2}/\${id:2}\" +test -L \"\$id_file\" && echo \"main id in main package\" +id_dup_file=\"./usr/lib/.build-id/\${id:0:2}/\${id:2}.1\" +test -L \"\$id_dup_file\" && echo \"main dup id in main package\" + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# separate, so debug ids are here +debug_id_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.debug\" +test -L \"\$debug_id_file\" && echo \"debug id in debug package\" +debug_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1.debug\" +test -L \"\$debug_dup_file\" && echo \"debug dup id in debug package\" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=\$(readlink -f \${id_file}) +canon_dup_file=\$(readlink -f \${id_dup_file}) +test \"\$canon_id_file\" != \"\$canon_dup_file\" \\ + || echo \"id and dup same\" + +canon_debug_id_file=\$(readlink -f \${debug_id_file}) +canon_debug_dup_file=\$(readlink -f \${debug_dup_file}) +test \"\$canon_debug_id_file\" != \"\$canon_debug_dup_file\" \\ + || echo \"debug id and dup same\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:829" +( $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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --define="_build_id_links separate" \ + -ba "${abs_srcdir}"/data/SPECS/hello2ln.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# separate build-ids split... +id_file="./usr/lib/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# separate, so debug ids are here +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "main id in main package +main dup id in main package +debug id in debug package +debug dup id in debug package +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:829" +$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_153 +#AT_START_154 +at_fn_group_banner 154 'rpmbuildid.at:889' \ + "rpmbuild buildid duplicate compat" " " 10 +at_xfail=no +( + $as_echo "154. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:891: +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 + +# Should create two warnings +rundebug rpmbuild --quiet \\ + --define=\"_build_id_links compat\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2cp.spec 2>&1 | grep \"^warning: \" \\ + | cut -f1-3 -d' ' + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# compat build-ids split... +id_file=\"./usr/lib/.build-id/\${id:0:2}/\${id:2}\" +test -L \"\$id_file\" && echo \"main id in main package\" +id_dup_file=\"./usr/lib/.build-id/\${id:0:2}/\${id:2}.1\" +test -L \"\$id_dup_file\" && echo \"main dup id in main package\" + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# compat, so main (and debug) ids are (also) here +compat_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}\" +test -L \"\$compat_file\" && echo \"compat id in debug package\" +compat_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1\" +test -L \"\$compat_dup_file\" && echo \"compat dup id in debug package\" + +debug_id_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.debug\" +test -L \"\$debug_id_file\" && echo \"debug id in debug package\" +debug_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1.debug\" +test -L \"\$debug_dup_file\" && echo \"debug dup id in debug package\" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=\$(readlink -f \${id_file}) +canon_dup_file=\$(readlink -f \${id_dup_file}) +test \"\$canon_id_file\" != \"\$canon_dup_file\" \\ + || echo \"id and dup same\" + +canon_debug_id_file=\$(readlink -f \${debug_id_file}) +canon_debug_dup_file=\$(readlink -f \${debug_dup_file}) +test \"\$canon_debug_id_file\" != \"\$canon_debug_dup_file\" \\ + || echo \"debug id and dup same\" + +canon_compat_file=\$(readlink -f \${compat_file}) +canon_compat_dup_file=\$(readlink -f \${compat_dup_file}) +test \"\$canon_compat_file\" != \"\$canon_compat_dup_file\" \\ + || echo \"compat id and dup same\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:891" +( $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 + +# Should create two warnings +rundebug rpmbuild --quiet \ + --define="_build_id_links compat" \ + -ba "${abs_srcdir}"/data/SPECS/hello2cp.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# compat build-ids split... +id_file="./usr/lib/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# compat, so main (and debug) ids are (also) here +compat_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}" +test -L "$compat_file" && echo "compat id in debug package" +compat_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1" +test -L "$compat_dup_file" && echo "compat dup id in debug package" + +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" + +canon_compat_file=$(readlink -f ${compat_file}) +canon_compat_dup_file=$(readlink -f ${compat_dup_file}) +test "$canon_compat_file" != "$canon_compat_dup_file" \ + || echo "compat id and dup same" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "warning: Duplicate build-ids +warning: Duplicate build-ids +main id in main package +main dup id in main package +compat id in debug package +compat dup id in debug package +debug id in debug package +debug dup id in debug package +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:891" +$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_154 +#AT_START_155 +at_fn_group_banner 155 'rpmbuildid.at:966' \ + "rpmbuild buildid hardlink compat" " " 10 +at_xfail=no +( + $as_echo "155. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:968: +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \\ + --define=\"_build_id_links compat\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello2ln.spec 2>&1 | grep \"^warning: \" \\ + | cut -f1-3 -d' ' + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# compat build-ids split... +id_file=\"./usr/lib/.build-id/\${id:0:2}/\${id:2}\" +test -L \"\$id_file\" && echo \"main id in main package\" +id_dup_file=\"./usr/lib/.build-id/\${id:0:2}/\${id:2}.1\" +test -L \"\$id_dup_file\" && echo \"main dup id in main package\" + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\ + | cpio -diu --quiet + +# compat, so main (and debug) ids are (also) here +compat_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}\" +test -L \"\$compat_file\" && echo \"compat id in debug package\" +compat_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1\" +test -L \"\$compat_dup_file\" && echo \"compat dup id in debug package\" + +debug_id_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.debug\" +test -L \"\$debug_id_file\" && echo \"debug id in debug package\" +debug_dup_file=\"./usr/lib/debug/.build-id/\${id:0:2}/\${id:2}.1.debug\" +test -L \"\$debug_dup_file\" && echo \"debug dup id in debug package\" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=\$(readlink -f \${id_file}) +canon_dup_file=\$(readlink -f \${id_dup_file}) +test \"\$canon_id_file\" != \"\$canon_dup_file\" \\ + || echo \"id and dup same\" + +canon_debug_id_file=\$(readlink -f \${debug_id_file}) +canon_debug_dup_file=\$(readlink -f \${debug_dup_file}) +test \"\$canon_debug_id_file\" != \"\$canon_debug_dup_file\" \\ + || echo \"debug id and dup same\" + +canon_compat_file=\$(readlink -f \${compat_file}) +canon_compat_dup_file=\$(readlink -f \${compat_dup_file}) +test \"\$canon_compat_file\" != \"\$canon_compat_dup_file\" \\ + || echo \"compat id and dup same\" +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:968" +( $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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --define="_build_id_links compat" \ + -ba "${abs_srcdir}"/data/SPECS/hello2ln.spec 2>&1 | grep "^warning: " \ + | cut -f1-3 -d' ' + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +id=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# compat build-ids split... +id_file="./usr/lib/.build-id/${id:0:2}/${id:2}" +test -L "$id_file" && echo "main id in main package" +id_dup_file="./usr/lib/.build-id/${id:0:2}/${id:2}.1" +test -L "$id_dup_file" && echo "main dup id in main package" + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \ + | cpio -diu --quiet + +# compat, so main (and debug) ids are (also) here +compat_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}" +test -L "$compat_file" && echo "compat id in debug package" +compat_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1" +test -L "$compat_dup_file" && echo "compat dup id in debug package" + +debug_id_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.debug" +test -L "$debug_id_file" && echo "debug id in debug package" +debug_dup_file="./usr/lib/debug/.build-id/${id:0:2}/${id:2}.1.debug" +test -L "$debug_dup_file" && echo "debug dup id in debug package" + +# We don't know which points to which, but we do know they point +# to different files. +canon_id_file=$(readlink -f ${id_file}) +canon_dup_file=$(readlink -f ${id_dup_file}) +test "$canon_id_file" != "$canon_dup_file" \ + || echo "id and dup same" + +canon_debug_id_file=$(readlink -f ${debug_id_file}) +canon_debug_dup_file=$(readlink -f ${debug_dup_file}) +test "$canon_debug_id_file" != "$canon_debug_dup_file" \ + || echo "debug id and dup same" + +canon_compat_file=$(readlink -f ${compat_file}) +canon_compat_dup_file=$(readlink -f ${compat_dup_file}) +test "$canon_compat_file" != "$canon_compat_dup_file" \ + || echo "compat id and dup same" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "main id in main package +main dup id in main package +compat id in debug package +compat dup id in debug package +debug id in debug package +debug dup id in debug package +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:968" +$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_155 +#AT_START_156 +at_fn_group_banner 156 'rpmbuildid.at:1039' \ + "rpmbuild buildid recompute" " " 10 +at_xfail=no +( + $as_echo "156. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:1041: +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 + +# Make sure we get debuginfo +export CFLAGS=\"-g\" + +# Unique 1 +rundebug rpmbuild --quiet \\ + --define=\"_unique_build_ids 1\" \\ + --undefine=\"_no_recompute_build_ids\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f \$hello_file || echo \"No \$hello_file\" +id1=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# Make sure we generate a new one +rm \$hello_file + +# Unique 2 +# Build the \"next\" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \\ + --define=\"_unique_build_ids 1\" \\ + --undefine=\"_no_recompute_build_ids\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello-r2.spec + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \\ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f \$hello_file || echo \"No \$hello_file\" +id2=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# Two unique builds should not be equal +if test \"\$id1\" == \"\$id2\"; then + echo \"uniques equal\"; +else + echo \"uniques unequal\"; +fi + +# Make sure we generate a new one +rm \$hello_file + +# no-recompute 1 +rundebug rpmbuild --quiet \\ + --undefine=\"_unique_build_ids\" \\ + --undefine=\"_unique_debug_names\" \\ + --undefine=\"_unique_debug_srcs\" \\ + --define=\"_no_recompute_build_ids 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f \$hello_file || echo \"No \$hello_file\" +id3=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# An unique and no-recompute build should be unequal +if test \"\$id2\" == \"\$id3\"; then + echo \"no-recompute unique equal\"; +else + echo \"no-recompute unique unequal\"; +fi + +# Make sure we generate a new one +rm \$hello_file + +# no-recompute 2 +# Build the \"next\" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \\ + --undefine=\"_unique_build_ids\" \\ + --undefine=\"_unique_debug_names\" \\ + --undefine=\"_unique_debug_srcs\" \\ + --define=\"_no_recompute_build_ids 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello-r2.spec + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \\ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f \$hello_file || echo \"No \$hello_file\" +id4=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# Two no-recompute builds should be equal. Even for different \"releases\". +if test \"\$id3\" == \"\$id4\"; then + echo \"no-recomputes equal\"; +else + echo \"no-recomputes unequal\"; +fi +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:1041" +( $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 + +# Make sure we get debuginfo +export CFLAGS="-g" + +# Unique 1 +rundebug rpmbuild --quiet \ + --define="_unique_build_ids 1" \ + --undefine="_no_recompute_build_ids" \ + -ba "${abs_srcdir}"/data/SPECS/hello.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id1=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# Make sure we generate a new one +rm $hello_file + +# Unique 2 +# Build the "next" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \ + --define="_unique_build_ids 1" \ + --undefine="_no_recompute_build_ids" \ + -ba "${abs_srcdir}"/data/SPECS/hello-r2.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id2=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# Two unique builds should not be equal +if test "$id1" == "$id2"; then + echo "uniques equal"; +else + echo "uniques unequal"; +fi + +# Make sure we generate a new one +rm $hello_file + +# no-recompute 1 +rundebug rpmbuild --quiet \ + --undefine="_unique_build_ids" \ + --undefine="_unique_debug_names" \ + --undefine="_unique_debug_srcs" \ + --define="_no_recompute_build_ids 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id3=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# An unique and no-recompute build should be unequal +if test "$id2" == "$id3"; then + echo "no-recompute unique equal"; +else + echo "no-recompute unique unequal"; +fi + +# Make sure we generate a new one +rm $hello_file + +# no-recompute 2 +# Build the "next" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \ + --undefine="_unique_build_ids" \ + --undefine="_unique_debug_names" \ + --undefine="_unique_debug_srcs" \ + --define="_no_recompute_build_ids 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello-r2.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id4=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# Two no-recompute builds should be equal. Even for different "releases". +if test "$id3" == "$id4"; then + echo "no-recomputes equal"; +else + echo "no-recomputes unequal"; +fi + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "uniques unequal +no-recompute unique unequal +no-recomputes equal +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:1041" +$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_156 +#AT_START_157 +at_fn_group_banner 157 'rpmbuildid.at:1153' \ + "rpmbuild buildid unique r1 r2" " " 10 +at_xfail=no +( + $as_echo "157. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:1155: +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \\ + --define=\"_unique_build_ids 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f \$hello_file || echo \"No \$hello_file\" +id1=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# Make sure we generate a new one +rm \$hello_file + +# Build the \"next\" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \\ + --define=\"_unique_build_ids 1\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello-r2.spec + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \\ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f \$hello_file || echo \"No \$hello_file\" +id2=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +if test \"\$id1\" == \"\$id2\"; then echo \"equal \$id1\"; else echo \"unequal\"; fi +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:1155" +( $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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --define="_unique_build_ids 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id1=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# Make sure we generate a new one +rm $hello_file + +# Build the "next" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \ + --define="_unique_build_ids 1" \ + -ba "${abs_srcdir}"/data/SPECS/hello-r2.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id2=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +if test "$id1" == "$id2"; then echo "equal $id1"; else echo "unequal"; fi + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "unequal +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:1155" +$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_157 +#AT_START_158 +at_fn_group_banner 158 'rpmbuildid.at:1201' \ + "rpmbuild buildid non-unique r1 r2" " " 10 +at_xfail=no +( + $as_echo "158. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:1203: +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 + +# No warnings for hard links +rundebug rpmbuild --quiet \\ + --undefine=\"_unique_build_ids\" \\ + --undefine=\"_unique_debug_names\" \\ + --undefine=\"_unique_debug_srcs\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello.spec + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \\ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f \$hello_file || echo \"No \$hello_file\" +id1=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +# Make sure we generate a new one +rm \$hello_file + +# Build the \"next\" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \\ + --undefine=\"_unique_build_ids\" \\ + --undefine=\"_unique_debug_names\" \\ + --undefine=\"_unique_debug_srcs\" \\ + -ba \"\${abs_srcdir}\"/data/SPECS/hello-r2.spec + +rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \\ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f \$hello_file || echo \"No \$hello_file\" +id2=\$(file \$hello_file | sed 's/.*, BuildID\\[.*\\]=\\([0-9a-f]*\\),.*/\\1/') + +if test \"\$id1\" == \"\$id2\"; then echo \"equal\"; else echo \"unequal \$id1 \$id2\"; fi +" +at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuildid.at:1203" +( $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 + +# No warnings for hard links +rundebug rpmbuild --quiet \ + --undefine="_unique_build_ids" \ + --undefine="_unique_debug_names" \ + --undefine="_unique_debug_srcs" \ + -ba "${abs_srcdir}"/data/SPECS/hello.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm \ + | cpio -diu --quiet + +hello_file=./usr/local/bin/hello + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id1=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +# Make sure we generate a new one +rm $hello_file + +# Build the "next" release, which has no changes except for the release update. +rundebug rpmbuild --quiet \ + --undefine="_unique_build_ids" \ + --undefine="_unique_debug_names" \ + --undefine="_unique_debug_srcs" \ + -ba "${abs_srcdir}"/data/SPECS/hello-r2.spec + +rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-2.*.rpm \ + | cpio -diu --quiet + +# Extract the build-id from the main file +test -f $hello_file || echo "No $hello_file" +id2=$(file $hello_file | sed 's/.*, BuildID\[.*\]=\([0-9a-f]*\),.*/\1/') + +if test "$id1" == "$id2"; then echo "equal"; else echo "unequal $id1 $id2"; fi + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "equal +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:1203" +$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_158 +#AT_START_159 +at_fn_group_banner 159 'rpmbuildid.at:1253' \ + "rpmbuild buildid attrs" " " 10 +at_xfail=no +( + $as_echo "159. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:1255: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links compat\" \\ + --define \"_unique_debug_names 1\" \\ + --define \"_unique_debug_srcs 1\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello-attr-buildid.spec + +run rpm -qp --qf \"[%{filenames} %{filemodes:perms}\\n]\" \\ + \${abs_builddir}/testing/build/RPMS/*/test-1.0-1*rpm \\ + | grep \"build-id d\" + +run rpm -qp --qf \"[%{filenames} %{filemodes:perms}\\n]\" \\ + \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1*rpm \\ + | grep \"build-id d\" +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuildid.at:1255" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links compat" \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello-attr-buildid.spec + +run rpm -qp --qf "[%{filenames} %{filemodes:perms}\n]" \ + ${abs_builddir}/testing/build/RPMS/*/test-1.0-1*rpm \ + | grep "build-id d" + +run rpm -qp --qf "[%{filenames} %{filemodes:perms}\n]" \ + ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1*rpm \ + | grep "build-id d" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "/usr/lib/.build-id drwxr-xr-x +/usr/lib/debug/.build-id drwxr-xr-x +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:1255" +$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_159 +#AT_START_160 +at_fn_group_banner 160 'rpmbuildid.at:1287' \ + "rpmbuild buildid config attrs" " " 10 +at_xfail=no +( + $as_echo "160. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmbuildid.at:1289: +rm -rf \${TOPDIR} +as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp \"\${abs_srcdir}\"/data/SOURCES/hello.c \${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \\ + --define=\"_build_id_links compat\" \\ + --define \"_unique_debug_names 1\" \\ + --define \"_unique_debug_srcs 1\" \\ + --quiet -ba \"\${abs_srcdir}\"/data/SPECS/hello-config-buildid.spec + +# Should contain one config file. +run rpm -c -qp \${abs_builddir}/testing/build/RPMS/*/test-1.0-1*rpm +# Should not contain config files. +run rpm -c -qp \${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1*rpm +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuildid.at:1289" +( $at_check_trace; +rm -rf ${TOPDIR} +as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p + +# Setup sources +cp "${abs_srcdir}"/data/SOURCES/hello.c ${TOPDIR}/SOURCES + +# Build, contains one ELF which should have a buildid. +rundebug rpmbuild \ + --define="_build_id_links compat" \ + --define "_unique_debug_names 1" \ + --define "_unique_debug_srcs 1" \ + --quiet -ba "${abs_srcdir}"/data/SPECS/hello-config-buildid.spec + +# Should contain one config file. +run rpm -c -qp ${abs_builddir}/testing/build/RPMS/*/test-1.0-1*rpm +# Should not contain config files. +run rpm -c -qp ${abs_builddir}/testing/build/RPMS/*/test-debuginfo-1.0-1*rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "/etc/config.file +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmbuildid.at:1289" +$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_160 +#AT_START_161 +at_fn_group_banner 161 'rpmscript.at:7' \ + "basic scripts and arguments" " " 11 +at_xfail=no +( + $as_echo "161. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmscript.at:9: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +runroot rpmbuild --quiet -bb --define \"rel 1\" /data/SPECS/scripts.spec +runroot rpmbuild --quiet -bb --define \"rel 2\" /data/SPECS/scripts.spec + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -Vvp /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/scripts-1.0-2.noarch.rpm +runroot rpm -Vv scripts +runroot rpm -e scripts +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmscript.at:9" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +runroot rpmbuild --quiet -bb --define "rel 1" /data/SPECS/scripts.spec +runroot rpmbuild --quiet -bb --define "rel 2" /data/SPECS/scripts.spec + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -Vvp /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/scripts-1.0-2.noarch.rpm +runroot rpm -Vv scripts +runroot rpm -e scripts + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "scripts-1.0-1 VERIFY 0 +scripts-1.0-1 PRETRANS 1 +scripts-1.0-1 PRE 1 +scripts-1.0-1 POST 1 +scripts-1.0-1 POSTTRANS 1 +scripts-1.0-2 PRETRANS 2 +scripts-1.0-2 PRE 2 +scripts-1.0-2 POST 2 +scripts-1.0-1 PREUN 1 +scripts-1.0-1 POSTUN 1 +scripts-1.0-2 POSTTRANS 1 +scripts-1.0-2 VERIFY 1 +scripts-1.0-2 PREUN 0 +scripts-1.0-2 POSTUN 0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmscript.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_161 +#AT_START_162 +at_fn_group_banner 162 'rpmscript.at:44' \ + "basic trigger scripts and arguments" " " 11 +at_xfail=no +( + $as_echo "162. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmscript.at:46: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +runroot rpmbuild --quiet -bb --define \"rel 1\" /data/SPECS/scripts.spec +runroot rpmbuild --quiet -bb --define \"rel 2\" /data/SPECS/scripts.spec +runroot rpmbuild --quiet -bb --define \"rel 1\" --define \"trigpkg scripts\" /data/SPECS/triggers.spec +runroot rpmbuild --quiet -bb --define \"rel 2\" --define \"trigpkg scripts\" /data/SPECS/triggers.spec + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +echo TRIGGERS 1 +runroot rpm -U /build/RPMS/noarch/triggers-1.0-1.noarch.rpm +echo SCRIPTS 1 +runroot rpm -U /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +echo SCRIPTS 2 +runroot rpm -U /build/RPMS/noarch/scripts-1.0-2.noarch.rpm +echo TRIGGERS 2 +runroot rpm -U /build/RPMS/noarch/triggers-1.0-2.noarch.rpm +echo ERASE +runroot rpm -e scripts +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmscript.at:46" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +runroot rpmbuild --quiet -bb --define "rel 1" /data/SPECS/scripts.spec +runroot rpmbuild --quiet -bb --define "rel 2" /data/SPECS/scripts.spec +runroot rpmbuild --quiet -bb --define "rel 1" --define "trigpkg scripts" /data/SPECS/triggers.spec +runroot rpmbuild --quiet -bb --define "rel 2" --define "trigpkg scripts" /data/SPECS/triggers.spec + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +echo TRIGGERS 1 +runroot rpm -U /build/RPMS/noarch/triggers-1.0-1.noarch.rpm +echo SCRIPTS 1 +runroot rpm -U /build/RPMS/noarch/scripts-1.0-1.noarch.rpm +echo SCRIPTS 2 +runroot rpm -U /build/RPMS/noarch/scripts-1.0-2.noarch.rpm +echo TRIGGERS 2 +runroot rpm -U /build/RPMS/noarch/triggers-1.0-2.noarch.rpm +echo ERASE +runroot rpm -e scripts + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "TRIGGERS 1 +SCRIPTS 1 +scripts-1.0-1 PRETRANS 1 +triggers-1.0-1 TRIGGERPREIN 1 0 +scripts-1.0-1 PRE 1 +scripts-1.0-1 POST 1 +triggers-1.0-1 TRIGGERIN 1 1 +scripts-1.0-1 POSTTRANS 1 +SCRIPTS 2 +scripts-1.0-2 PRETRANS 2 +triggers-1.0-1 TRIGGERPREIN 1 1 +scripts-1.0-2 PRE 2 +scripts-1.0-2 POST 2 +triggers-1.0-1 TRIGGERIN 1 2 +triggers-1.0-1 TRIGGERUN 1 1 +scripts-1.0-1 PREUN 1 +scripts-1.0-1 POSTUN 1 +triggers-1.0-1 TRIGGERPOSTUN 1 1 +scripts-1.0-2 POSTTRANS 1 +TRIGGERS 2 +triggers-1.0-2 TRIGGERPREIN 1 1 +triggers-1.0-2 TRIGGERIN 2 1 +triggers-1.0-1 TRIGGERUN 1 1 +ERASE +triggers-1.0-2 TRIGGERUN 1 0 +scripts-1.0-2 PREUN 0 +scripts-1.0-2 POSTUN 0 +triggers-1.0-2 TRIGGERPOSTUN 1 0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmscript.at:46" +$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_162 +#AT_START_163 +at_fn_group_banner 163 'rpmscript.at:102' \ + "basic file trigger scripts" " " 11 +at_xfail=no +( + $as_echo "163. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmscript.at:104: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec +runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec +runroot rpmbuild --quiet -bb /data/SPECS/filetriggers.spec + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/filetriggers-1.0-1.noarch.rpm +echo INSTALLATION +runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \\ +/build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm +echo ERASE +runroot rpm -e hello-script hlinktest +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmscript.at:104" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec +runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec +runroot rpmbuild --quiet -bb /data/SPECS/filetriggers.spec + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/filetriggers-1.0-1.noarch.rpm +echo INSTALLATION +runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \ +/build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm +echo ERASE +runroot rpm -e hello-script hlinktest + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "INSTALLATION +filetriggerin(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerin(/foo*)<lua>: +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerin(/usr/bin*): +/usr/bin/hello + +filetriggerin(/usr/bin*)<lua>: +/usr/bin/hello + +transfiletriggerin(/usr/bin*): +/usr/bin/hello + +transfiletriggerin(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +ERASE +transfiletriggerun(/usr/bin*): +/usr/bin/hello + +transfiletriggerun(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerun(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerpostun(/foo*): +/foo/aaaa +/foo/copyllo +/foo/hello +/foo/hello-bar +/foo/hello-foo +/foo/hello-world +/foo/zzzz + +filetriggerun(/usr/bin*): +/usr/bin/hello + +filetriggerpostun(/usr/bin*): +/usr/bin/hello + +transfiletriggerpostun(/usr/bin*): + +transfiletriggerpostun(/foo*): + +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmscript.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_163 +#AT_START_164 +at_fn_group_banner 164 'rpmscript.at:205' \ + "basic file triggers 2" " " 11 +at_xfail=no +( + $as_echo "164. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmscript.at:207: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +for v in 1.0 2.0 3.0; do + runroot rpmbuild --quiet -bb --define \"ver \${v}\" /data/SPECS/parallel.spec +done + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -i \\ + /build/RPMS/noarch/parallel-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/parallel-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/parallel-3.0-1.noarch.rpm + +echo INSTALL: +runroot rpm -U /build/RPMS/noarch/parallel-trigger-1.0-1.noarch.rpm +echo UPGRADE: +runroot rpm -U /build/RPMS/noarch/parallel-trigger-2.0-1.noarch.rpm +echo ERASE: +runroot rpm -e parallel-trigger + +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmscript.at:207" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec +for v in 1.0 2.0 3.0; do + runroot rpmbuild --quiet -bb --define "ver ${v}" /data/SPECS/parallel.spec +done + +runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm +runroot rpm -i \ + /build/RPMS/noarch/parallel-1.0-1.noarch.rpm \ + /build/RPMS/noarch/parallel-2.0-1.noarch.rpm \ + /build/RPMS/noarch/parallel-3.0-1.noarch.rpm + +echo INSTALL: +runroot rpm -U /build/RPMS/noarch/parallel-trigger-1.0-1.noarch.rpm +echo UPGRADE: +runroot rpm -U /build/RPMS/noarch/parallel-trigger-2.0-1.noarch.rpm +echo ERASE: +runroot rpm -e parallel-trigger + + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "INSTALL: +%filetriggerin: 0 0 +36 +%transfiletriggerin: 0 0 +36 +UPGRADE: +%transfiletriggerun: 0 0 +36 +%filetriggerin: 0 0 +36 +%transfiletriggerin: 0 0 +36 +ERASE: +%transfiletriggerun: 0 0 +36 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmscript.at:207" +$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_164 +#AT_START_165 +at_fn_group_banner 165 'rpmvercmp.at:13' \ + "rpmvercmp(1.0, 1.0) = 0" " " 12 +at_xfail=no +( + $as_echo "165. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:13: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0\", \"1.0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:13" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0", "1.0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_165 +#AT_START_166 +at_fn_group_banner 166 'rpmvercmp.at:14' \ + "rpmvercmp(1.0, 2.0) = -1" " " 12 +at_xfail=no +( + $as_echo "166. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:14: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0\", \"2.0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:14" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0", "2.0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_166 +#AT_START_167 +at_fn_group_banner 167 'rpmvercmp.at:15' \ + "rpmvercmp(2.0, 1.0) = 1" " " 12 +at_xfail=no +( + $as_echo "167. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:15: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2.0\", \"1.0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:15" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2.0", "1.0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_167 +#AT_START_168 +at_fn_group_banner 168 'rpmvercmp.at:17' \ + "rpmvercmp(2.0.1, 2.0.1) = 0" " " 12 +at_xfail=no +( + $as_echo "168. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:17: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2.0.1\", \"2.0.1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:17" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2.0.1", "2.0.1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_168 +#AT_START_169 +at_fn_group_banner 169 'rpmvercmp.at:18' \ + "rpmvercmp(2.0, 2.0.1) = -1" " " 12 +at_xfail=no +( + $as_echo "169. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:18: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2.0\", \"2.0.1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:18" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2.0", "2.0.1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_169 +#AT_START_170 +at_fn_group_banner 170 'rpmvercmp.at:19' \ + "rpmvercmp(2.0.1, 2.0) = 1" " " 12 +at_xfail=no +( + $as_echo "170. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:19: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2.0.1\", \"2.0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:19" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2.0.1", "2.0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_170 +#AT_START_171 +at_fn_group_banner 171 'rpmvercmp.at:21' \ + "rpmvercmp(2.0.1a, 2.0.1a) = 0" " " 12 +at_xfail=no +( + $as_echo "171. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:21: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2.0.1a\", \"2.0.1a\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:21" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2.0.1a", "2.0.1a"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_171 +#AT_START_172 +at_fn_group_banner 172 'rpmvercmp.at:22' \ + "rpmvercmp(2.0.1a, 2.0.1) = 1" " " 12 +at_xfail=no +( + $as_echo "172. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:22: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2.0.1a\", \"2.0.1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:22" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2.0.1a", "2.0.1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_172 +#AT_START_173 +at_fn_group_banner 173 'rpmvercmp.at:23' \ + "rpmvercmp(2.0.1, 2.0.1a) = -1" " " 12 +at_xfail=no +( + $as_echo "173. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:23: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2.0.1\", \"2.0.1a\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:23" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2.0.1", "2.0.1a"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_173 +#AT_START_174 +at_fn_group_banner 174 'rpmvercmp.at:25' \ + "rpmvercmp(5.5p1, 5.5p1) = 0" " " 12 +at_xfail=no +( + $as_echo "174. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:25: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.5p1\", \"5.5p1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:25" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.5p1", "5.5p1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_174 +#AT_START_175 +at_fn_group_banner 175 'rpmvercmp.at:26' \ + "rpmvercmp(5.5p1, 5.5p2) = -1" " " 12 +at_xfail=no +( + $as_echo "175. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:26: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.5p1\", \"5.5p2\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:26" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.5p1", "5.5p2"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_175 +#AT_START_176 +at_fn_group_banner 176 'rpmvercmp.at:27' \ + "rpmvercmp(5.5p2, 5.5p1) = 1" " " 12 +at_xfail=no +( + $as_echo "176. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:27: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.5p2\", \"5.5p1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:27" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.5p2", "5.5p1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_176 +#AT_START_177 +at_fn_group_banner 177 'rpmvercmp.at:29' \ + "rpmvercmp(5.5p10, 5.5p10) = 0" " " 12 +at_xfail=no +( + $as_echo "177. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:29: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.5p10\", \"5.5p10\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:29" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.5p10", "5.5p10"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:29" +$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_177 +#AT_START_178 +at_fn_group_banner 178 'rpmvercmp.at:30' \ + "rpmvercmp(5.5p1, 5.5p10) = -1" " " 12 +at_xfail=no +( + $as_echo "178. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:30: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.5p1\", \"5.5p10\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:30" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.5p1", "5.5p10"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:30" +$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_178 +#AT_START_179 +at_fn_group_banner 179 'rpmvercmp.at:31' \ + "rpmvercmp(5.5p10, 5.5p1) = 1" " " 12 +at_xfail=no +( + $as_echo "179. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:31: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.5p10\", \"5.5p1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:31" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.5p10", "5.5p1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_179 +#AT_START_180 +at_fn_group_banner 180 'rpmvercmp.at:33' \ + "rpmvercmp(10xyz, 10.1xyz) = -1" " " 12 +at_xfail=no +( + $as_echo "180. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:33: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10xyz\", \"10.1xyz\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:33" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10xyz", "10.1xyz"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_180 +#AT_START_181 +at_fn_group_banner 181 'rpmvercmp.at:34' \ + "rpmvercmp(10.1xyz, 10xyz) = 1" " " 12 +at_xfail=no +( + $as_echo "181. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:34: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10.1xyz\", \"10xyz\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:34" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10.1xyz", "10xyz"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:34" +$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_181 +#AT_START_182 +at_fn_group_banner 182 'rpmvercmp.at:36' \ + "rpmvercmp(xyz10, xyz10) = 0" " " 12 +at_xfail=no +( + $as_echo "182. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:36: runroot rpm --eval '%{lua: print(rpm.vercmp(\"xyz10\", \"xyz10\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:36" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("xyz10", "xyz10"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:36" +$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_182 +#AT_START_183 +at_fn_group_banner 183 'rpmvercmp.at:37' \ + "rpmvercmp(xyz10, xyz10.1) = -1" " " 12 +at_xfail=no +( + $as_echo "183. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:37: runroot rpm --eval '%{lua: print(rpm.vercmp(\"xyz10\", \"xyz10.1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:37" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("xyz10", "xyz10.1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:37" +$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_183 +#AT_START_184 +at_fn_group_banner 184 'rpmvercmp.at:38' \ + "rpmvercmp(xyz10.1, xyz10) = 1" " " 12 +at_xfail=no +( + $as_echo "184. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:38: runroot rpm --eval '%{lua: print(rpm.vercmp(\"xyz10.1\", \"xyz10\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:38" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("xyz10.1", "xyz10"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_184 +#AT_START_185 +at_fn_group_banner 185 'rpmvercmp.at:40' \ + "rpmvercmp(xyz.4, xyz.4) = 0" " " 12 +at_xfail=no +( + $as_echo "185. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:40: runroot rpm --eval '%{lua: print(rpm.vercmp(\"xyz.4\", \"xyz.4\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:40" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("xyz.4", "xyz.4"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_185 +#AT_START_186 +at_fn_group_banner 186 'rpmvercmp.at:41' \ + "rpmvercmp(xyz.4, 8) = -1" " " 12 +at_xfail=no +( + $as_echo "186. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:41: runroot rpm --eval '%{lua: print(rpm.vercmp(\"xyz.4\", \"8\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:41" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("xyz.4", "8"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:41" +$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_186 +#AT_START_187 +at_fn_group_banner 187 'rpmvercmp.at:42' \ + "rpmvercmp(8, xyz.4) = 1" " " 12 +at_xfail=no +( + $as_echo "187. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:42: runroot rpm --eval '%{lua: print(rpm.vercmp(\"8\", \"xyz.4\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:42" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("8", "xyz.4"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_187 +#AT_START_188 +at_fn_group_banner 188 'rpmvercmp.at:43' \ + "rpmvercmp(xyz.4, 2) = -1" " " 12 +at_xfail=no +( + $as_echo "188. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:43: runroot rpm --eval '%{lua: print(rpm.vercmp(\"xyz.4\", \"2\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:43" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("xyz.4", "2"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:43" +$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_188 +#AT_START_189 +at_fn_group_banner 189 'rpmvercmp.at:44' \ + "rpmvercmp(2, xyz.4) = 1" " " 12 +at_xfail=no +( + $as_echo "189. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:44: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2\", \"xyz.4\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:44" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2", "xyz.4"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:44" +$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_189 +#AT_START_190 +at_fn_group_banner 190 'rpmvercmp.at:46' \ + "rpmvercmp(5.5p2, 5.6p1) = -1" " " 12 +at_xfail=no +( + $as_echo "190. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:46: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.5p2\", \"5.6p1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:46" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.5p2", "5.6p1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:46" +$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_190 +#AT_START_191 +at_fn_group_banner 191 'rpmvercmp.at:47' \ + "rpmvercmp(5.6p1, 5.5p2) = 1" " " 12 +at_xfail=no +( + $as_echo "191. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:47: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.6p1\", \"5.5p2\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:47" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.6p1", "5.5p2"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:47" +$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_191 +#AT_START_192 +at_fn_group_banner 192 'rpmvercmp.at:49' \ + "rpmvercmp(5.6p1, 6.5p1) = -1" " " 12 +at_xfail=no +( + $as_echo "192. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:49: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.6p1\", \"6.5p1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:49" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.6p1", "6.5p1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:49" +$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_192 +#AT_START_193 +at_fn_group_banner 193 'rpmvercmp.at:50' \ + "rpmvercmp(6.5p1, 5.6p1) = 1" " " 12 +at_xfail=no +( + $as_echo "193. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:50: runroot rpm --eval '%{lua: print(rpm.vercmp(\"6.5p1\", \"5.6p1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:50" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("6.5p1", "5.6p1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_193 +#AT_START_194 +at_fn_group_banner 194 'rpmvercmp.at:52' \ + "rpmvercmp(6.0.rc1, 6.0) = 1" " " 12 +at_xfail=no +( + $as_echo "194. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:52: runroot rpm --eval '%{lua: print(rpm.vercmp(\"6.0.rc1\", \"6.0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:52" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("6.0.rc1", "6.0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_194 +#AT_START_195 +at_fn_group_banner 195 'rpmvercmp.at:53' \ + "rpmvercmp(6.0, 6.0.rc1) = -1" " " 12 +at_xfail=no +( + $as_echo "195. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:53: runroot rpm --eval '%{lua: print(rpm.vercmp(\"6.0\", \"6.0.rc1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:53" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("6.0", "6.0.rc1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:53" +$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_195 +#AT_START_196 +at_fn_group_banner 196 'rpmvercmp.at:55' \ + "rpmvercmp(10b2, 10a1) = 1" " " 12 +at_xfail=no +( + $as_echo "196. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:55: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10b2\", \"10a1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:55" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10b2", "10a1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:55" +$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_196 +#AT_START_197 +at_fn_group_banner 197 'rpmvercmp.at:56' \ + "rpmvercmp(10a2, 10b2) = -1" " " 12 +at_xfail=no +( + $as_echo "197. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:56: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10a2\", \"10b2\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:56" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10a2", "10b2"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_197 +#AT_START_198 +at_fn_group_banner 198 'rpmvercmp.at:58' \ + "rpmvercmp(1.0aa, 1.0aa) = 0" " " 12 +at_xfail=no +( + $as_echo "198. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:58: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0aa\", \"1.0aa\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:58" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0aa", "1.0aa"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:58" +$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_198 +#AT_START_199 +at_fn_group_banner 199 'rpmvercmp.at:59' \ + "rpmvercmp(1.0a, 1.0aa) = -1" " " 12 +at_xfail=no +( + $as_echo "199. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:59: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0a\", \"1.0aa\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:59" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0a", "1.0aa"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:59" +$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_199 +#AT_START_200 +at_fn_group_banner 200 'rpmvercmp.at:60' \ + "rpmvercmp(1.0aa, 1.0a) = 1" " " 12 +at_xfail=no +( + $as_echo "200. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:60: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0aa\", \"1.0a\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:60" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0aa", "1.0a"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_200 +#AT_START_201 +at_fn_group_banner 201 'rpmvercmp.at:62' \ + "rpmvercmp(10.0001, 10.0001) = 0" " " 12 +at_xfail=no +( + $as_echo "201. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:62: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10.0001\", \"10.0001\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:62" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10.0001", "10.0001"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:62" +$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_201 +#AT_START_202 +at_fn_group_banner 202 'rpmvercmp.at:63' \ + "rpmvercmp(10.0001, 10.1) = 0" " " 12 +at_xfail=no +( + $as_echo "202. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:63: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10.0001\", \"10.1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:63" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10.0001", "10.1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:63" +$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_202 +#AT_START_203 +at_fn_group_banner 203 'rpmvercmp.at:64' \ + "rpmvercmp(10.1, 10.0001) = 0" " " 12 +at_xfail=no +( + $as_echo "203. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:64: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10.1\", \"10.0001\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:64" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10.1", "10.0001"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_203 +#AT_START_204 +at_fn_group_banner 204 'rpmvercmp.at:65' \ + "rpmvercmp(10.0001, 10.0039) = -1" " " 12 +at_xfail=no +( + $as_echo "204. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:65: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10.0001\", \"10.0039\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:65" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10.0001", "10.0039"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_204 +#AT_START_205 +at_fn_group_banner 205 'rpmvercmp.at:66' \ + "rpmvercmp(10.0039, 10.0001) = 1" " " 12 +at_xfail=no +( + $as_echo "205. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:66: runroot rpm --eval '%{lua: print(rpm.vercmp(\"10.0039\", \"10.0001\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:66" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("10.0039", "10.0001"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:66" +$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_205 +#AT_START_206 +at_fn_group_banner 206 'rpmvercmp.at:68' \ + "rpmvercmp(4.999.9, 5.0) = -1" " " 12 +at_xfail=no +( + $as_echo "206. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:68: runroot rpm --eval '%{lua: print(rpm.vercmp(\"4.999.9\", \"5.0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:68" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("4.999.9", "5.0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_206 +#AT_START_207 +at_fn_group_banner 207 'rpmvercmp.at:69' \ + "rpmvercmp(5.0, 4.999.9) = 1" " " 12 +at_xfail=no +( + $as_echo "207. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:69: runroot rpm --eval '%{lua: print(rpm.vercmp(\"5.0\", \"4.999.9\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:69" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("5.0", "4.999.9"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:69" +$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_207 +#AT_START_208 +at_fn_group_banner 208 'rpmvercmp.at:71' \ + "rpmvercmp(20101121, 20101121) = 0" " " 12 +at_xfail=no +( + $as_echo "208. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:71: runroot rpm --eval '%{lua: print(rpm.vercmp(\"20101121\", \"20101121\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:71" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("20101121", "20101121"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_208 +#AT_START_209 +at_fn_group_banner 209 'rpmvercmp.at:72' \ + "rpmvercmp(20101121, 20101122) = -1" " " 12 +at_xfail=no +( + $as_echo "209. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:72: runroot rpm --eval '%{lua: print(rpm.vercmp(\"20101121\", \"20101122\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:72" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("20101121", "20101122"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:72" +$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_209 +#AT_START_210 +at_fn_group_banner 210 'rpmvercmp.at:73' \ + "rpmvercmp(20101122, 20101121) = 1" " " 12 +at_xfail=no +( + $as_echo "210. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:73: runroot rpm --eval '%{lua: print(rpm.vercmp(\"20101122\", \"20101121\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:73" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("20101122", "20101121"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_210 +#AT_START_211 +at_fn_group_banner 211 'rpmvercmp.at:75' \ + "rpmvercmp(2_0, 2_0) = 0" " " 12 +at_xfail=no +( + $as_echo "211. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:75: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2_0\", \"2_0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:75" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2_0", "2_0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:75" +$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_211 +#AT_START_212 +at_fn_group_banner 212 'rpmvercmp.at:76' \ + "rpmvercmp(2.0, 2_0) = 0" " " 12 +at_xfail=no +( + $as_echo "212. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:76: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2.0\", \"2_0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:76" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2.0", "2_0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:76" +$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_212 +#AT_START_213 +at_fn_group_banner 213 'rpmvercmp.at:77' \ + "rpmvercmp(2_0, 2.0) = 0" " " 12 +at_xfail=no +( + $as_echo "213. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:77: runroot rpm --eval '%{lua: print(rpm.vercmp(\"2_0\", \"2.0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:77" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("2_0", "2.0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:77" +$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_213 +#AT_START_214 +at_fn_group_banner 214 'rpmvercmp.at:80' \ + "rpmvercmp(a, a) = 0" " " 12 +at_xfail=no +( + $as_echo "214. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:80: runroot rpm --eval '%{lua: print(rpm.vercmp(\"a\", \"a\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:80" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("a", "a"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:80" +$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_214 +#AT_START_215 +at_fn_group_banner 215 'rpmvercmp.at:81' \ + "rpmvercmp(a+, a+) = 0" " " 12 +at_xfail=no +( + $as_echo "215. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:81: runroot rpm --eval '%{lua: print(rpm.vercmp(\"a+\", \"a+\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:81" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("a+", "a+"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:81" +$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_215 +#AT_START_216 +at_fn_group_banner 216 'rpmvercmp.at:82' \ + "rpmvercmp(a+, a_) = 0" " " 12 +at_xfail=no +( + $as_echo "216. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:82: runroot rpm --eval '%{lua: print(rpm.vercmp(\"a+\", \"a_\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:82" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("a+", "a_"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:82" +$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_216 +#AT_START_217 +at_fn_group_banner 217 'rpmvercmp.at:83' \ + "rpmvercmp(a_, a+) = 0" " " 12 +at_xfail=no +( + $as_echo "217. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:83: runroot rpm --eval '%{lua: print(rpm.vercmp(\"a_\", \"a+\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:83" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("a_", "a+"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_217 +#AT_START_218 +at_fn_group_banner 218 'rpmvercmp.at:84' \ + "rpmvercmp(+a, +a) = 0" " " 12 +at_xfail=no +( + $as_echo "218. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:84: runroot rpm --eval '%{lua: print(rpm.vercmp(\"+a\", \"+a\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:84" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("+a", "+a"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:84" +$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_218 +#AT_START_219 +at_fn_group_banner 219 'rpmvercmp.at:85' \ + "rpmvercmp(+a, _a) = 0" " " 12 +at_xfail=no +( + $as_echo "219. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:85: runroot rpm --eval '%{lua: print(rpm.vercmp(\"+a\", \"_a\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:85" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("+a", "_a"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_219 +#AT_START_220 +at_fn_group_banner 220 'rpmvercmp.at:86' \ + "rpmvercmp(_a, +a) = 0" " " 12 +at_xfail=no +( + $as_echo "220. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:86: runroot rpm --eval '%{lua: print(rpm.vercmp(\"_a\", \"+a\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:86" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("_a", "+a"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:86" +$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_220 +#AT_START_221 +at_fn_group_banner 221 'rpmvercmp.at:87' \ + "rpmvercmp(+_, +_) = 0" " " 12 +at_xfail=no +( + $as_echo "221. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:87: runroot rpm --eval '%{lua: print(rpm.vercmp(\"+_\", \"+_\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:87" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("+_", "+_"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:87" +$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_221 +#AT_START_222 +at_fn_group_banner 222 'rpmvercmp.at:88' \ + "rpmvercmp(_+, +_) = 0" " " 12 +at_xfail=no +( + $as_echo "222. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:88: runroot rpm --eval '%{lua: print(rpm.vercmp(\"_+\", \"+_\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:88" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("_+", "+_"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_222 +#AT_START_223 +at_fn_group_banner 223 'rpmvercmp.at:89' \ + "rpmvercmp(_+, _+) = 0" " " 12 +at_xfail=no +( + $as_echo "223. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:89: runroot rpm --eval '%{lua: print(rpm.vercmp(\"_+\", \"_+\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:89" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("_+", "_+"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:89" +$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_223 +#AT_START_224 +at_fn_group_banner 224 'rpmvercmp.at:90' \ + "rpmvercmp(+, _) = 0" " " 12 +at_xfail=no +( + $as_echo "224. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:90: runroot rpm --eval '%{lua: print(rpm.vercmp(\"+\", \"_\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:90" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("+", "_"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:90" +$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_224 +#AT_START_225 +at_fn_group_banner 225 'rpmvercmp.at:91' \ + "rpmvercmp(_, +) = 0" " " 12 +at_xfail=no +( + $as_echo "225. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:91: runroot rpm --eval '%{lua: print(rpm.vercmp(\"_\", \"+\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:91" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("_", "+"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_225 +#AT_START_226 +at_fn_group_banner 226 'rpmvercmp.at:94' \ + "rpmvercmp(1.0~rc1, 1.0~rc1) = 0" " " 12 +at_xfail=no +( + $as_echo "226. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:94: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0~rc1\", \"1.0~rc1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:94" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0~rc1", "1.0~rc1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_226 +#AT_START_227 +at_fn_group_banner 227 'rpmvercmp.at:95' \ + "rpmvercmp(1.0~rc1, 1.0) = -1" " " 12 +at_xfail=no +( + $as_echo "227. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:95: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0~rc1\", \"1.0\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:95" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0~rc1", "1.0"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:95" +$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_227 +#AT_START_228 +at_fn_group_banner 228 'rpmvercmp.at:96' \ + "rpmvercmp(1.0, 1.0~rc1) = 1" " " 12 +at_xfail=no +( + $as_echo "228. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:96: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0\", \"1.0~rc1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:96" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0", "1.0~rc1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_228 +#AT_START_229 +at_fn_group_banner 229 'rpmvercmp.at:97' \ + "rpmvercmp(1.0~rc1, 1.0~rc2) = -1" " " 12 +at_xfail=no +( + $as_echo "229. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:97: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0~rc1\", \"1.0~rc2\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:97" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0~rc1", "1.0~rc2"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_229 +#AT_START_230 +at_fn_group_banner 230 'rpmvercmp.at:98' \ + "rpmvercmp(1.0~rc2, 1.0~rc1) = 1" " " 12 +at_xfail=no +( + $as_echo "230. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:98: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0~rc2\", \"1.0~rc1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:98" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0~rc2", "1.0~rc1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:98" +$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_230 +#AT_START_231 +at_fn_group_banner 231 'rpmvercmp.at:99' \ + "rpmvercmp(1.0~rc1~git123, 1.0~rc1~git123) = 0" " " 12 +at_xfail=no +( + $as_echo "231. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:99: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0~rc1~git123\", \"1.0~rc1~git123\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:99" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0~rc1~git123", "1.0~rc1~git123"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:99" +$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_231 +#AT_START_232 +at_fn_group_banner 232 'rpmvercmp.at:100' \ + "rpmvercmp(1.0~rc1~git123, 1.0~rc1) = -1" " " 12 +at_xfail=no +( + $as_echo "232. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:100: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0~rc1~git123\", \"1.0~rc1\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:100" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0~rc1~git123", "1.0~rc1"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:100" +$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_232 +#AT_START_233 +at_fn_group_banner 233 'rpmvercmp.at:101' \ + "rpmvercmp(1.0~rc1, 1.0~rc1~git123) = 1" " " 12 +at_xfail=no +( + $as_echo "233. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmvercmp.at:101: runroot rpm --eval '%{lua: print(rpm.vercmp(\"1.0~rc1\", \"1.0~rc1~git123\"))}'" +at_fn_check_prepare_trace "rpmvercmp.at:101" +( $at_check_trace; runroot rpm --eval '%{lua: print(rpm.vercmp("1.0~rc1", "1.0~rc1~git123"))}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:101" +$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_233 +#AT_START_234 +at_fn_group_banner 234 'rpmdeps.at:7' \ + "missing dependency" " " 13 +at_xfail=no +( + $as_echo "234. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:9: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs deptest-two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/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`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_234 +#AT_START_235 +at_fn_group_banner 235 'rpmdeps.at:30' \ + "cross-depending packages" " " 13 +at_xfail=no +( + $as_echo "235. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:32: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs deptest-two\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"reqs deptest-one\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:32" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "reqs deptest-one" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_235 +#AT_START_236 +at_fn_group_banner 236 'rpmdeps.at:56' \ + "unsatisfied versioned require" " " 13 +at_xfail=no +( + $as_echo "236. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:58: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs deptest-two >= 2.0\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs deptest-foo = 1.0\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:58" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-two >= 2.0" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs deptest-foo = 1.0" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:58" +$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_236 +#AT_START_237 +at_fn_group_banner 237 'rpmdeps.at:84' \ + "satisfied versioned require" " " 13 +at_xfail=no +( + $as_echo "237. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:86: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs deptest-foo >= 2.0\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs deptest-foo = 2.0\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:86" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-foo >= 2.0" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs deptest-foo = 2.0" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:86" +$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_237 +#AT_START_238 +at_fn_group_banner 238 'rpmdeps.at:110' \ + "versioned conflict in transaction" " " 13 +at_xfail=no +( + $as_echo "238. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:112: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"cfls deptest-two < 2.0\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:112" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "cfls deptest-two < 2.0" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:112" +$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_238 +#AT_START_239 +at_fn_group_banner 239 'rpmdeps.at:137' \ + "versioned conflict in database" " " 13 +at_xfail=no +( + $as_echo "239. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:139: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"cfls deptest-two < 2.0\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:139" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "cfls deptest-two < 2.0" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_239 +#AT_START_240 +at_fn_group_banner 240 'rpmdeps.at:163' \ + "install and verify self-conflicting package" " " 13 +at_xfail=no +( + $as_echo "240. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:165: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"provs something\" \\ + --define \"cfls something\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -V --nofiles deptest-one +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:165" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "provs something" \ + --define "cfls something" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -V --nofiles deptest-one + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:165" +$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_240 +#AT_START_241 +at_fn_group_banner 241 'rpmdeps.at:185' \ + "explicit file conflicts" " " 13 +at_xfail=no +( + $as_echo "241. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:187: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"cfls /opt/bar\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U --test \\ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -e deptest-one +# XXX FIXME: rpm's problem message for this case is higly bogus. +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -e deptest-two +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:187" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "cfls /opt/bar" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U --test \ + /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm \ + /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -e deptest-one +# XXX FIXME: rpm's problem message for this case is higly bogus. +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -e deptest-two + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + /opt/bar conflicts with deptest-one-1.0-1.noarch +error: Failed dependencies: + /opt/bar conflicts with (installed) deptest-one-1.0-1.noarch +error: Failed dependencies: + /opt/bar 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 0 $at_status "$at_srcdir/rpmdeps.at:187" +$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_241 +#AT_START_242 +at_fn_group_banner 242 'rpmdeps.at:224' \ + "erase to break dependencies" " " 13 +at_xfail=no +( + $as_echo "242. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:226: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs deptest-foo >= 2.0\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs deptest-foo = 2.0\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -e deptest-two +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:226" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs deptest-foo >= 2.0" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs deptest-foo = 2.0" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +runroot rpm -e deptest-two + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:226" +$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_242 +#AT_START_243 +at_fn_group_banner 243 'rpmdeps.at:252' \ + "erase to break colored file dependency" " " 13 +at_xfail=no +( + $as_echo "243. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:254: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg hello\" \\ + --define \"reqs /usr/bin/hello\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.i686.rpm \\ + /data/RPMS/hello-2.0-1.x86_64.rpm \\ + /build/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm + +runroot rpm -e hello.x86_64 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:254" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg hello" \ + --define "reqs /usr/bin/hello" \ + /data/SPECS/deptest.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.i686.rpm \ + /data/RPMS/hello-2.0-1.x86_64.rpm \ + /build/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm + +runroot rpm -e hello.x86_64 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + /usr/bin/hello is needed by (installed) deptest-hello-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:254" +$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_243 +#AT_START_244 +at_fn_group_banner 244 'rpmdeps.at:281' \ + "erase on wrong-colored file dependency" " " 13 +at_xfail=no +( + $as_echo "244. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:283: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg hello\" \\ + --define \"reqs /usr/bin/hello\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.i686.rpm \\ + /data/RPMS/hello-2.0-1.x86_64.rpm \\ + /build/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm + +runroot rpm -e hello.i686 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:283" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg hello" \ + --define "reqs /usr/bin/hello" \ + /data/SPECS/deptest.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.i686.rpm \ + /data/RPMS/hello-2.0-1.x86_64.rpm \ + /build/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm + +runroot rpm -e hello.i686 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:283" +$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_244 +#AT_START_245 +at_fn_group_banner 245 'rpmdeps.at:309' \ + "unsatisfied WITH require" " " 13 +at_xfail=no +( + $as_echo "245. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:311: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two with flavor = dekstop)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs flavor = server\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + --define \"provs flavor = desktop\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:311" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two with flavor = dekstop)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = server" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + --define "provs flavor = desktop" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two with flavor = dekstop) 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 3 $at_status "$at_srcdir/rpmdeps.at:311" +$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_245 +#AT_START_246 +at_fn_group_banner 246 'rpmdeps.at:340' \ + "unsatisfied WITH require (rpmdb)" " " 13 +at_xfail=no +( + $as_echo "246. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:342: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two with flavor = dekstop)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs flavor = server\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + --define \"provs flavor = desktop\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:342" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two with flavor = dekstop)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = server" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + --define "provs flavor = desktop" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two with flavor = dekstop) 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:342" +$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_246 +#AT_START_247 +at_fn_group_banner 247 'rpmdeps.at:373' \ + "satisfied WITH require" " " 13 +at_xfail=no +( + $as_echo "247. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:375: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two with flavor = desktop)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs flavor = desktop\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:375" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two with flavor = desktop)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = desktop" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:375" +$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_247 +#AT_START_248 +at_fn_group_banner 248 'rpmdeps.at:397' \ + "satisfied WITH require (rpmdb)" " " 13 +at_xfail=no +( + $as_echo "248. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:399: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two with flavor = desktop)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs flavor = desktop\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:399" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two with flavor = desktop)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = desktop" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:399" +$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_248 +#AT_START_249 +at_fn_group_banner 249 'rpmdeps.at:425' \ + "unsatisfied WITHOUT require" " " 13 +at_xfail=no +( + $as_echo "249. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:427: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two without flavor)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs flavor = server\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:427" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two without flavor)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = server" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two without flavor) 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:427" +$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_249 +#AT_START_250 +at_fn_group_banner 250 'rpmdeps.at:451' \ + "unsatisfied WITHOUT require (rpmdb)" " " 13 +at_xfail=no +( + $as_echo "250. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:453: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two without flavor)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + --define \"provs flavor = server\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:453" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two without flavor)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + --define "provs flavor = server" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two without flavor) 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:453" +$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_250 +#AT_START_251 +at_fn_group_banner 251 'rpmdeps.at:479' \ + "satisfied WITHOUT require" " " 13 +at_xfail=no +( + $as_echo "251. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:481: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two without flavor)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:481" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two without flavor)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:481" +$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_251 +#AT_START_252 +at_fn_group_banner 252 'rpmdeps.at:502' \ + "satisfied WITHOUT require (rpmdb)" " " 13 +at_xfail=no +( + $as_echo "252. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:504: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two without flavor)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:504" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two without flavor)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:504" +$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_252 +#AT_START_253 +at_fn_group_banner 253 'rpmdeps.at:529' \ + "unsatisfied AND require - all missing" " " 13 +at_xfail=no +( + $as_echo "253. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:531: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two and deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:531" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two and deptest-three) 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:531" +$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_253 +#AT_START_254 +at_fn_group_banner 254 'rpmdeps.at:550' \ + "unsatisfied AND require - first is missing" " " 13 +at_xfail=no +( + $as_echo "254. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:552: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two and deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:552" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two and deptest-three) 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:552" +$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_254 +#AT_START_255 +at_fn_group_banner 255 'rpmdeps.at:575' \ + "unsatisfied AND require - second is missing" " " 13 +at_xfail=no +( + $as_echo "255. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:577: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two and deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:577" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two and deptest-three) 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:577" +$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_255 +#AT_START_256 +at_fn_group_banner 256 'rpmdeps.at:600' \ + "satisfied AND require" " " 13 +at_xfail=no +( + $as_echo "256. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:602: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two and deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:602" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:602" +$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_256 +#AT_START_257 +at_fn_group_banner 257 'rpmdeps.at:629' \ + "unsatisfied OR require - all missing" " " 13 +at_xfail=no +( + $as_echo "257. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:631: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two or deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:631" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two or deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two or deptest-three) 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:631" +$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_257 +#AT_START_258 +at_fn_group_banner 258 'rpmdeps.at:650' \ + "satisfied OR require - first is missing" " " 13 +at_xfail=no +( + $as_echo "258. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:652: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two or deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:652" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two or deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:652" +$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_258 +#AT_START_259 +at_fn_group_banner 259 'rpmdeps.at:673' \ + "satisfied OR require - second is missing" " " 13 +at_xfail=no +( + $as_echo "259. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:675: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two or deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:675" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two or deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:675" +$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_259 +#AT_START_260 +at_fn_group_banner 260 'rpmdeps.at:696' \ + "satisfied OR require - both present" " " 13 +at_xfail=no +( + $as_echo "260. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:698: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two or deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:698" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two or deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:698" +$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_260 +#AT_START_261 +at_fn_group_banner 261 'rpmdeps.at:725' \ + "unsatisfied IF require" " " 13 +at_xfail=no +( + $as_echo "261. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:727: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two if deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:727" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two if deptest-three) 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:727" +$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_261 +#AT_START_262 +at_fn_group_banner 262 'rpmdeps.at:750' \ + "satisfied IF require" " " 13 +at_xfail=no +( + $as_echo "262. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:752: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two if deptest-three)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:752" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:752" +$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_262 +#AT_START_263 +at_fn_group_banner 263 'rpmdeps.at:777' \ + "unsatisfied IF-ELSE require" " " 13 +at_xfail=no +( + $as_echo "263. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:779: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two if deptest-three else deptest-four)\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:779" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three else deptest-four)" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two if deptest-three else deptest-four) 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:779" +$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_263 +#AT_START_264 +at_fn_group_banner 264 'rpmdeps.at:798' \ + "satisfied IF-ELSE require - right clause" " " 13 +at_xfail=no +( + $as_echo "264. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:800: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two if deptest-three else deptest-four)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg four\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-four-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:800" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three else deptest-four)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg four" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-four-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:800" +$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_264 +#AT_START_265 +at_fn_group_banner 265 'rpmdeps.at:821' \ + "satisfied IF-ELSE require - left clause" " " 13 +at_xfail=no +( + $as_echo "265. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:823: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two if deptest-three else deptest-four)\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:823" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two if deptest-three else deptest-four)" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:823" +$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_265 +#AT_START_266 +at_fn_group_banner 266 'rpmdeps.at:850' \ + "unsatisfied nested AND-OR require" " " 13 +at_xfail=no +( + $as_echo "266. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:852: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two and (deptest-three or deptest-four))\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:852" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and (deptest-three or deptest-four))" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Failed dependencies: + (deptest-two and (deptest-three or deptest-four)) 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:852" +$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_266 +#AT_START_267 +at_fn_group_banner 267 'rpmdeps.at:875' \ + "satisfied nested AND-OR require" " " 13 +at_xfail=no +( + $as_echo "267. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:877: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two and (deptest-three or deptest-four))\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:877" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and (deptest-three or deptest-four))" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:877" +$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_267 +#AT_START_268 +at_fn_group_banner 268 'rpmdeps.at:904' \ + "satisfied nested AND-IF require - without right clause" "" 13 +at_xfail=no +( + $as_echo "268. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:906: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two and (deptest-three if deptest-four))\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:906" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and (deptest-three if deptest-four))" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:906" +$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_268 +#AT_START_269 +at_fn_group_banner 269 'rpmdeps.at:927' \ + "satisfied nested AND-IF require - with right clause" "" 13 +at_xfail=no +( + $as_echo "269. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmdeps.at:929: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" \\ + --define \"reqs (deptest-two and (deptest-three if deptest-four))\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg four\" \\ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"pkg three\" \\ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-four-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmdeps.at:929" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" \ + --define "reqs (deptest-two and (deptest-three if deptest-four))" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg two" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg four" \ + /data/SPECS/deptest.spec + +runroot rpmbuild --quiet -bb \ + --define "pkg three" \ + /data/SPECS/deptest.spec + +runroot rpm -U /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-two-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-four-1.0-1.noarch.rpm /build/RPMS/noarch/deptest-three-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:929" +$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_269 +#AT_START_270 +at_fn_group_banner 270 'rpmconflict.at:7' \ + "package with file conflict" " " 14 +at_xfail=no +( + $as_echo "270. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:9: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +for p in \"one\" \"two\"; do + runroot rpmbuild --quiet -bb \\ + --define \"pkg \$p\" \\ + --define \"filedata \$p\" \\ + /data/SPECS/conflicttest.spec +done + +runroot rpm -U /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm +runroot rpm -U /build/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`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +for p in "one" "two"; do + runroot rpmbuild --quiet -bb \ + --define "pkg $p" \ + --define "filedata $p" \ + /data/SPECS/conflicttest.spec +done + +runroot rpm -U /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_270 +#AT_START_271 +at_fn_group_banner 271 'rpmconflict.at:31' \ + "two packages with a conflicting file" " " 14 +at_xfail=no +( + $as_echo "271. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:33: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U \\ + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:33" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U \ + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_271 +#AT_START_272 +at_fn_group_banner 272 'rpmconflict.at:48' \ + "package with shareable file" " " 14 +at_xfail=no +( + $as_echo "272. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:50: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +for p in \"one\" \"two\"; do + runroot rpmbuild --quiet -bb \\ + --define \"pkg \$p\" \\ + --define \"filedata same_stuff\" \\ + /data/SPECS/conflicttest.spec +done + +runroot rpm -U /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:50" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +for p in "one" "two"; do + runroot rpmbuild --quiet -bb \ + --define "pkg $p" \ + --define "filedata same_stuff" \ + /data/SPECS/conflicttest.spec +done + +runroot rpm -U /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_272 +#AT_START_273 +at_fn_group_banner 273 'rpmconflict.at:72' \ + "two packages with shareable file" " " 14 +at_xfail=no +( + $as_echo "273. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:74: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U \\ + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:74" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U \ + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:74" +$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_273 +#AT_START_274 +at_fn_group_banner 274 'rpmconflict.at:89' \ + "non-conflicting identical basenames" " " 14 +at_xfail=no +( + $as_echo "274. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:91: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec +rm -rf \"\${RPMTEST}\"/opt/mydir +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:91" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec +rm -rf "${RPMTEST}"/opt/mydir +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_274 +#AT_START_275 +at_fn_group_banner 275 'rpmconflict.at:107' \ + "conflicting identical basenames" " " 14 +at_xfail=no +( + $as_echo "275. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:109: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec +rm -rf \"\${RPMTEST}\"/opt/mydir +mkdir -p \"\${RPMTEST}\"/opt/mydir/one +ln -s one \"\${RPMTEST}\"/opt/mydir/two +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:109" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb /data/SPECS/selfconflict.spec +rm -rf "${RPMTEST}"/opt/mydir +mkdir -p "${RPMTEST}"/opt/mydir/one +ln -s one "${RPMTEST}"/opt/mydir/two +runroot rpm -U /build/RPMS/noarch/selfconflict-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /opt/mydir/two/somefile conflicts between attempted installs of selfconflict-1.0-1.noarch and selfconflict-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/rpmconflict.at:109" +$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_275 +#AT_START_276 +at_fn_group_banner 276 'rpmconflict.at:127' \ + "multilib elf conflict, prefer 64bit 1" " " 14 +at_xfail=no +( + $as_echo "276. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:129: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.i686.rpm \\ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.i686 hello.x86_64 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:129" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.i686.rpm \ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.i686 hello.x86_64 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "wrong color,normal,normal,normal,normal, +normal,normal,normal,normal,normal, +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:129" +$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_276 +#AT_START_277 +at_fn_group_banner 277 'rpmconflict.at:149' \ + "multilib elf conflict, prefer 64bit 2" " " 14 +at_xfail=no +( + $as_echo "277. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:151: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.i686 +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.i686 hello.x86_64 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:151" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.i686 +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.i686 hello.x86_64 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "normal,normal,normal,normal,normal, +wrong color,normal,normal,normal,normal, +normal,normal,normal,normal,normal, +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:151" +$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_277 +#AT_START_278 +at_fn_group_banner 278 'rpmconflict.at:176' \ + "multilib elf conflict, prefer 64bit 3" " " 14 +at_xfail=no +( + $as_echo "278. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:178: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.x86_64 +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.i686 hello.x86_64 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:178" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.x86_64 +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.i686 hello.x86_64 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "normal,normal,normal,normal,normal, +wrong color,normal,normal,normal,normal, +normal,normal,normal,normal,normal, +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:178" +$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_278 +#AT_START_279 +at_fn_group_banner 279 'rpmconflict.at:203' \ + "multilib elf conflict, prefer 32bit 1" " " 14 +at_xfail=no +( + $as_echo "279. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:205: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 1\" \\ + /data/RPMS/hello-2.0-1.i686.rpm \\ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.i686 hello.x86_64 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:205" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 1" \ + /data/RPMS/hello-2.0-1.i686.rpm \ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.i686 hello.x86_64 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "normal,normal,normal,normal,normal, +wrong color,normal,normal,normal,normal, +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:205" +$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_279 +#AT_START_280 +at_fn_group_banner 280 'rpmconflict.at:225' \ + "multilib elf conflict, prefer 32bit 2" " " 14 +at_xfail=no +( + $as_echo "280. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:227: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 1\" \\ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.i686 +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 1\" \\ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.i686 hello.x86_64 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:227" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 1" \ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.i686 +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 1" \ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.i686 hello.x86_64 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "normal,normal,normal,normal,normal, +normal,normal,normal,normal,normal, +wrong color,normal,normal,normal,normal, +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:227" +$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_280 +#AT_START_281 +at_fn_group_banner 281 'rpmconflict.at:252' \ + "multilib elf conflict, prefer 32bit 3" " " 14 +at_xfail=no +( + $as_echo "281. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:254: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 1\" \\ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.x86_64 +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 1\" \\ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -q --qf \"[%{filestates:fstate},]\\n\" hello.i686 hello.x86_64 +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:254" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 1" \ + /data/RPMS/hello-2.0-1.x86_64.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.x86_64 +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 1" \ + /data/RPMS/hello-2.0-1.i686.rpm +runroot rpm -q --qf "[%{filestates:fstate},]\n" hello.i686 hello.x86_64 + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "normal,normal,normal,normal,normal, +normal,normal,normal,normal,normal, +wrong color,normal,normal,normal,normal, +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:254" +$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_281 +#AT_START_282 +at_fn_group_banner 282 'rpmconflict.at:279' \ + "multilib elf vs non-elf file conflict 1" " " 14 +at_xfail=no +( + $as_echo "282. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:281: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.x86_64.rpm \\ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:281" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.x86_64.rpm \ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /usr/bin/hello conflicts between attempted installs of hello-2.0-1.x86_64 and hello-script-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/rpmconflict.at:281" +$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_282 +#AT_START_283 +at_fn_group_banner 283 'rpmconflict.at:300' \ + "multilib elf vs non-elf file conflict 2" " " 14 +at_xfail=no +( + $as_echo "283. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:302: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.x86_64.rpm + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:302" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.x86_64.rpm + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /usr/bin/hello from install of hello-script-1.0-1.noarch conflicts with file from package hello-2.0-1.x86_64 +" | \ + $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:302" +$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_283 +#AT_START_284 +at_fn_group_banner 284 'rpmconflict.at:325' \ + "multilib elf vs non-elf file conflict 3" " " 14 +at_xfail=no +( + $as_echo "284. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:327: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm + +runroot rpm -U --ignoreos --ignorearch --nodeps \\ + --define \"_transaction_color 3\" \\ + --define \"_prefer_color 2\" \\ + /data/RPMS/hello-2.0-1.x86_64.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:327" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm + +runroot rpm -U --ignoreos --ignorearch --nodeps \ + --define "_transaction_color 3" \ + --define "_prefer_color 2" \ + /data/RPMS/hello-2.0-1.x86_64.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /usr/bin/hello from install of hello-2.0-1.x86_64 conflicts with file from package hello-script-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/rpmconflict.at:327" +$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_284 +#AT_START_285 +at_fn_group_banner 285 'rpmconflict.at:351' \ + "replacing directory with symlink" " " 14 +at_xfail=no +( + $as_echo "285. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:353: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" +rm -rf \"\${RPMTEST}\"/usr/{share,lib}/symlinktest* + +runroot rpmbuild --quiet -bb \\ + --define \"rel 1\" --without symlink /data/SPECS/symlinktest.spec +runroot rpmbuild --quiet -bb \\ + --define \"rel 2\" --with symlink /data/SPECS/symlinktest.spec + +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-2.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:353" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" +rm -rf "${RPMTEST}"/usr/{share,lib}/symlinktest* + +runroot rpmbuild --quiet -bb \ + --define "rel 1" --without symlink /data/SPECS/symlinktest.spec +runroot rpmbuild --quiet -bb \ + --define "rel 2" --with symlink /data/SPECS/symlinktest.spec + +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-2.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /usr/share/symlinktest from install of symlinktest-1.0-2.noarch conflicts with file from package symlinktest-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/rpmconflict.at:353" +$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_285 +#AT_START_286 +at_fn_group_banner 286 'rpmconflict.at:375' \ + "replacing symlink with directory" " " 14 +at_xfail=no +( + $as_echo "286. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:377: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +rm -rf \"\${TOPDIR}\" +rm -rf \"\${RPMTEST}\"/usr/{share,lib}/symlinktest* + +runroot rpmbuild --quiet -bb \\ + --define \"rel 1\" --with symlink /data/SPECS/symlinktest.spec +runroot rpmbuild --quiet -bb \\ + --define \"rel 2\" --without symlink /data/SPECS/symlinktest.spec + +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-2.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:377" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +rm -rf "${TOPDIR}" +rm -rf "${RPMTEST}"/usr/{share,lib}/symlinktest* + +runroot rpmbuild --quiet -bb \ + --define "rel 1" --with symlink /data/SPECS/symlinktest.spec +runroot rpmbuild --quiet -bb \ + --define "rel 2" --without symlink /data/SPECS/symlinktest.spec + +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-1.noarch.rpm +runroot rpm -U /build/RPMS/noarch/symlinktest-1.0-2.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /usr/share/symlinktest from install of symlinktest-1.0-2.noarch conflicts with file from package symlinktest-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/rpmconflict.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_286 +#AT_START_287 +at_fn_group_banner 287 'rpmconflict.at:400' \ + "real file with shared ghost" " " 14 +at_xfail=no +( + $as_echo "287. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconflict.at:402: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +fn=\"\${RPMTEST}\"/usr/share/my.version +rm -rf \"\${TOPDIR}\" \"\${fn}\" + +runroot rpmbuild --quiet -bb \\ + --define \"pkg one\" --define \"filedata one\" \\ + /data/SPECS/conflicttest.spec +runroot rpmbuild --quiet -bb \\ + --define \"pkg two\" --define \"filedata two\" --define \"fileattr %ghost\"\\ + /data/SPECS/conflicttest.spec + +test ! -f \"\${fn}\" && echo OK +runroot rpm -U \\ + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm +cat \"\${fn}\" +runroot rpm -e conflicttwo +cat \"\${fn}\" +runroot rpm -e conflictone +test ! -f \"\${fn}\" && echo OK +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconflict.at:402" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +fn="${RPMTEST}"/usr/share/my.version +rm -rf "${TOPDIR}" "${fn}" + +runroot rpmbuild --quiet -bb \ + --define "pkg one" --define "filedata one" \ + /data/SPECS/conflicttest.spec +runroot rpmbuild --quiet -bb \ + --define "pkg two" --define "filedata two" --define "fileattr %ghost"\ + /data/SPECS/conflicttest.spec + +test ! -f "${fn}" && echo OK +runroot rpm -U \ + /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm \ + /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm +cat "${fn}" +runroot rpm -e conflicttwo +cat "${fn}" +runroot rpm -e conflictone +test ! -f "${fn}" && echo OK + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "OK +one +one +OK +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconflict.at:402" +$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_287 +#AT_START_288 +at_fn_group_banner 288 'rpmreplace.at:4' \ + "upgrade to/from regular file" " " 15 +at_xfail=no +( + $as_echo "288. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:6: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${tf}\" \"\${tf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype file\" \\ + --define \"filedata bar\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +cat \"\${tf}\" +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:6" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype file" \ + --define "filedata bar" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +cat "${tf}" +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +bar +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.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_288 +#AT_START_289 +at_fn_group_banner 289 'rpmreplace.at:40' \ + "upgrade regular file to/from broken link" " " 15 +at_xfail=no +( + $as_echo "289. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:42: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata stuff\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink \"\${tf}\" +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:42" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata stuff" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink "${tf}" +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +stuff +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.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_289 +#AT_START_290 +at_fn_group_banner 290 'rpmreplace.at:76' \ + "upgrade regular file to/from file link" " " 15 +at_xfail=no +( + $as_echo "290. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:78: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata goo\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink \"\${tf}\" +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:78" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata goo" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink "${tf}" +runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +goo +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.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_290 +#AT_START_291 +at_fn_group_banner 291 'rpmreplace.at:112' \ + "upgrade broken link to broken link" " " 15 +at_xfail=no +( + $as_echo "291. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:114: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype link\" \\ + --define \"filedata stiff\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata stuff\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:114" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype link" \ + --define "filedata stiff" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata stuff" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "stiff +stuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.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_291 +#AT_START_292 +at_fn_group_banner 292 'rpmreplace.at:145' \ + "upgrade file link to file link" " " 15 +at_xfail=no +( + $as_echo "292. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:147: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype link\" \\ + --define \"filedata goo\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata goo\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:147" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype link" \ + --define "filedata goo" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata goo" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "goo +goo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.at:147" +$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_292 +#AT_START_293 +at_fn_group_banner 293 'rpmreplace.at:178' \ + "upgrade directory link to directory link" " " 15 +at_xfail=no +( + $as_echo "293. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:180: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype link\" \\ + --define \"filedata zoo\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata zoo\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:180" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype link" \ + --define "filedata zoo" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata zoo" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "zoo +zoo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.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_293 +#AT_START_294 +at_fn_group_banner 294 'rpmreplace.at:211' \ + "upgrade regular file to directory" " " 15 +at_xfail=no +( + $as_echo "294. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:213: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:213" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmreplace.at:213" +$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_294 +#AT_START_295 +at_fn_group_banner 295 'rpmreplace.at:242' \ + "upgrade broken link to directory" " " 15 +at_xfail=no +( + $as_echo "295. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:244: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype link\" \\ + --define \"filedata other\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:244" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype link" \ + --define "filedata other" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "other +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.at:244" +$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_295 +#AT_START_296 +at_fn_group_banner 296 'rpmreplace.at:273' \ + "upgrade file link to directory" " " 15 +at_xfail=no +( + $as_echo "296. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:275: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype link\" \\ + --define \"filedata goo\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:275" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype link" \ + --define "filedata goo" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "goo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.at:275" +$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_296 +#AT_START_297 +at_fn_group_banner 297 'rpmreplace.at:304' \ + "upgrade directory link to directory" " " 15 +at_xfail=no +( + $as_echo "297. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:306: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype link\" \\ + --define \"filedata zoo\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink \"\${tf}\" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:306" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype link" \ + --define "filedata zoo" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" +runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /opt/foo from install of replacetest-2.0-1.noarch conflicts with file from package replacetest-1.0-1.noarch +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "zoo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 2 $at_status "$at_srcdir/rpmreplace.at:306" +$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_297 +#AT_START_298 +at_fn_group_banner 298 'rpmreplace.at:335' \ + "upgrade empty directory to empty directory" " " 15 +at_xfail=no +( + $as_echo "298. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:337: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d \"\${tf}\" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:337" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmreplace.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_298 +#AT_START_299 +at_fn_group_banner 299 'rpmreplace.at:363' \ + "upgrade empty directory to regular file" " " 15 +at_xfail=no +( + $as_echo "299. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:365: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype file\" \\ + --define \"filedata woot\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d \"\${tf}\" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:365" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype file" \ + --define "filedata woot" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /opt/foo from install of replacetest-2.0-1.noarch conflicts with file from package replacetest-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/rpmreplace.at:365" +$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_299 +#AT_START_300 +at_fn_group_banner 300 'rpmreplace.at:392' \ + "upgrade locally symlinked directory" " " 15 +at_xfail=no +( + $as_echo "300. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:394: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype datadir\" \\ + --define \"filedata README1\" \\ + --define \"user \$(id -u -n)\" \\ + --define \"grp \$(id -g -n)\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype datadir\" \\ + --define \"filedata README2\" \\ + --define \"user \$(id -u -n)\" \\ + --define \"grp \$(id -g -n)\" \\ + /data/SPECS/replacetest.spec + +mkdir \"\${RPMTEST}\"/opt/f00f +ln -s f00f \"\${RPMTEST}\"/opt/foo +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -L \"\${tf}\" && test -d \"\${tf}\" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -L \"\${tf}\" && test -d \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:394" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype datadir" \ + --define "filedata README1" \ + --define "user $(id -u -n)" \ + --define "grp $(id -g -n)" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype datadir" \ + --define "filedata README2" \ + --define "user $(id -u -n)" \ + --define "grp $(id -g -n)" \ + /data/SPECS/replacetest.spec + +mkdir "${RPMTEST}"/opt/f00f +ln -s f00f "${RPMTEST}"/opt/foo +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -L "${tf}" && test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -L "${tf}" && test -d "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmreplace.at:394" +$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_300 +#AT_START_301 +at_fn_group_banner 301 'rpmreplace.at:428' \ + "upgrade invalid locally symlinked directory" " " 15 +at_xfail=no +( + $as_echo "301. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:430: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype datadir\" \\ + --define \"filedata README1\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype datadir\" \\ + --define \"filedata README2\" \\ + /data/SPECS/replacetest.spec + +mkdir \"\${RPMTEST}\"/opt/f00f +ln -s f00f \"\${RPMTEST}\"/opt/foo +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -L \"\${tf}\" && test -d \"\${tf}\" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:430" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype datadir" \ + --define "filedata README1" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype datadir" \ + --define "filedata README2" \ + /data/SPECS/replacetest.spec + +mkdir "${RPMTEST}"/opt/f00f +ln -s f00f "${RPMTEST}"/opt/foo +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -L "${tf}" && test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +test -d "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmreplace.at:430" +$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_301 +#AT_START_302 +at_fn_group_banner 302 'rpmreplace.at:460' \ + "upgrade empty directory to broken link" " " 15 +at_xfail=no +( + $as_echo "302. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:462: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata woot\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d \"\${tf}\" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:462" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata woot" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /opt/foo from install of replacetest-2.0-1.noarch conflicts with file from package replacetest-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/rpmreplace.at:462" +$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_302 +#AT_START_303 +at_fn_group_banner 303 'rpmreplace.at:489' \ + "upgrade empty directory to file link" " " 15 +at_xfail=no +( + $as_echo "303. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:491: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata woot\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d \"\${tf}\" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:491" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata woot" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo " file /opt/foo from install of replacetest-2.0-1.noarch conflicts with file from package replacetest-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/rpmreplace.at:491" +$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_303 +#AT_START_304 +at_fn_group_banner 304 'rpmreplace.at:518' \ + "upgrade removed empty directory to file link" " " 15 +at_xfail=no +( + $as_echo "304. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:520: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata goo\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d \"\${tf}\" && rmdir \"\${tf}\" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:520" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata goo" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && rmdir "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "goo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.at:520" +$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_304 +#AT_START_305 +at_fn_group_banner 305 'rpmreplace.at:548' \ + "upgrade replaced empty directory to file link" " " 15 +at_xfail=no +( + $as_echo "305. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:550: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata goo\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d \"\${tf}\" && rmdir \"\${tf}\" && ln -sf goo \"\${tf}\" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:550" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata goo" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && rmdir "${tf}" && ln -sf goo "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "goo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.at:550" +$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_305 +#AT_START_306 +at_fn_group_banner 306 'rpmreplace.at:578' \ + "upgrade empty directory to file link with pretrans" "" 15 +at_xfail=no +( + $as_echo "306. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmreplace.at:580: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +tf=\"\${RPMTEST}\"/opt/foo +rm -rf \"\${RPMTEST}\"/opt/* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata goo\" \\ + --define \"fixit posix.rmdir('/opt/foo')\" \\ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d \"\${tf}\" && runroot rpm -U --test /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink \"\${tf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmreplace.at:580" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype dir" \ + /data/SPECS/replacetest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata goo" \ + --define "fixit posix.rmdir('/opt/foo')" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +test -d "${tf}" && runroot rpm -U --test /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +readlink "${tf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "goo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmreplace.at:580" +$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_306 +#AT_START_307 +at_fn_group_banner 307 'rpmconfig.at:6' \ + "install config on existiting file" " " 16 +at_xfail=no +( + $as_echo "307. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:8: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +echo \"otherstuff\" > \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -e configtest +cat \"\${cf}.rpmorig\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:8" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +echo "otherstuff" > "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -e configtest +cat "${cf}.rpmorig" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /etc/my.conf saved as /etc/my.conf.rpmorig +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.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_307 +#AT_START_308 +at_fn_group_banner 308 'rpmconfig.at:35' \ + "install config(noreplace) on existing file" " " 16 +at_xfail=no +( + $as_echo "308. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:37: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec + +echo \"otherstuff\" > \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +cat \"\${cf}.rpmnew\" +runroot rpm -e configtest +cat \"\${cf}.rpmsave\" +cat \"\${cf}.rpmnew\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:37" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec + +echo "otherstuff" > "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +cat "${cf}.rpmnew" +runroot rpm -e configtest +cat "${cf}.rpmsave" +cat "${cf}.rpmnew" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /etc/my.conf created as /etc/my.conf.rpmnew +warning: /etc/my.conf saved as /etc/my.conf.rpmsave +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "otherstuff +foo +otherstuff +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:37" +$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_308 +#AT_START_309 +at_fn_group_banner 309 'rpmconfig.at:70' \ + "install config on existiting identical file" " " 16 +at_xfail=no +( + $as_echo "309. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:72: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +echo \"foo\" > \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -e configtest +test ! -f \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:72" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +echo "foo" > "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -e configtest +test ! -f "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmconfig.at:72" +$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_309 +#AT_START_310 +at_fn_group_banner 310 'rpmconfig.at:97' \ + "erase unchanged config" " " 16 +at_xfail=no +( + $as_echo "310. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:99: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -e configtest +test ! -f \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:99" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -e configtest +test ! -f "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmconfig.at:99" +$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_310 +#AT_START_311 +at_fn_group_banner 311 'rpmconfig.at:123' \ + "erase changed config" " " 16 +at_xfail=no +( + $as_echo "311. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:125: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${cf}\" +runroot rpm -e configtest +cat \"\${cf}.rpmsave\" +test ! -f \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:125" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${cf}" +runroot rpm -e configtest +cat "${cf}.rpmsave" +test ! -f "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.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_311 +#AT_START_312 +at_fn_group_banner 312 'rpmconfig.at:153' \ + "erase changed config(noreplace)" " " 16 +at_xfail=no +( + $as_echo "312. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:155: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${cf}\" +runroot rpm -e configtest +cat \"\${cf}.rpmsave\" +test ! -f \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:155" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${cf}" +runroot rpm -e configtest +cat "${cf}.rpmsave" +test ! -f "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:155" +$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_312 +#AT_START_313 +at_fn_group_banner 313 'rpmconfig.at:185' \ + "upgrade unchanged config" " " 16 +at_xfail=no +( + $as_echo "313. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:187: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:187" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:187" +$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_313 +#AT_START_314 +at_fn_group_banner 314 'rpmconfig.at:215' \ + "upgrade unchanged config - touching test" " " 16 +at_xfail=no +( + $as_echo "314. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:217: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -Uvv --fsmdebug /build/RPMS/noarch/configtest-2.0-1.noarch.rpm > output.txt 2>&1 +grep -c \"touch\" output.txt +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:217" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -Uvv --fsmdebug /build/RPMS/noarch/configtest-2.0-1.noarch.rpm > output.txt 2>&1 +grep -c "touch" output.txt + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmconfig.at:217" +$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_314 +#AT_START_315 +at_fn_group_banner 315 'rpmconfig.at:243' \ + "upgrade modified config" " " 16 +at_xfail=no +( + $as_echo "315. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:245: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:245" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${cf}" +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +otherstuff +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:245" +$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_315 +#AT_START_316 +at_fn_group_banner 316 'rpmconfig.at:276' \ + "upgrade changing config" " " 16 +at_xfail=no +( + $as_echo "316. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:278: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:278" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:278" +$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_316 +#AT_START_317 +at_fn_group_banner 317 'rpmconfig.at:306' \ + "upgrade changing, modified config 1" " " 16 +at_xfail=no +( + $as_echo "317. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:308: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${RPMTEST}\"/etc/my.conf +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +cat \"\${cf}.rpmsave\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:308" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${RPMTEST}"/etc/my.conf +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" +cat "${cf}.rpmsave" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo-1.0 +otherstuff +foo-2.0 +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:308" +$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_317 +#AT_START_318 +at_fn_group_banner 318 'rpmconfig.at:342' \ + "upgrade changing, modified config 2" " " 16 +at_xfail=no +( + $as_echo "318. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:344: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"foo-2.0\" > \"\${RPMTEST}\"/etc/my.conf +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:344" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "foo-2.0" > "${RPMTEST}"/etc/my.conf +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:344" +$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_318 +#AT_START_319 +at_fn_group_banner 319 'rpmconfig.at:377' \ + "upgrade unchanged config(noreplace)" " " 16 +at_xfail=no +( + $as_echo "319. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:379: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:379" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:379" +$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_319 +#AT_START_320 +at_fn_group_banner 320 'rpmconfig.at:409' \ + "upgrade modified config(noreplace)" " " 16 +at_xfail=no +( + $as_echo "320. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:411: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:411" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${cf}" +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +otherstuff +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:411" +$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_320 +#AT_START_321 +at_fn_group_banner 321 'rpmconfig.at:443' \ + "upgrade changing config(noreplace)" " " 16 +at_xfail=no +( + $as_echo "321. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:445: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:445" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:445" +$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_321 +#AT_START_322 +at_fn_group_banner 322 'rpmconfig.at:474' \ + "upgrade changing, modified config(noreplace) 1" " " 16 +at_xfail=no +( + $as_echo "322. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:476: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${RPMTEST}\"/etc/my.conf +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +cat \"\${cf}.rpmnew\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:476" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${RPMTEST}"/etc/my.conf +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" +cat "${cf}.rpmnew" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /etc/my.conf created as /etc/my.conf.rpmnew +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +otherstuff +otherstuff +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:476" +$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_322 +#AT_START_323 +at_fn_group_banner 323 'rpmconfig.at:511' \ + "upgrade changing, modified config(noreplace) 2" " " 16 +at_xfail=no +( + $as_echo "323. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:513: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"foo-2.0\" > \"\${RPMTEST}\"/etc/my.conf +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:513" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "foo-2.0" > "${RPMTEST}"/etc/my.conf +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:513" +$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_323 +#AT_START_324 +at_fn_group_banner 324 'rpmconfig.at:546' \ + "upgrade unchanged shared config" " " 16 +at_xfail=no +( + $as_echo "324. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:548: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:548" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:548" +$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_324 +#AT_START_325 +at_fn_group_banner 325 'rpmconfig.at:584' \ + "upgrade modified shared config" " " 16 +at_xfail=no +( + $as_echo "325. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:586: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:586" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${cf}" +cat "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +otherstuff +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:586" +$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_325 +#AT_START_326 +at_fn_group_banner 326 'rpmconfig.at:624' \ + "upgrade changing shared config" " " 16 +at_xfail=no +( + $as_echo "326. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:626: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:626" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:626" +$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_326 +#AT_START_327 +at_fn_group_banner 327 'rpmconfig.at:661' \ + "upgrade changing, modified shared config 1" " " 16 +at_xfail=no +( + $as_echo "327. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:663: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${RPMTEST}\"/etc/my.conf +cat \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat \"\${cf}\" +cat \"\${cf}.rpmsave\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:663" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${RPMTEST}"/etc/my.conf +cat "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat "${cf}" +cat "${cf}.rpmsave" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo-1.0 +otherstuff +foo-2.0 +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:663" +$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_327 +#AT_START_328 +at_fn_group_banner 328 'rpmconfig.at:704' \ + "upgrade changing, modified shared config 2" " " 16 +at_xfail=no +( + $as_echo "328. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:706: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"foo-2.0\" > \"\${RPMTEST}\"/etc/my.conf +cat \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:706" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat "${cf}" +echo "foo-2.0" > "${RPMTEST}"/etc/my.conf +cat "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:706" +$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_328 +#AT_START_329 +at_fn_group_banner 329 'rpmconfig.at:745' \ + "upgrade changing, modified shared config(noreplace) 1" "" 16 +at_xfail=no +( + $as_echo "329. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:747: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${RPMTEST}\"/etc/my.conf +cat \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat \"\${cf}\" +cat \"\${cf}.rpmnew\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:747" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${RPMTEST}"/etc/my.conf +cat "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat "${cf}" +cat "${cf}.rpmnew" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /etc/my.conf created as /etc/my.conf.rpmnew +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +otherstuff +otherstuff +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:747" +$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_329 +#AT_START_330 +at_fn_group_banner 330 'rpmconfig.at:789' \ + "upgrade changing, modified shared config(noreplace) 2" "" 16 +at_xfail=no +( + $as_echo "330. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:791: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"foo-2.0\" > \"\${RPMTEST}\"/etc/my.conf +cat \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:791" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +cat "${cf}" +echo "foo-2.0" > "${RPMTEST}"/etc/my.conf +cat "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:791" +$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_330 +#AT_START_331 +at_fn_group_banner 331 'rpmconfig.at:830' \ + "install/upgrade/erase ghost config" " " 16 +at_xfail=no +( + $as_echo "331. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig.at:832: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in 1.0 2.0; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \${v}\" \\ + --define \"filetype file\" \\ + --define \"filedata buster\" \\ + --define \"fileattr %ghost\" \\ + /data/SPECS/configtest.spec +done + +# pre-existing config, install, erase +test ! -f \"\${cf}\" && echo OK1 +echo \"keaton\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -e configtest +cat \"\${cf}\" +rm -f \"\${cf}\" + +# post-install config, upgrade, erase +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +test ! -f \"\${cf}\" && echo OK2 +echo \"buster\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -e configtest +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig.at:832" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in 1.0 2.0; do + runroot rpmbuild --quiet -bb \ + --define "ver ${v}" \ + --define "filetype file" \ + --define "filedata buster" \ + --define "fileattr %ghost" \ + /data/SPECS/configtest.spec +done + +# pre-existing config, install, erase +test ! -f "${cf}" && echo OK1 +echo "keaton" > "${cf}" +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -e configtest +cat "${cf}" +rm -f "${cf}" + +# post-install config, upgrade, erase +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +test ! -f "${cf}" && echo OK2 +echo "buster" > "${cf}" +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" +runroot rpm -e configtest +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "OK1 +keaton +keaton +keaton +OK2 +buster +buster +buster +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig.at:832" +$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_331 +#AT_START_332 +at_fn_group_banner 332 'rpmconfig2.at:6' \ + "install config on existiting symlink" " " 17 +at_xfail=no +( + $as_echo "332. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:8: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + +ln -s \"otherstuff\" \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -e configtest +readlink \"\${cf}.rpmorig\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:8" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + +ln -s "otherstuff" "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -e configtest +readlink "${cf}.rpmorig" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /etc/my.conf saved as /etc/my.conf.rpmorig +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.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_332 +#AT_START_333 +at_fn_group_banner 333 'rpmconfig2.at:36' \ + "install config on existiting identical link" " " 17 +at_xfail=no +( + $as_echo "333. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:38: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + +ln -s \"foo\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -e configtest +test ! -L \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:38" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + +ln -s "foo" "${cf}" +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -e configtest +test ! -L "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.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_333 +#AT_START_334 +at_fn_group_banner 334 'rpmconfig2.at:66' \ + "erase unchanged config link" " " 17 +at_xfail=no +( + $as_echo "334. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:68: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -e configtest +test ! -L \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:68" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -e configtest +test ! -L "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmconfig2.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_334 +#AT_START_335 +at_fn_group_banner 335 'rpmconfig2.at:93' \ + "erase changed config link" " " 17 +at_xfail=no +( + $as_echo "335. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:95: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +runroot rpm -e configtest +readlink \"\${cf}.rpmsave\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:95" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +runroot rpm -e configtest +readlink "${cf}.rpmsave" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:95" +$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_335 +#AT_START_336 +at_fn_group_banner 336 'rpmconfig2.at:124' \ + "upgrade unchanged config link" " " 17 +at_xfail=no +( + $as_echo "336. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:126: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:126" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:126" +$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_336 +#AT_START_337 +at_fn_group_banner 337 'rpmconfig2.at:155' \ + "upgrade unchanged config link - touching test" " " 17 +at_xfail=no +( + $as_echo "337. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:157: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -Uvv --fsmdebug /build/RPMS/noarch/configtest-2.0-1.noarch.rpm > output.txt 2>&1 +grep -c \"touch\" output.txt +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:157" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +runroot rpm -Uvv --fsmdebug /build/RPMS/noarch/configtest-2.0-1.noarch.rpm > output.txt 2>&1 +grep -c "touch" output.txt + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmconfig2.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_337 +#AT_START_338 +at_fn_group_banner 338 'rpmconfig2.at:185' \ + "upgrade modified config link" " " 17 +at_xfail=no +( + $as_echo "338. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:187: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:187" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +otherstuff +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:187" +$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_338 +#AT_START_339 +at_fn_group_banner 339 'rpmconfig2.at:219' \ + "upgrade changing config link" " " 17 +at_xfail=no +( + $as_echo "339. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:221: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:221" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:221" +$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_339 +#AT_START_340 +at_fn_group_banner 340 'rpmconfig2.at:250' \ + "upgrade changing, modified config link 1" " " 17 +at_xfail=no +( + $as_echo "340. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:252: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +readlink \"\${cf}.rpmsave\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:252" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" +readlink "${cf}.rpmsave" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo-1.0 +otherstuff +foo-2.0 +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:252" +$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_340 +#AT_START_341 +at_fn_group_banner 341 'rpmconfig2.at:287' \ + "upgrade changing, modified config link 2" " " 17 +at_xfail=no +( + $as_echo "341. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:289: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"foo-2.0\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:289" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "foo-2.0" "${cf}" +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:289" +$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_341 +#AT_START_342 +at_fn_group_banner 342 'rpmconfig2.at:323' \ + "upgrade unchanged config(noreplace) link" " " 17 +at_xfail=no +( + $as_echo "342. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:325: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:325" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + --define "filetype link" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:325" +$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_342 +#AT_START_343 +at_fn_group_banner 343 'rpmconfig2.at:356' \ + "upgrade modified config(noreplace) link" " " 17 +at_xfail=no +( + $as_echo "343. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:358: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:358" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo" \ + --define "filetype link" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +otherstuff +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:358" +$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_343 +#AT_START_344 +at_fn_group_banner 344 'rpmconfig2.at:391' \ + "upgrade changing config(noreplace) link" " " 17 +at_xfail=no +( + $as_echo "344. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:393: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:393" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:393" +$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_344 +#AT_START_345 +at_fn_group_banner 345 'rpmconfig2.at:423' \ + "upgrade changing, modified config(noreplace) link 1" "" 17 +at_xfail=no +( + $as_echo "345. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:425: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +readlink \"\${cf}.rpmnew\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:425" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" +readlink "${cf}.rpmnew" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /etc/my.conf created as /etc/my.conf.rpmnew +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +otherstuff +otherstuff +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:425" +$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_345 +#AT_START_346 +at_fn_group_banner 346 'rpmconfig2.at:461' \ + "upgrade changing, modified config(noreplace) link 2" "" 17 +at_xfail=no +( + $as_echo "346. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:463: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"foo-2.0\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +test ! -L \"\${cf}.rpmnew\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:463" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec +done + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "foo-2.0" "${cf}" +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" +test ! -L "${cf}.rpmnew" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:463" +$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_346 +#AT_START_347 +at_fn_group_banner 347 'rpmconfig2.at:498' \ + "upgrade unchanged shared config link" " " 17 +at_xfail=no +( + $as_echo "347. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:500: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:500" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:500" +$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_347 +#AT_START_348 +at_fn_group_banner 348 'rpmconfig2.at:537' \ + "upgrade modified shared config link" " " 17 +at_xfail=no +( + $as_echo "348. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:539: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:539" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +readlink "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +otherstuff +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:539" +$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_348 +#AT_START_349 +at_fn_group_banner 349 'rpmconfig2.at:578' \ + "upgrade changing shared config link" " " 17 +at_xfail=no +( + $as_echo "349. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:580: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:580" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:580" +$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_349 +#AT_START_350 +at_fn_group_banner 350 'rpmconfig2.at:616' \ + "upgrade changing, modified shared config link 1" "" 17 +at_xfail=no +( + $as_echo "350. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:618: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink \"\${cf}\" +readlink \"\${cf}.rpmsave\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:618" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +readlink "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink "${cf}" +readlink "${cf}.rpmsave" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo-1.0 +otherstuff +foo-2.0 +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:618" +$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_350 +#AT_START_351 +at_fn_group_banner 351 'rpmconfig2.at:660' \ + "upgrade changing, modified shared config link 2" "" 17 +at_xfail=no +( + $as_echo "351. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:662: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"foo-2.0\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:662" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "foo-2.0" "${cf}" +readlink "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:662" +$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_351 +#AT_START_352 +at_fn_group_banner 352 'rpmconfig2.at:702' \ + "upgrade changing, modified shared config(noreplace) link 1" "" 17 +at_xfail=no +( + $as_echo "352. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:704: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink \"\${cf}\" +readlink \"\${cf}.rpmnew\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:704" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +readlink "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink "${cf}" +readlink "${cf}.rpmnew" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "warning: /etc/my.conf created as /etc/my.conf.rpmnew +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +otherstuff +otherstuff +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:704" +$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_352 +#AT_START_353 +at_fn_group_banner 353 'rpmconfig2.at:747' \ + "upgrade changing, modified shared config(noreplace) link 2" "" 17 +at_xfail=no +( + $as_echo "353. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig2.at:749: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +for s in \"A\" \"B\"; do + for v in \"1.0\" \"2.0\"; do + runroot rpmbuild --quiet -bb \\ + --define \"sub \$s\" \\ + --define \"ver \$v\" \\ + --define \"filedata foo-\$v\" \\ + --define \"filetype link\" \\ + --define \"noreplace 1\" \\ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"foo-2.0\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U \\ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \\ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink \"\${cf}\" +test ! -L \"\${cf}.rpmnew\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig2.at:749" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +for s in "A" "B"; do + for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "sub $s" \ + --define "ver $v" \ + --define "filedata foo-$v" \ + --define "filetype link" \ + --define "noreplace 1" \ + /data/SPECS/configtest.spec + done +done + +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-1.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "foo-2.0" "${cf}" +readlink "${cf}" +runroot rpm -U \ + /build/RPMS/noarch/configtest-A-2.0-1.noarch.rpm \ + /build/RPMS/noarch/configtest-B-2.0-1.noarch.rpm +readlink "${cf}" +test ! -L "${cf}.rpmnew" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo-1.0 +foo-2.0 +foo-2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig2.at:749" +$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_353 +#AT_START_354 +at_fn_group_banner 354 'rpmconfig3.at:6' \ + "upgrade config to/from non-config" " " 18 +at_xfail=no +( + $as_echo "354. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig3.at:8: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype file\" \\ + --define \"filedata bar\" \\ + --define \"noconfig 1\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig3.at:8" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype file" \ + --define "filedata bar" \ + --define "noconfig 1" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +bar +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig3.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_354 +#AT_START_355 +at_fn_group_banner 355 'rpmconfig3.at:44' \ + "upgrade modified config to/from non-config 1" " " 18 +at_xfail=no +( + $as_echo "355. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig3.at:46: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype file\" \\ + --define \"filedata bar\" \\ + --define \"noconfig 1\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +cat \"\${cf}.rpmsave\" +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig3.at:46" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype file" \ + --define "filedata bar" \ + --define "noconfig 1" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${cf}" +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" +cat "${cf}.rpmsave" +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo +otherstuff +bar +otherstuff +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig3.at:46" +$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_355 +#AT_START_356 +at_fn_group_banner 356 'rpmconfig3.at:88' \ + "upgrade modified config to/from non-config 2" " " 18 +at_xfail=no +( + $as_echo "356. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig3.at:90: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype file\" \\ + --define \"filedata bar\" \\ + --define \"noconfig 1\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"bar\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig3.at:90" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype file" \ + --define "filedata bar" \ + --define "noconfig 1" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "bar" > "${cf}" +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +bar +bar +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig3.at:90" +$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_356 +#AT_START_357 +at_fn_group_banner 357 'rpmconfig3.at:129' \ + "upgrade config to/from config link" " " 18 +at_xfail=no +( + $as_echo "357. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig3.at:131: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata bar\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig3.at:131" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata bar" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" +runroot rpm -U --oldpackage /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +bar +foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig3.at:131" +$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_357 +#AT_START_358 +at_fn_group_banner 358 'rpmconfig3.at:166' \ + "upgrade modified config to config link" " " 18 +at_xfail=no +( + $as_echo "358. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig3.at:168: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype link\" \\ + --define \"filedata bar\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink \"\${cf}\" +cat \"\${cf}.rpmsave\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig3.at:168" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype link" \ + --define "filedata bar" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${cf}" +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +readlink "${cf}" +cat "${cf}.rpmsave" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo +otherstuff +bar +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig3.at:168" +$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_358 +#AT_START_359 +at_fn_group_banner 359 'rpmconfig3.at:206' \ + "upgrade modified config link to config" " " 18 +at_xfail=no +( + $as_echo "359. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig3.at:208: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype link\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype file\" \\ + --define \"filedata bar\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink \"\${cf}\" +ln -sf \"otherstuff\" \"\${cf}\" +readlink \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat \"\${cf}\" +readlink \"\${cf}.rpmsave\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig3.at:208" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype link" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype file" \ + --define "filedata bar" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +readlink "${cf}" +ln -sf "otherstuff" "${cf}" +readlink "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +cat "${cf}" +readlink "${cf}.rpmsave" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo +otherstuff +bar +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig3.at:208" +$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_359 +#AT_START_360 +at_fn_group_banner 360 'rpmconfig3.at:246' \ + "upgrade config to directory" " " 18 +at_xfail=no +( + $as_echo "360. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig3.at:248: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +test -d \"\${cf}\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig3.at:248" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype dir" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +test -d "${cf}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmconfig3.at:248" +$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_360 +#AT_START_361 +at_fn_group_banner 361 'rpmconfig3.at:278' \ + "upgrade modified config to directory" " " 18 +at_xfail=no +( + $as_echo "361. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmconfig3.at:280: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +cf=\"\${RPMTEST}\"/etc/my.conf +rm -rf \"\${cf}\" \"\${cf}\".rpm* +rm -rf \"\${TOPDIR}\" + +runroot rpmbuild --quiet -bb \\ + --define \"ver 1.0\" \\ + --define \"filetype file\" \\ + --define \"filedata foo\" \\ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \\ + --define \"ver 2.0\" \\ + --define \"filetype dir\" \\ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat \"\${cf}\" +echo \"otherstuff\" > \"\${cf}\" +cat \"\${cf}\" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +test -d \"\${cf}\" +cat \"\${cf}.rpmsave\" +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmconfig3.at:280" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +cf="${RPMTEST}"/etc/my.conf +rm -rf "${cf}" "${cf}".rpm* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/configtest.spec + +runroot rpmbuild --quiet -bb \ + --define "ver 2.0" \ + --define "filetype dir" \ + /data/SPECS/configtest.spec + +runroot rpm -U /build/RPMS/noarch/configtest-1.0-1.noarch.rpm +cat "${cf}" +echo "otherstuff" > "${cf}" +cat "${cf}" +runroot rpm -U /build/RPMS/noarch/configtest-2.0-1.noarch.rpm +test -d "${cf}" +cat "${cf}.rpmsave" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 >>"$at_stdout"; $as_echo "foo +otherstuff +otherstuff +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmconfig3.at:280" +$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_361 +#AT_START_362 +at_fn_group_banner 362 'rpmmacro.at:6' \ + "simple rpm --eval" " " 19 +at_xfail=no +( + $as_echo "362. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:8: +runroot rpm --define \"this that\" --eval '%{this}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:8" +( $at_check_trace; +runroot rpm --define "this that" --eval '%{this}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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_362 +#AT_START_363 +at_fn_group_banner 363 'rpmmacro.at:17' \ + "invalid rpm --eval" " " 19 +at_xfail=no +( + $as_echo "363. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:19: +runroot rpm --eval '%define _ that' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:19" +( $at_check_trace; +runroot rpm --eval '%define _ that' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Macro %_ has illegal name (%define) +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmmacro.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_363 +#AT_START_364 +at_fn_group_banner 364 'rpmmacro.at:29' \ + "invalid rpm --define" " " 19 +at_xfail=no +( + $as_echo "364. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:31: +runroot rpm --define \"_ that\" +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:31" +( $at_check_trace; +runroot rpm --define "_ that" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "error: Macro %_ has illegal name (%define) +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmmacro.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_364 +#AT_START_365 +at_fn_group_banner 365 'rpmmacro.at:40' \ + "rpm --undefine" " " 19 +at_xfail=no +( + $as_echo "365. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:42: +runroot rpm --define \"this that\" --eval '1. %{this}' --undefine 'this' --eval '2. %{this'} +runroot rpm --eval '1. %{this}' --define \"this that\" --eval '2. %{this}' --undefine 'this' --eval '3. %{this'} +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:42" +( $at_check_trace; +runroot rpm --define "this that" --eval '1. %{this}' --undefine 'this' --eval '2. %{this'} +runroot rpm --eval '1. %{this}' --define "this that" --eval '2. %{this}' --undefine 'this' --eval '3. %{this'} + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1. that +2. %{this} +1. %{this} +2. that +3. %{this} +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.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_365 +#AT_START_366 +at_fn_group_banner 366 'rpmmacro.at:55' \ + "simple true conditional rpm --eval" " " 19 +at_xfail=no +( + $as_echo "366. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:57: +runroot rpm --define \"this that\" --eval '%{?this}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:57" +( $at_check_trace; +runroot rpm --define "this that" --eval '%{?this}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:57" +$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_366 +#AT_START_367 +at_fn_group_banner 367 'rpmmacro.at:65' \ + "simple false conditional rpm --eval" " " 19 +at_xfail=no +( + $as_echo "367. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:67: +runroot rpm --define \"this that\" --eval '%{?that}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:67" +( $at_check_trace; +runroot rpm --define "this that" --eval '%{?that}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_367 +#AT_START_368 +at_fn_group_banner 368 'rpmmacro.at:75' \ + "nested macro in name" " " 19 +at_xfail=no +( + $as_echo "368. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:77: +runroot rpm --define \"this that\" --define \"that_that foo\" --eval '%{expand:%{%{this}_that}}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:77" +( $at_check_trace; +runroot rpm --define "this that" --define "that_that foo" --eval '%{expand:%{%{this}_that}}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:77" +$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_368 +#AT_START_369 +at_fn_group_banner 369 'rpmmacro.at:85' \ + "parametrized macro 1" " " 19 +at_xfail=no +( + $as_echo "369. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:87: +cat << EOF > \${abs_builddir}/testing/mtest +%bar() bar +%foo()\\\\ +%bar\\\\ +foo 1\\\\ +%{bar}\\\\ +foo 2\\\\ +%bar x\\\\ +foo 3\\\\ +%{bar x}\\\\ +foo 4\\\\ +%bar \\\\ +foo 5 +EOF + +runroot rpm --eval '%{load:mtest}%{foo}' +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmmacro.at:87" +( $at_check_trace; +cat << EOF > ${abs_builddir}/testing/mtest +%bar() bar +%foo()\\ +%bar\\ +foo 1\\ +%{bar}\\ +foo 2\\ +%bar x\\ +foo 3\\ +%{bar x}\\ +foo 4\\ +%bar \\ +foo 5 +EOF + +runroot rpm --eval '%{load:mtest}%{foo}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo " +bar +foo 1 +bar +foo 2 +bar +foo 3 +bar +foo 4 +bar +foo 5 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:87" +$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_369 +#AT_START_370 +at_fn_group_banner 370 'rpmmacro.at:121' \ + "parametrized macro 2" " " 19 +at_xfail=no +( + $as_echo "370. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:123: +runroot rpm \\ + --define '%bar() \"Bar %#: %{?1} %{?2}\"' \\ + --define '%foo() \"Foo %#: %{?1} %{?2}\" %bar a' \\ + --eval '%foo 1 2' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:123" +( $at_check_trace; +runroot rpm \ + --define '%bar() "Bar %#: %{?1} %{?2}"' \ + --define '%foo() "Foo %#: %{?1} %{?2}" %bar a' \ + --eval '%foo 1 2' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "\"Foo 2: 1 2\" \"Bar 1: a \" +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:123" +$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_370 +#AT_START_371 +at_fn_group_banner 371 'rpmmacro.at:134' \ + "parametrized macro 3" " " 19 +at_xfail=no +( + $as_echo "371. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:136: +runroot rpm \\ + --define '%foo() 1:%1 2:%2' \\ + --eval '%foo %nil bar' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:136" +( $at_check_trace; +runroot rpm \ + --define '%foo() 1:%1 2:%2' \ + --eval '%foo %nil bar' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1:bar 2:%2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:136" +$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_371 +#AT_START_372 +at_fn_group_banner 372 'rpmmacro.at:146' \ + "parametrized macro 4" " " 19 +at_xfail=no +( + $as_echo "372. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:148: +runroot rpm \\ + --define '%bar yyy' \\ + --define '%foo() %1' \\ + --eval '%foo %bar' \\ + --eval '%foo %%bar' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:148" +( $at_check_trace; +runroot rpm \ + --define '%bar yyy' \ + --define '%foo() %1' \ + --eval '%foo %bar' \ + --eval '%foo %%bar' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "yyy +%bar +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:148" +$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_372 +#AT_START_373 +at_fn_group_banner 373 'rpmmacro.at:161' \ + "parametrized macro 5" " " 19 +at_xfail=no +( + $as_echo "373. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:163: +runroot rpm \\ + --define '%foo() %#:%{?1:\"%1\"}%{?2: \"%2\"}' \\ + --define 'bar zzz' \\ + --eval '%foo 1' \\ + --eval '%foo 2 ' \\ + --eval '%foo 1 2' \\ + --eval '%foo %{nil}' \\ + --eval '%foo %{nil} xx' \\ + --eval '%foo %{bar} xx' \\ + --eval '%foo %{quote: 2 3 5} %{quote:%{nil}}' \\ + --eval '%foo x%{quote:y}z 123' \\ + --eval '%foo x%{quote:%{nil}}z' \\ +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:163" +( $at_check_trace; +runroot rpm \ + --define '%foo() %#:%{?1:"%1"}%{?2: "%2"}' \ + --define 'bar zzz' \ + --eval '%foo 1' \ + --eval '%foo 2 ' \ + --eval '%foo 1 2' \ + --eval '%foo %{nil}' \ + --eval '%foo %{nil} xx' \ + --eval '%foo %{bar} xx' \ + --eval '%foo %{quote: 2 3 5} %{quote:%{nil}}' \ + --eval '%foo x%{quote:y}z 123' \ + --eval '%foo x%{quote:%{nil}}z' \ + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1:\"1\" +1:\"2\" +2:\"1\" \"2\" +0: +1:\"xx\" +2:\"zzz\" \"xx\" +2:\" 2 3 5\" \"\" +2:\"xyz\" \"123\" +1:\"xz\" +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:163" +$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_373 +#AT_START_374 +at_fn_group_banner 374 'rpmmacro.at:190' \ + "uncompress macro" " " 19 +at_xfail=no +( + $as_echo "374. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:192: +runroot rpm \\ + --define \"__gzip /my/bin/gzip\" \\ + --eval \"%{uncompress:/data/SOURCES/hello-2.0.tar.gz}\" +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:192" +( $at_check_trace; +runroot rpm \ + --define "__gzip /my/bin/gzip" \ + --eval "%{uncompress:/data/SOURCES/hello-2.0.tar.gz}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 /data/SOURCES/hello-2.0.tar.gz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:192" +$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_374 +#AT_START_375 +at_fn_group_banner 375 'rpmmacro.at:202' \ + "basename macro" " " 19 +at_xfail=no +( + $as_echo "375. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:204: +runroot rpm \\ + --eval \"%{basename:/data/SOURCES/hello-2.0.tar.gz}\" +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:204" +( $at_check_trace; +runroot rpm \ + --eval "%{basename:/data/SOURCES/hello-2.0.tar.gz}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:204" +$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_375 +#AT_START_376 +at_fn_group_banner 376 'rpmmacro.at:213' \ + "shrink macro" " " 19 +at_xfail=no +( + $as_echo "376. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:215: +runroot rpm \\ + --eval \"%{shrink: h e l lo }\" +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:215" +( $at_check_trace; +runroot rpm \ + --eval "%{shrink: h e l lo }" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "h e l lo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:215" +$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_376 +#AT_START_377 +at_fn_group_banner 377 'rpmmacro.at:224' \ + "suffix macro" " " 19 +at_xfail=no +( + $as_echo "377. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:226: +runroot rpm \\ + --eval \"%{suffix:/data/SOURCES/hello-2.0.tar.gz}\" +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:226" +( $at_check_trace; +runroot rpm \ + --eval "%{suffix:/data/SOURCES/hello-2.0.tar.gz}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:226" +$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_377 +#AT_START_378 +at_fn_group_banner 378 'rpmmacro.at:235' \ + "url2path macro" " " 19 +at_xfail=no +( + $as_echo "378. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:237: +runroot rpm \\ + --eval \"%{url2path:http://hello.org/releases/hello-2.0.tar.gz}\" +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:237" +( $at_check_trace; +runroot rpm \ + --eval "%{url2path:http://hello.org/releases/hello-2.0.tar.gz}" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:237" +$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_378 +#AT_START_379 +at_fn_group_banner 379 'rpmmacro.at:246' \ + "shell expansion" " " 19 +at_xfail=no +( + $as_echo "379. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:248: +runroot rpm \\ + --eval \"%(echo foo)\" +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:248" +( $at_check_trace; +runroot rpm \ + --eval "%(echo foo)" + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:248" +$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_379 +#AT_START_380 +at_fn_group_banner 380 'rpmmacro.at:257' \ + "simple lua --eval" " " 19 +at_xfail=no +( + $as_echo "380. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:259: +runroot rpm --eval '%{lua:print(5*5)}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:259" +( $at_check_trace; +runroot rpm --eval '%{lua:print(5*5)}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:259" +$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_380 +#AT_START_381 +at_fn_group_banner 381 'rpmmacro.at:267' \ + "lua rpm extensions" " " 19 +at_xfail=no +( + $as_echo "381. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:269: +runroot rpm --eval '%{lua: rpm.define(\"foo bar\") print(rpm.expand(\"%{foo}\"))}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:269" +( $at_check_trace; +runroot rpm --eval '%{lua: rpm.define("foo bar") print(rpm.expand("%{foo}"))}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:269" +$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_381 +#AT_START_382 +at_fn_group_banner 382 'rpmmacro.at:277' \ + "lua posix extensions" " " 19 +at_xfail=no +( + $as_echo "382. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:279: +runroot rpm \\ + --eval '%{lua: posix.putenv(\"LUATEST=ok\") print(posix.getenv(\"LUATEST\"))}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:279" +( $at_check_trace; +runroot rpm \ + --eval '%{lua: posix.putenv("LUATEST=ok") print(posix.getenv("LUATEST"))}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:279" +$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_382 +#AT_START_383 +at_fn_group_banner 383 'rpmmacro.at:288' \ + "lua script exit behavior" " " 19 +at_xfail=no +( + $as_echo "383. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:290: +runroot rpm \\ + --eval '%{lua: os.exit()}))}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:290" +( $at_check_trace; +runroot rpm \ + --eval '%{lua: os.exit()}))}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/rpmmacro.at:290" +$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_383 +#AT_START_384 +at_fn_group_banner 384 'rpmmacro.at:300' \ + "%define + %undefine in nested levels 1" " " 19 +at_xfail=no +( + $as_echo "384. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:302: +# basic %define in nested scoping level +runroot rpm \\ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand:%undefine xxx} %{echo:%xxx}' \\ + --eval .'%foo'. +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:302" +( $at_check_trace; +# basic %define in nested scoping level +runroot rpm \ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand:%undefine xxx} %{echo:%xxx}' \ + --eval .'%foo'. + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +%xxx +. . +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:302" +$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_384 +#AT_START_385 +at_fn_group_banner 385 'rpmmacro.at:315' \ + "%define + %undefine in nested levels 2" " " 19 +at_xfail=no +( + $as_echo "385. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:317: +# %define macro once in a nested scope +runroot rpm \\ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx}' \\ + --eval .'%foo'. \\ + --eval '%xxx' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:317" +( $at_check_trace; +# %define macro once in a nested scope +runroot rpm \ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx}' \ + --eval .'%foo'. \ + --eval '%xxx' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +. . +%xxx +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:317" +$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_385 +#AT_START_386 +at_fn_group_banner 386 'rpmmacro.at:331' \ + "%define + %undefine in nested levels 3" " " 19 +at_xfail=no + test $RPM_XFAIL -ne 0 && at_xfail=yes +( + $as_echo "386. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:333: + +# %define macro twice in a nested scope +runroot rpm \\ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand: %define xxx 2} %{echo:%xxx}' \\ + --eval .'%foo'. \\ + --eval '%xxx' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:333" +( $at_check_trace; + +# %define macro twice in a nested scope +runroot rpm \ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand: %define xxx 2} %{echo:%xxx}' \ + --eval .'%foo'. \ + --eval '%xxx' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +2 +. . +%xxx +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:333" +$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_386 +#AT_START_387 +at_fn_group_banner 387 'rpmmacro.at:349' \ + "%define + %undefine in nested levels 4" " " 19 +at_xfail=no + test $RPM_XFAIL -ne 0 && at_xfail=yes +( + $as_echo "387. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:351: + +# %define in a nested level covered by %global +runroot rpm \\ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand: %global xxx 2} %{echo:%xxx}' \\ + --eval .'%foo'. \\ + --eval '%xxx' \\ + --eval .'%undefine xxx'. \\ + --eval '%xxx' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:351" +( $at_check_trace; + +# %define in a nested level covered by %global +runroot rpm \ + --define '%foo() %{expand:%define xxx 1} %{echo:%xxx} %{expand: %global xxx 2} %{echo:%xxx}' \ + --eval .'%foo'. \ + --eval '%xxx' \ + --eval .'%undefine xxx'. \ + --eval '%xxx' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +2 +. . +2 +.. +%xxx +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:351" +$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_387 +#AT_START_388 +at_fn_group_banner 388 'rpmmacro.at:371' \ + "%define in conditional macro" " " 19 +at_xfail=no +( + $as_echo "388. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:373: +runroot rpm \\ + --define 'dofoo() true'\\ + --eval '.%{!?foo: %define foo bar}.'\\ + --eval '%foo' \\ + --eval '%dofoo'\\ + --eval '%foo' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:373" +( $at_check_trace; +runroot rpm \ + --define 'dofoo() true'\ + --eval '.%{!?foo: %define foo bar}.'\ + --eval '%foo' \ + --eval '%dofoo'\ + --eval '%foo' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo ". . +bar +true +bar +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:373" +$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_388 +#AT_START_389 +at_fn_group_banner 389 'rpmmacro.at:389' \ + "%verbose negative test" " " 19 +at_xfail=no +( + $as_echo "389. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:391: +runroot rpm \\ + --eval '%{verbose:%{echo:is verbose}}' \\ + --eval '%{verbose:is verbose text}'\\ + --eval '%{!verbose:%{echo:is not verbose}}'\\ + --eval '%{!verbose:is not verbose text}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:391" +( $at_check_trace; +runroot rpm \ + --eval '%{verbose:%{echo:is verbose}}' \ + --eval '%{verbose:is verbose text}'\ + --eval '%{!verbose:%{echo:is not verbose}}'\ + --eval '%{!verbose:is not verbose text}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo " + +is not verbose + +is not verbose text +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:391" +$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_389 +#AT_START_390 +at_fn_group_banner 390 'rpmmacro.at:407' \ + "%verbose positive test" " " 19 +at_xfail=no +( + $as_echo "390. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmmacro.at:409: +runroot rpm -v \\ + --eval '%{!verbose:%{echo:is not verbose}}' \\ + --eval '%{!verbose:is not verbose text}'\\ + --eval '%{verbose:%{echo:is verbose}}'\\ + --eval '%{verbose:is verbose text}' +" +at_fn_check_prepare_notrace 'an embedded newline' "rpmmacro.at:409" +( $at_check_trace; +runroot rpm -v \ + --eval '%{!verbose:%{echo:is not verbose}}' \ + --eval '%{!verbose:is not verbose text}'\ + --eval '%{verbose:%{echo:is verbose}}'\ + --eval '%{verbose:is verbose text}' + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo " + +is verbose + +is verbose text +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmmacro.at:409" +$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_390 +#AT_START_391 +at_fn_group_banner 391 'rpmpython.at:6' \ + "module import" " " 20 +at_xfail=no +( + $as_echo "391. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:6: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +myprint(rpm.__version__) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:6" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +myprint(rpm.__version__) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "4.14.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_391 +#AT_START_392 +at_fn_group_banner 392 'rpmpython.at:12' \ + "macro manipulation" " " 20 +at_xfail=no +( + $as_echo "392. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:12: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +def prexp(m): + myprint(rpm.expandMacro('%%{?%s}' % m)) + +mname = '__no_such_macro_yet' +prexp(mname) +rpm.addMacro(mname, '/bin/sh') +prexp(mname) +rpm.addMacro(mname, '/bin/false') +prexp(mname) +rpm.delMacro(mname) +prexp(mname) +rpm.delMacro(mname) +prexp(mname) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:12" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +def prexp(m): + myprint(rpm.expandMacro('%%{?%s}' % m)) + +mname = '__no_such_macro_yet' +prexp(mname) +rpm.addMacro(mname, '/bin/sh') +prexp(mname) +rpm.addMacro(mname, '/bin/false') +prexp(mname) +rpm.delMacro(mname) +prexp(mname) +rpm.delMacro(mname) +prexp(mname) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo " +/bin/sh +/bin/false +/bin/sh + +" | \ + $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_392 +#AT_START_393 +at_fn_group_banner 393 'rpmpython.at:35' \ + "basic rpmio" " " 20 +at_xfail=no +( + $as_echo "393. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:35: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +msg = 'Killroy was here\\n' +data = msg * 10 +# TODO: test other compression types too if built in +for iot in [ 'fpio', 'fdio', 'ufdio', 'gzdio' ]: + fn = 'pyio.%s' % iot + fd = rpm.fd(fn, 'w', iot) + pos = fd.tell() + if pos != -2 and pos != 0: + myprint('bad start pos %d' % fd.tell()) + if fd.write(data) != len(data): + myprint('%s write fail' % iot) + if fn != fd.name: + myprint('bad file name %s' % fd.name) + fd.flush() + pos = fd.tell() + if pos != -2 and pos != len(data): + myprint('bad end pos %d' % fd.tell()) + fd = rpm.fd(fn, 'r', iot) + rdata = fd.read() + if rdata != data: + myprint('%s read fail (got %d bytes)\\n%s' % (iot, len(rdata), rdata)) + # compressed io types can't seek + if iot == 'ufdio': + fd.seek(0) + else: + fd = rpm.fd(fn, 'r', iot) + if fn != fd.name: + myprint('bad file name %s' % fd.name) + rdata = fd.read(len(msg)) + if rdata != msg: + myprint('%s sized read fail (got %d bytes)\\n%s' % (iot, len(rdata), rdata)) + +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 +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +msg = 'Killroy was here\n' +data = msg * 10 +# TODO: test other compression types too if built in +for iot in [ 'fpio', 'fdio', 'ufdio', 'gzdio' ]: + fn = 'pyio.%s' % iot + fd = rpm.fd(fn, 'w', iot) + pos = fd.tell() + if pos != -2 and pos != 0: + myprint('bad start pos %d' % fd.tell()) + if fd.write(data) != len(data): + myprint('%s write fail' % iot) + if fn != fd.name: + myprint('bad file name %s' % fd.name) + fd.flush() + pos = fd.tell() + if pos != -2 and pos != len(data): + myprint('bad end pos %d' % fd.tell()) + fd = rpm.fd(fn, 'r', iot) + rdata = fd.read() + if rdata != data: + myprint('%s read fail (got %d bytes)\n%s' % (iot, len(rdata), rdata)) + # compressed io types can't seek + if iot == 'ufdio': + fd.seek(0) + else: + fd = rpm.fd(fn, 'r', iot) + if fn != fd.name: + myprint('bad file name %s' % fd.name) + rdata = fd.read(len(msg)) + if rdata != msg: + myprint('%s sized read fail (got %d bytes)\n%s' % (iot, len(rdata), rdata)) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/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_393 +#AT_START_394 +at_fn_group_banner 394 'rpmpython.at:70' \ + "spec parse" " " 20 +at_xfail=no +( + $as_echo "394. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:70: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +# TODO: add a better test spec with sub-packages etc +spec = rpm.spec('\${RPMDATA}/SPECS/hello.spec') +for (name, num, flags) in spec.sources: + myprint('src %s %d %d' % (name, num, flags)) +for pkg in spec.packages: + myprint(pkg.header.format('%{nvr}')) +myprint(spec.sourceHeader.format('%{nvr}')) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:70" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +# TODO: add a better test spec with sub-packages etc +spec = rpm.spec('${RPMDATA}/SPECS/hello.spec') +for (name, num, flags) in spec.sources: + myprint('src %s %d %d' % (name, num, flags)) +for pkg in spec.packages: + myprint(pkg.header.format('%{nvr}')) +myprint(spec.sourceHeader.format('%{nvr}')) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "src hello-1.0-modernize.patch 0 2 +src hello-1.0.tar.gz 0 1 +hello-1.0-1 +hello-1.0-1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.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_394 +#AT_START_395 +at_fn_group_banner 395 'rpmpython.at:85' \ + "basic header manipulation" " " 20 +at_xfail=no +( + $as_echo "395. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:85: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +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']) +for a in ['name', 'bugurl', '__class__', '__foo__', ]: + try: + x = getattr(h, a) + myprint(x) + except AttributeError, exc: + myprint(exc) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:85" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +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']) +for a in ['name', 'bugurl', '__class__', '__foo__', ]: + try: + x = getattr(h, a) + myprint(x) + except AttributeError, exc: + myprint(exc) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 +testpkg +None +<type 'rpm.hdr'> +'rpm.hdr' object has no attribute '__foo__' +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.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_395 +#AT_START_396 +at_fn_group_banner 396 'rpmpython.at:110' \ + "invalid header data" " " 20 +at_xfail=no +( + $as_echo "396. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:110: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +h1 = rpm.hdr() +h1['basenames'] = ['bing', 'bang', 'bong'] +h1['dirnames'] = ['/opt/', '/flopt/'] +h1['dirindexes'] = [ 1, 0, 3 ] +h2 = rpm.hdr() +h2['basenames'] = ['bing', 'bang', 'bong'] +h2['dirnames'] = ['/opt/', '/flopt/'] +h2['dirindexes'] = [ 0, 0, 1 ] +for h in [h1, h2]: + try: + myprint(','.join(h['filenames'])) + except rpm.error, exc: + myprint(exc) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:110" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +h1 = rpm.hdr() +h1['basenames'] = ['bing', 'bang', 'bong'] +h1['dirnames'] = ['/opt/', '/flopt/'] +h1['dirindexes'] = [ 1, 0, 3 ] +h2 = rpm.hdr() +h2['basenames'] = ['bing', 'bang', 'bong'] +h2['dirnames'] = ['/opt/', '/flopt/'] +h2['dirindexes'] = [ 0, 0, 1 ] +for h in [h1, h2]: + try: + myprint(','.join(h['filenames'])) + except rpm.error, exc: + myprint(exc) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "invalid header data +/opt/bing,/opt/bang,/flopt/bong +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.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_396 +#AT_START_397 +at_fn_group_banner 397 'rpmpython.at:129' \ + "reading a package file" " " 20 +at_xfail=no +( + $as_echo "397. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:129: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +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:129" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +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" 5>&- +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:129" +$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_397 +#AT_START_398 +at_fn_group_banner 398 'rpmpython.at:137' \ + "reading a signed package file 1" " " 20 +at_xfail=no +( + $as_echo "398. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:137: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +# avoid rpmlog spew with absolute path to package +sink = open('/dev/null', 'w') +rpm.setLogFile(sink) +try: + h = ts.hdrFromFdno('\${RPMDATA}/RPMS/hello-2.0-1.x86_64-signed.rpm') + myprint(h['arch']) +except rpm.error, e: + myprint(e) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:137" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +# avoid rpmlog spew with absolute path to package +sink = open('/dev/null', 'w') +rpm.setLogFile(sink) +try: + h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-2.0-1.x86_64-signed.rpm') + myprint(h['arch']) +except rpm.error, e: + myprint(e) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "public key not available +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:137" +$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_398 +#AT_START_399 +at_fn_group_banner 399 'rpmpython.at:152' \ + "reading a signed package file 2" " " 20 +at_xfail=no +( + $as_echo "399. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:152: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + + +keydata = open('\${RPMDATA}/keys/rpm.org-rsa-2048-test.pub').read() +pubkey = rpm.pubkey(keydata) +keyring = rpm.keyring() +keyring.addKey(pubkey) + +ts = rpm.ts() +ts.setKeyring(keyring) +try: + h = ts.hdrFromFdno('\${RPMDATA}/RPMS/hello-2.0-1.x86_64-signed.rpm') + myprint(h['arch']) +except rpm.error, e: + myprint(e) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:152" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + + +keydata = open('${RPMDATA}/keys/rpm.org-rsa-2048-test.pub').read() +pubkey = rpm.pubkey(keydata) +keyring = rpm.keyring() +keyring.addKey(pubkey) + +ts = rpm.ts() +ts.setKeyring(keyring) +try: + h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-2.0-1.x86_64-signed.rpm') + myprint(h['arch']) +except rpm.error, e: + myprint(e) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "x86_64 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:152" +$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_399 +#AT_START_400 +at_fn_group_banner 400 'rpmpython.at:170' \ + "add package to transaction" " " 20 +at_xfail=no +( + $as_echo "400. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:170: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +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()) +ts.clear() +for e in ts: + myprint(e.NEVRA()) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:170" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +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()) +ts.clear() +for e in ts: + myprint(e.NEVRA()) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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: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_400 +#AT_START_401 +at_fn_group_banner 401 'rpmpython.at:182' \ + "add bogus package to transaction 1" " " 20 +at_xfail=no +( + $as_echo "401. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:182: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +h = rpm.hdr() +h['name'] = \"foo\" +try: + ts.addInstall(h, 'foo', 'u') +except rpm.error, err: + myprint(err) +for e in ts: + myprint(e.NEVRA()) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:182" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +h = rpm.hdr() +h['name'] = "foo" +try: + ts.addInstall(h, 'foo', 'u') +except rpm.error, err: + myprint(err) +for e in ts: + myprint(e.NEVRA()) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "adding package to transaction failed +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:182" +$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_401 +#AT_START_402 +at_fn_group_banner 402 'rpmpython.at:196' \ + "add bogus package to transaction 2" " " 20 +at_xfail=no +( + $as_echo "402. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:196: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +h = rpm.hdr() +h['name'] = 'foo' +h['version'] = '1.0' +h['release'] = '1' +h['os'] = 'linux' +h['arch'] = 'noarch' +h['basenames'] = ['bing', 'bang', 'bong'] +h['dirnames'] = ['/opt' '/flopt'] +h['dirindexes'] = [ 1, 2, 3 ] +try: + ts.addInstall(h, 'foo', 'u') +except rpm.error, err: + myprint(err) +for e in ts: + myprint(e.NEVRA()) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:196" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +h = rpm.hdr() +h['name'] = 'foo' +h['version'] = '1.0' +h['release'] = '1' +h['os'] = 'linux' +h['arch'] = 'noarch' +h['basenames'] = ['bing', 'bang', 'bong'] +h['dirnames'] = ['/opt' '/flopt'] +h['dirindexes'] = [ 1, 2, 3 ] +try: + ts.addInstall(h, 'foo', 'u') +except rpm.error, err: + myprint(err) +for e in ts: + myprint(e.NEVRA()) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "adding package to transaction failed +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.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_402 +#AT_START_403 +at_fn_group_banner 403 'rpmpython.at:217' \ + "database iterators" " " 20 +at_xfail=no +( + $as_echo "403. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:219: + +rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/* + + +runroot rpm --initdb + +runroot rpm -i \\ + --justdb --nodeps --ignorearch --ignoreos \\ + /data/RPMS/foo-1.0-1.noarch.rpm \\ + /data/RPMS/hello-2.0-1.i686.rpm +" +at_fn_check_prepare_notrace 'a `...` command substitution' "rpmpython.at:219" +( $at_check_trace; + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + +runroot rpm -i \ + --justdb --nodeps --ignorearch --ignoreos \ + /data/RPMS/foo-1.0-1.noarch.rpm \ + /data/RPMS/hello-2.0-1.i686.rpm + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmpython.at:219" +$at_failed && at_fn_log_failure +$at_traceon; } + + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:231: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +ix = 0 +mi = ts.dbMatch() +mi.pattern('name', rpm.RPMMIRE_STRCMP, 'hello') +for h in mi: + ix = h['dbinstance'] + break +del mi +for h in ts.dbMatch('packages', ix): + myprint(h['nevra']) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:231" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +ix = 0 +mi = ts.dbMatch() +mi.pattern('name', rpm.RPMMIRE_STRCMP, 'hello') +for h in mi: + ix = h['dbinstance'] + break +del mi +for h in ts.dbMatch('packages', ix): + myprint(h['nevra']) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "hello-2.0-1.i686 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:231" +$at_failed && at_fn_log_failure +$at_traceon; } + + + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:247: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +mi = ts.dbMatch() +mi.pattern('name', rpm.RPMMIRE_DEFAULT, 'f*') +for h in mi: + myprint(h['nevra']) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:247" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +mi = ts.dbMatch() +mi.pattern('name', rpm.RPMMIRE_DEFAULT, 'f*') +for h in mi: + myprint(h['nevra']) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:247" +$at_failed && at_fn_log_failure +$at_traceon; } + + + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:258: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +for h in ts.dbMatch('name'): + myprint(h['nevra']) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:258" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +for h in ts.dbMatch('name'): + myprint(h['nevra']) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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 +hello-2.0-1.i686 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:258" +$at_failed && at_fn_log_failure +$at_traceon; } + + + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:268: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +for h in ts.dbMatch('obsoletes'): + myprint(h['nevra']) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:268" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +for h in ts.dbMatch('obsoletes'): + myprint(h['nevra']) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:268" +$at_failed && at_fn_log_failure +$at_traceon; } + + + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:277: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +for h in ts.dbMatch('provides', 'hi'): + myprint(h['nevra']) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:277" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +for h in ts.dbMatch('provides', 'hi'): + myprint(h['nevra']) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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:277" +$at_failed && at_fn_log_failure +$at_traceon; } + + + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:286: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +for h in ts.dbMatch('basenames', '/usr/share/doc/hello-2.0/FAQ'): + myprint(h['nevra']) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:286" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +for h in ts.dbMatch('basenames', '/usr/share/doc/hello-2.0/FAQ'): + myprint(h['nevra']) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "hello-2.0-1.i686 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:286" +$at_failed && at_fn_log_failure +$at_traceon; } + + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:294: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +for di in sorted(ts.dbIndex('obsoletes')): + myprint(di) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:294" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +for di in sorted(ts.dbIndex('obsoletes')): + myprint(di) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "howdy +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:294" +$at_failed && at_fn_log_failure +$at_traceon; } + + + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:303: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +for di in sorted(ts.dbIndex('provides')): + myprint(di) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:303" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +for di in sorted(ts.dbIndex('provides')): + myprint(di) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +hello +hello(x86-32) +hi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:303" +$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_403 +#AT_START_404 +at_fn_group_banner 404 'rpmpython.at:316' \ + "dependency sets 1" " " 20 +at_xfail=no +( + $as_echo "404. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:316: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +h = ts.hdrFromFdno('\${RPMDATA}/RPMS/hello-1.0-1.ppc64.rpm') +for dep in rpm.ds(h, 'requires'): + myprint(dep.DNEVR()) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:316" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-1.0-1.ppc64.rpm') +for dep in rpm.ds(h, 'requires'): + myprint(dep.DNEVR()) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "R /bin/sh +R /bin/sh +R /bin/sh +R /bin/sh +R libc.so.6 +R libc.so.6(GLIBC_2.0) +R rpmlib(CompressedFileNames) <= 3.0.4-1 +R rpmlib(PayloadFilesHavePrefix) <= 4.0-1 +R rtld(GNU_HASH) +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:316" +$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_404 +#AT_START_405 +at_fn_group_banner 405 'rpmpython.at:333' \ + "dependency sets 2" " " 20 +at_xfail=no +( + $as_echo "405. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:333: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +h = ts.hdrFromFdno('\${RPMDATA}/RPMS/hello-2.0-1.i686.rpm') +ds = rpm.ds(h, 'provides') +myprint('%d %d' % (ds.Instance(), ds.Count())) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:333" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-2.0-1.i686.rpm') +ds = rpm.ds(h, 'provides') +myprint('%d %d' % (ds.Instance(), ds.Count())) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "0 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:333" +$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_405 +#AT_START_406 +at_fn_group_banner 406 'rpmpython.at:343' \ + "file info sets 1" " " 20 +at_xfail=no +( + $as_echo "406. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:343: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +h = ts.hdrFromFdno('\${RPMDATA}/RPMS/hello-2.0-1.i686.rpm') +fi = rpm.fi(h) +myprint(fi.FC()) +for f in fi: + myprint('%x: %s' % (fi.FFlags(), fi.FN())) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:343" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-2.0-1.i686.rpm') +fi = rpm.fi(h) +myprint(fi.FC()) +for f in fi: + myprint('%x: %s' % (fi.FFlags(), fi.FN())) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "5 +0: /usr/bin/hello +0: /usr/share/doc/hello-2.0 +2: /usr/share/doc/hello-2.0/COPYING +2: /usr/share/doc/hello-2.0/FAQ +2: /usr/share/doc/hello-2.0/README +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:343" +$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_406 +#AT_START_407 +at_fn_group_banner 407 'rpmpython.at:360' \ + "string pool 1" " " 20 +at_xfail=no +( + $as_echo "407. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:360: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +p = rpm.strpool() +for s in ['foo', 'bar', 'foo', 'zoo']: + p.str2id(s) +myprint('%s' % len(p)) +for i in range(1, len(p)+1): + myprint('%s: %s' % (i, p[i])) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:360" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +p = rpm.strpool() +for s in ['foo', 'bar', 'foo', 'zoo']: + p.str2id(s) +myprint('%s' % len(p)) +for i in range(1, len(p)+1): + myprint('%s: %s' % (i, p[i])) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "3 +1: foo +2: bar +3: zoo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:360" +$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_407 +#AT_START_408 +at_fn_group_banner 408 'rpmpython.at:375' \ + "string pool 2" " " 20 +at_xfail=no +( + $as_echo "408. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:375: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +p = rpm.strpool() +d1 = rpm.ds(('foo', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +d2 = rpm.ds(('bar', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +d3 = rpm.ds(('bar', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +myprint('%s' % len(p)) +del p +myprint(d1.DNEVR()) +myprint(d2.DNEVR()) +myprint(d3.DNEVR()) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:375" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +p = rpm.strpool() +d1 = rpm.ds(('foo', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +d2 = rpm.ds(('bar', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +d3 = rpm.ds(('bar', rpm.RPMSENSE_EQUAL, '2.0'), rpm.RPMTAG_PROVIDES, pool=p) +myprint('%s' % len(p)) +del p +myprint(d1.DNEVR()) +myprint(d2.DNEVR()) +myprint(d3.DNEVR()) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "3 +P foo = 2.0 +P bar = 2.0 +P bar = 2.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:375" +$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_408 +#AT_START_409 +at_fn_group_banner 409 'rpmpython.at:393' \ + "archive 1" " " 20 +at_xfail=no +( + $as_echo "409. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:393: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +import hashlib +ts = rpm.ts() +fd = rpm.fd.open('\${RPMDATA}/SRPMS/hello-1.0-1.src.rpm') +h = ts.hdrFromFdno(fd) +payload = rpm.fd.open(fd, flags=h['payloadcompressor']) +files = rpm.files(h) +archive = files.archive(payload) +for f in archive: + if not f.fflags & rpm.RPMFILE_SPECFILE: + continue + spec = archive.read() + hash = hashlib.md5(spec) + if f.digest != hash.hexdigest(): + myprint('%s should be %s' % (hash.hexdigest(), f.digest)) + break + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:393" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +import hashlib +ts = rpm.ts() +fd = rpm.fd.open('${RPMDATA}/SRPMS/hello-1.0-1.src.rpm') +h = ts.hdrFromFdno(fd) +payload = rpm.fd.open(fd, flags=h['payloadcompressor']) +files = rpm.files(h) +archive = files.archive(payload) +for f in archive: + if not f.fflags & rpm.RPMFILE_SPECFILE: + continue + spec = archive.read() + hash = hashlib.md5(spec) + if f.digest != hash.hexdigest(): + myprint('%s should be %s' % (hash.hexdigest(), f.digest)) + break + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +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/rpmpython.at:393" +$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_409 +#AT_START_410 +at_fn_group_banner 410 'rpmpython.at:413' \ + "header unload" " " 20 +at_xfail=no +( + $as_echo "410. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmpython.at:413: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\\n' % msg) + +ts = rpm.ts() +h = ts.hdrFromFdno('\${RPMDATA}/RPMS/hello-2.0-1.i686.rpm') +# Add some garbage to header to make it non-sorted +h['installtime'] = 0 +# RhBug:1061730 causes export of non-sorted header to be larger than it should +len1 = len(h.unload()) +# Accessing the header before export forces sorting to take place even on +# buggy versions +t = h['installtime'] +len2 = len(h.unload()) +myprint(len1 == len2) + +EOF +python test.py +" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmpython.at:413" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +def myprint(msg = ''): + sys.stdout.write('%s\n' % msg) + +ts = rpm.ts() +h = ts.hdrFromFdno('${RPMDATA}/RPMS/hello-2.0-1.i686.rpm') +# Add some garbage to header to make it non-sorted +h['installtime'] = 0 +# RhBug:1061730 causes export of non-sorted header to be larger than it should +len1 = len(h.unload()) +# Accessing the header before export forces sorting to take place even on +# buggy versions +t = h['installtime'] +len2 = len(h.unload()) +myprint(len1 == len2) + +EOF +python test.py + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "True +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:413" +$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_410 +#AT_START_411 +at_fn_group_banner 411 'rpmdepmatch.at:4' \ + "provide - require pairs" " " 21 +at_xfail=no +( + $as_echo "411. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/* + + +runroot rpm --initdb + + +{ set +x +$as_echo "$at_srcdir/rpmdepmatch.at:4: +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '\${abs_builddir}/testing%s' % dbpath) +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 'a ${...} parameter expansion' "rpmdepmatch.at:4" +( $at_check_trace; +cat << EOF > test.py +import rpm, sys +dbpath=rpm.expandMacro('%_dbpath') +rpm.addMacro('_dbpath', '${abs_builddir}/testing%s' % dbpath) +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" 5>&- +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_411 diff --git a/tests/rpmtests.at b/tests/rpmtests.at index b51266a2d..746792234 100644 --- a/tests/rpmtests.at +++ b/tests/rpmtests.at @@ -1,9 +1,13 @@ m4_include([rpmgeneral.at]) +m4_include([rpmio.at]) m4_include([rpmquery.at]) m4_include([rpmverify.at]) +m4_include([rpmsigdig.at]) m4_include([rpmdb.at]) m4_include([rpmi.at]) +m4_include([rpmorder.at]) m4_include([rpmbuild.at]) +m4_include([rpmbuildid.at]) m4_include([rpmscript.at]) m4_include([rpmvercmp.at]) m4_include([rpmdeps.at]) diff --git a/tests/rpmverify.at b/tests/rpmverify.at index 473ac494f..7e6a1b0dc 100644 --- a/tests/rpmverify.at +++ b/tests/rpmverify.at @@ -16,8 +16,8 @@ runroot rpmbuild --quiet -bb \ --define "reqs deptest-two" \ /data/SPECS/deptest.spec -runroot rpm -U --nodeps "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm -runroot rpm -Va +runroot rpm -U --nodeps /build/RPMS/noarch/deptest-one-1.0-1.noarch.rpm +runroot rpm -Va --nofiles ], [1], [Unsatisfied dependencies for deptest-one-1.0-1.noarch: @@ -63,6 +63,67 @@ runroot rpm -Vva --nodeps --nouser --nogroup []) AT_CLEANUP +# Test file verify when no errors expected in verbose mode. +AT_SETUP([directory replaced with a directory symlink]) +AT_KEYWORDS([verify]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype datadir" \ + --define "filedata README1" \ + --define "user $(id -u -n)" \ + --define "grp $(id -g -n)" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +mv "${RPMTEST}"/opt/foo "${RPMTEST}"/opt/was +ln -s was "${RPMTEST}"/opt/foo +runroot rpm -Vv replacetest +], +[0], +[......... /opt/foo +......... /opt/foo/README1 +......... /opt/goo +......... /opt/zoo +], +[]) +AT_CLEANUP + +AT_SETUP([directory replaced with an invalid directory symlink]) +AT_KEYWORDS([verify]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +tf="${RPMTEST}"/opt/foo +rm -rf "${RPMTEST}"/opt/* +rm -rf "${TOPDIR}" + +runroot rpmbuild --quiet -bb \ + --define "ver 1.0" \ + --define "filetype datadir" \ + --define "filedata README1" \ + /data/SPECS/replacetest.spec + +runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +mv "${RPMTEST}"/opt/foo "${RPMTEST}"/opt/was +ln -s was "${RPMTEST}"/opt/foo +runroot rpm -Vv --nouser --nogroup replacetest +], +[1], +[....L.... /opt/foo +......... /opt/foo/README1 +......... /opt/goo +......... /opt/zoo +], +[]) +AT_CLEANUP + # Test file verify after mutilating the files a bit. AT_SETUP([verify from db, with problems present]) AT_KEYWORDS([verify]) @@ -107,6 +168,53 @@ missing d /usr/share/doc/hello-1.0/FAQ []) AT_CLEANUP +AT_SETUP([verify file attribute filtering]) +AT_KEYWORDS([query]) +AT_CHECK([ +runroot rpmbuild -bb --quiet \ + /data/SPECS/vattrtest.spec + +runroot rpm -U /build/RPMS/noarch/vattrtest-1.0-1.noarch.rpm +runroot_other touch /opt/vattrtest/g +runroot_other chmod 644 /opt/vattrtest/g + +cmd="rpm -Vv --nouser --nogroup" +for filter in --noconfig --noghost --noartifact; do + echo ${filter} + runroot ${cmd} ${filter} vattrtest +done +], +[ignore], +[--noconfig +......... /opt/vattrtest +......... a /opt/vattrtest/a +......... d /opt/vattrtest/d +......... g /opt/vattrtest/g +......... l /opt/vattrtest/l +......... m /opt/vattrtest/m +......... r /opt/vattrtest/r +--noghost +......... /opt/vattrtest +......... a /opt/vattrtest/a +......... c /opt/vattrtest/c +......... c /opt/vattrtest/cn +......... d /opt/vattrtest/d +......... l /opt/vattrtest/l +......... m /opt/vattrtest/m +......... r /opt/vattrtest/r +--noartifact +......... /opt/vattrtest +......... c /opt/vattrtest/c +......... c /opt/vattrtest/cn +......... d /opt/vattrtest/d +......... g /opt/vattrtest/g +......... l /opt/vattrtest/l +......... m /opt/vattrtest/m +......... r /opt/vattrtest/r +], +[]) +AT_CLEANUP + # Test verify script success & failure behavior # Ignoring stderr spew for now AT_SETUP([verifyscript failure]) @@ -117,7 +225,7 @@ RPMDB_INIT rm -rf "${TOPDIR}" runroot rpmbuild --quiet -bb /data/SPECS/verifyscript.spec -runroot rpm -U --nodeps "${TOPDIR}"/RPMS/noarch/verifyscript-1.0-1.noarch.rpm +runroot rpm -U --nodeps /build/RPMS/noarch/verifyscript-1.0-1.noarch.rpm rm -f "${RPMTEST}"/var/checkme runroot rpm -V --nodeps verifyscript ], @@ -134,7 +242,7 @@ RPMDB_INIT rm -rf "${TOPDIR}" runroot rpmbuild --quiet -bb /data/SPECS/verifyscript.spec -runroot rpm -U --nodeps "${TOPDIR}"/RPMS/noarch/verifyscript-1.0-1.noarch.rpm +runroot rpm -U --nodeps /build/RPMS/noarch/verifyscript-1.0-1.noarch.rpm touch "${RPMTEST}"/var/checkme runroot rpm -V --nodeps verifyscript ], @@ -163,7 +271,7 @@ done # first instance of a shared file is the one that actually gets created, # force the order so we know what to expect as these dont depend on each other -runroot rpm -U --noorder "${TOPDIR}"/RPMS/noarch/conflictone-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm +runroot rpm -U --noorder /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm /build/RPMS/noarch/conflicttwo-1.0-1.noarch.rpm runroot rpm -e conflicttwo runroot rpm -Va --nouser --nogroup ], @@ -171,3 +279,297 @@ runroot rpm -Va --nouser --nogroup [], []) AT_CLEANUP + +# ------------------------------ +# Upgraded verification with min_writes 1 (files) +AT_SETUP([Upgraded verification with min_writes 1 (files)]) +AT_KEYWORDS([upgrade verify min_writes]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec +done + +for v in "3.0" "4.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype file" \ + --define "filedata fox" \ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" +touch -t 201703171717 ${tf} + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat "${tf}" + +echo "xx" > "${tf}" +cat "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat "${tf}" + +touch -t 201703171717 ${tf} + +runroot rpm -U --oldpackage \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +cat "${tf}" +], +[0], +[foo +foo +fox +xx +fox +fox +], +[]) +AT_CLEANUP + + +# ------------------------------ +# Upgraded verification with min_writes 2 (files) +AT_SETUP([Upgraded verification with min_writes 2 (files)]) +AT_KEYWORDS([upgrade verify min_writes]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype file" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec +done + +for v in "3.0" "4.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype file" \ + --define "filedata fox" \ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +cat "${tf}" +touch -t 201703171717 ${tf} + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +cat "${tf}" + + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +cat "${tf}" +echo "xx" > "${tf}" +cat "${tf}" + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +cat "${tf}" + +touch -t 201703171717 ${tf} + +runroot rpm -U -Uvv --fsmdebug --oldpackage \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +cat "${tf}" +], +[0], +[foo +2 +foo +1 +fox +xx +1 +fox +2 +fox +], +[]) +AT_CLEANUP + +# ------------------------------ +# Upgraded verification with min_writes 3 (LINKs) +AT_SETUP([Upgraded verification with min_writes 3 (LINKs)]) +AT_KEYWORDS([upgrade verify min_writes]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype link" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec +done + +for v in "3.0" "4.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype link" \ + --define "filedata fox" \ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink "${tf}" + +ln -sf "xx" "${tf}" +readlink "${tf}" + +runroot rpm -U \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink "${tf}" + +runroot rpm -U --oldpackage \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm +runroot rpm -Va --nouser --nogroup replacetest +readlink "${tf}" +], +[0], +[foo +foo +fox +xx +fox +fox +], +[]) +AT_CLEANUP +# ------------------------------ +# Upgraded verification with min_writes 4 (LINKs) +AT_SETUP([Upgraded verification with min_writes 4 (LINKs)]) +AT_KEYWORDS([upgrade verify min_writes]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +tf="${RPMTEST}"/opt/foo +rm -rf "${tf}" "${tf}".rpm* +rm -rf "${TOPDIR}" + +for v in "1.0" "2.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype link" \ + --define "filedata foo" \ + /data/SPECS/replacetest.spec +done + +for v in "3.0" "4.0"; do + runroot rpmbuild --quiet -bb \ + --define "ver $v" \ + --define "filetype link" \ + --define "filedata fox" \ + /data/SPECS/replacetest.spec +done + +runroot rpm -i /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm +readlink "${tf}" + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +readlink "${tf}" + + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +readlink "${tf}" +ln -sf "xx" "${tf}" +readlink "${tf}" + +runroot rpm -Uvv --fsmdebug \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-4.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +readlink "${tf}" + +runroot rpm -U -Uvv --fsmdebug --oldpackage \ + --define "_minimize_writes 1" \ + /build/RPMS/noarch/replacetest-3.0-1.noarch.rpm > output.txt 2>&1 +runroot rpm -Va --nouser --nogroup replacetest +grep -c "touch" output.txt +readlink "${tf}" +], +[0], +[foo +2 +foo +1 +fox +xx +1 +fox +2 +fox +], +[]) +AT_CLEANUP |