summaryrefslogtreecommitdiffstats
path: root/src/at
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 14:58:51 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 14:58:51 +0000
commitcbffab246997fb5a06211dfb706b54e5ae5bb59f (patch)
tree0573c5d96f58d74d76a49c0f2a70398e389a36d3 /src/at
parentInitial commit. (diff)
downloaddpkg-cbffab246997fb5a06211dfb706b54e5ae5bb59f.tar.xz
dpkg-cbffab246997fb5a06211dfb706b54e5ae5bb59f.zip
Adding upstream version 1.21.22.upstream/1.21.22upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/at')
-rw-r--r--src/at/atlocal.in32
-rw-r--r--src/at/chdir.at491
-rw-r--r--src/at/deb-content.at129
-rw-r--r--src/at/deb-fields.at47
-rw-r--r--src/at/deb-format.at601
-rw-r--r--src/at/deb-split.at228
-rw-r--r--src/at/divert.at639
-rw-r--r--src/at/local.at132
-rw-r--r--src/at/package.m47
-rw-r--r--src/at/realpath.at86
-rwxr-xr-xsrc/at/testsuite12702
-rw-r--r--src/at/testsuite.at24
12 files changed, 15118 insertions, 0 deletions
diff --git a/src/at/atlocal.in b/src/at/atlocal.in
new file mode 100644
index 0000000..bf72333
--- /dev/null
+++ b/src/at/atlocal.in
@@ -0,0 +1,32 @@
+# Global shell definitions for the autotest test suite
+
+PATH="@abs_top_builddir@/src:$PATH"
+export PATH
+
+SED=@SED@
+PERL=@PERL@
+
+# Setup a sane environment
+
+umask 0022
+
+LC_ALL=C
+export LC_ALL
+
+TZ=UTC0
+export TZ
+
+SOURCE_DATE_EPOCH=0
+export SOURCE_DATE_EPOCH
+
+prefix="@prefix@"
+eval "export DEFAULT_ADMINDIR='@admindir@'"
+export DPKG_DATADIR="@abs_top_srcdir@/src"
+
+# Cleanup variables that might affect the tests.
+unset GZIP
+unset BZIP
+unset XZ_OPT
+unset XZ_DEFAULTS
+
+unset DPKG_ROOT
diff --git a/src/at/chdir.at b/src/at/chdir.at
new file mode 100644
index 0000000..ec9299f
--- /dev/null
+++ b/src/at/chdir.at
@@ -0,0 +1,491 @@
+#
+# Test commands with --root, --instdir and --admindir.
+#
+
+m4_foreach_w([CMD], [dpkg dpkg-divert dpkg-statoverride], [
+ m4_define([CMD_PRINT_DIRS], [DPKG_DEBUG=1 CMD --version])
+
+ AT_SETUP([CMD chdir opts])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --root=/rootdir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --instdir=/instdir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [CMD_PRINT_DIRS --instdir=/instdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK(
+ [CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK(
+ [CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CLEANUP
+
+ AT_SETUP([CMD chdir env])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS],
+ [], [ignore],
+ [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS],
+ [], [ignore],
+ [D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS],
+ [], [ignore],
+ [D000001: root=/rootdir_env admindir=/admindir_env
+])
+
+ AT_CLEANUP
+
+ AT_SETUP([CMD chdir env+opt admindir])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_env
+])
+ AT_CHECK(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CLEANUP
+
+ AT_SETUP([CMD chdir env+opt root])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_env admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/rootdir_env$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CLEANUP
+
+ AT_SETUP([CMD chdir env+opt root+admindir])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_env admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_env
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --instdir=/instdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt],
+ [], [ignore],
+ [D000001: root=/instdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CLEANUP
+])
+
+#
+# Test commands with only --root and --admindir.
+#
+
+m4_foreach_w([CMD], [dpkg-split dpkg-query dpkg-trigger], [
+ m4_define([CMD_PRINT_DIRS], [DPKG_DEBUG=1 CMD --version])
+
+ AT_SETUP([CMD chdir opts])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+])
+
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/admindir_opt
+])
+
+ AT_CHECK_UNQUOTED(
+ [CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CLEANUP
+
+ AT_SETUP([CMD chdir env])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS],
+ [], [ignore],
+ [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env
+])
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS],
+ [], [ignore],
+ [D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR
+])
+
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS],
+ [], [ignore],
+ [D000001: root=/rootdir_env admindir=/admindir_env
+])
+
+ AT_CLEANUP
+
+ AT_SETUP([CMD chdir env+opt admindir])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CLEANUP
+
+ AT_SETUP([CMD chdir env+opt root])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_env admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CLEANUP
+
+ AT_SETUP([CMD chdir env+opt root+admindir])
+ AT_KEYWORDS([CMD command-line chdir])
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_env admindir=/admindir_opt
+])
+ AT_CHECK(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/admindir_opt
+])
+ AT_CHECK_UNQUOTED(
+ [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt],
+ [], [ignore],
+ [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+])
+
+ AT_CLEANUP
+])
diff --git a/src/at/deb-content.at b/src/at/deb-content.at
new file mode 100644
index 0000000..f475603
--- /dev/null
+++ b/src/at/deb-content.at
@@ -0,0 +1,129 @@
+AT_SETUP([dpkg-deb .deb conffiles])
+AT_KEYWORDS([dpkg-deb deb conffiles])
+
+DPKG_GEN_CONTROL([pkg-conff-duped])
+DPKG_GEN_CTRL_FILE([pkg-conff-duped], [conffiles], [/test-conffile-1
+/test-conffile-2
+/test-conffile-1])
+AT_DATA([pkg-conff-duped/test-conffile-1], [test init
+])
+AT_DATA([pkg-conff-duped/test-conffile-2], [test init
+])
+AT_CHECK([
+# Duplicate conffile entries should produce a warning.
+dpkg-deb -b pkg-conff-duped
+], [0], [ignore], [dpkg-deb: warning: conffile name '/test-conffile-1' is duplicated
+dpkg-deb: warning: ignoring 1 warning about the control file(s)
+])
+
+DPKG_GEN_CONTROL([pkg-conff-noeol])
+printf "/test-conffile-1" >"pkg-conff-noeol/DEBIAN/conffiles"
+AT_DATA([pkg-conff-noeol/test-conffile-1], [test init
+])
+AT_CHECK([
+# Conffiles need a final newline to guarantee there's been no accidental
+# file truncation.
+dpkg-deb -b pkg-conff-noeol pkg-conff-noeol.deb
+], [2], [ignore], [dpkg-deb: error: conffile name '/test-conffile-1' is too long, or missing final newline
+])
+
+DPKG_GEN_CONTROL([pkg-conff-noabs])
+DPKG_GEN_CTRL_FILE([pkg-conff-noabs], [conffiles], [test-conffile-rel])
+AT_DATA([pkg-conff-noabs/test-conffile-rel], [test init
+])
+AT_CHECK([
+# Conffiles must use absolute pathnames.
+dpkg-deb -b pkg-conff-noabs pkg-conff-noabs.deb
+], [2], [ignore], [dpkg-deb: error: conffile name 'test-conffile-rel' is not an absolute pathname
+])
+
+DPKG_GEN_CONTROL([pkg-conff-empty])
+printf " \n" >"pkg-conff-empty/DEBIAN/conffiles"
+AT_CHECK([
+# Conffiles must not contain empty lines.
+dpkg-deb -b pkg-conff-empty pkg-conff-empty.deb
+], [2], [ignore], [dpkg-deb: error: empty and whitespace-only lines are not allowed in conffiles
+])
+
+DPKG_GEN_CONTROL([pkg-conff-space-prefix])
+DPKG_GEN_CTRL_FILE([pkg-conff-space-prefix], [conffiles], [ /test-conffile])
+AT_CHECK([
+# Conffiles must not contain prefixed spaces.
+dpkg-deb -b pkg-conff-space-prefix pkg-conff-space-prefix.deb
+], [2], [ignore], [dpkg-deb: error: line with conffile filename '/test-conffile' has leading white spaces
+])
+
+DPKG_GEN_CONTROL([pkg-conff-unknown-flag])
+DPKG_GEN_CTRL_FILE([pkg-conff-unknown-flag], [conffiles], [unknown-flag /test-conffile])
+AT_CHECK([
+# Conffiles marked with an unknown flag.
+dpkg-deb -b pkg-conff-unknown-flag pkg-conff-unknown-flag.deb
+], [2], [ignore], [dpkg-deb: error: unknown flag 'unknown-flag' for conffile '/test-conffile'
+])
+
+DPKG_GEN_CONTROL([pkg-conff-missing-pathname])
+printf "unknown-flag \n" >"pkg-conff-missing-pathname/DEBIAN/conffiles"
+AT_CHECK([
+# Conffiles need a pathname, in addition to a flag.
+dpkg-deb -b pkg-conff-missing-pathname pkg-conff-missing-pathname.deb
+], [2], [ignore], [dpkg-deb: error: conffile name missing after flag 'unknown-flag'
+])
+
+DPKG_GEN_CONTROL([pkg-conff-removed-missing])
+DPKG_GEN_CTRL_FILE([pkg-conff-removed-missing], [conffiles], [remove-on-upgrade /test-conffile-missing])
+AT_CHECK([
+# Conffiles marked for removal must not be present.
+dpkg-deb -b pkg-conff-removed-missing pkg-conff-removed-missing.deb
+], [0], [ignore], [])
+
+DPKG_GEN_CONTROL([pkg-conff-removed-duped])
+DPKG_GEN_CTRL_FILE([pkg-conff-removed-duped], [conffiles], [remove-on-upgrade /test-conffile-1
+remove-on-upgrade /test-conffile-2
+remove-on-upgrade /test-conffile-1])
+AT_CHECK([
+# Duplicate conffile entries should produce a warning.
+dpkg-deb -b pkg-conff-removed-duped
+], [0], [ignore], [dpkg-deb: warning: conffile name '/test-conffile-1' is duplicated
+dpkg-deb: warning: ignoring 1 warning about the control file(s)
+])
+
+DPKG_GEN_CONTROL([pkg-conff-removed-noeol])
+printf "remove-on-upgrade /test-conffile-1" >"pkg-conff-removed-noeol/DEBIAN/conffiles"
+AT_CHECK([
+# Conffiles need a final newline to guarantee there has been no accidental
+# file truncation.
+dpkg-deb -b pkg-conff-removed-noeol pkg-conff-removed-noeol.deb
+], [2], [ignore], [dpkg-deb: error: conffile name 'remove-on-upgrade /test-conffile-1' is too long, or missing final newline
+])
+
+DPKG_GEN_CONTROL([pkg-conff-removed-noabs])
+DPKG_GEN_CTRL_FILE([pkg-conff-removed-noabs], [conffiles], [remove-on-upgrade test-conffile-rel])
+AT_DATA([pkg-conff-removed-noabs/test-conffile-rel], [test init
+])
+AT_CHECK([
+# Conffiles must use absolute pathnames.
+dpkg-deb -b pkg-conff-removed-noabs pkg-conff-removed-noabs.deb
+], [2], [ignore], [dpkg-deb: error: conffile name 'test-conffile-rel' is not an absolute pathname
+])
+
+DPKG_GEN_CONTROL([pkg-conff-removed-present])
+DPKG_GEN_CTRL_FILE([pkg-conff-removed-present], [conffiles], [remove-on-upgrade /test-conffile-present])
+AT_DATA([pkg-conff-removed-present/test-conffile-present], [test init
+])
+AT_CHECK([
+# Conffiles marked for removal must not be present.
+dpkg-deb -b pkg-conff-removed-present pkg-conff-removed-present.deb
+], [2], [ignore], [dpkg-deb: error: conffile '/test-conffile-present' is present but is requested to be removed
+])
+
+DPKG_GEN_CONTROL([pkg-deb-newline])
+touch 'pkg-deb-newline/file
+newline'
+AT_CHECK([
+# Cannot create package with newlines in filenames.
+dpkg-deb -b pkg-deb-newline
+], [2], [ignore], [dpkg-deb: error: newline not allowed in pathname './file
+newline'
+])
+
+AT_CLEANUP
diff --git a/src/at/deb-fields.at b/src/at/deb-fields.at
new file mode 100644
index 0000000..484ccb7
--- /dev/null
+++ b/src/at/deb-fields.at
@@ -0,0 +1,47 @@
+AT_SETUP([dpkg-deb .deb fields])
+AT_KEYWORDS([dpkg-deb deb fields])
+
+DPKG_GEN_CONTROL([pkg-package-type-void])
+AT_CHECK([
+dpkg-deb -b pkg-package-type-void
+# Test absence of Package-Type field.
+test -z "$(dpkg-deb -f pkg-package-type-void.deb Package-Type)"
+], [0], [ignore])
+
+DPKG_GEN_CONTROL([pkg-package-type-use])
+DPKG_MOD_CONTROL([pkg-package-type-use], [/^Package:/aPackage-Type: udeb])
+AT_CHECK([
+dpkg-deb -b pkg-package-type-use
+# Test presence of Package-Type field.
+test -n "$(dpkg-deb -f pkg-package-type-use.deb Package-Type)"
+], [0], [ignore])
+
+DPKG_GEN_CONTROL([pkg-obsolete-fields])
+DPKG_MOD_CONTROL([pkg-obsolete-fields], [s/^Priority:/Class:/])
+DPKG_MOD_CONTROL([pkg-obsolete-fields], [s/^Version: 0.0-1/Version: 0.0/])
+DPKG_MOD_CONTROL([pkg-obsolete-fields], [/^Version:/aRevision: 1])
+DPKG_MOD_CONTROL([pkg-obsolete-fields], [/^Package:/aOptional: suggests])
+DPKG_MOD_CONTROL([pkg-obsolete-fields], [/^Package:/aRecommended: recommends])
+AT_CHECK([
+dpkg-deb -b pkg-obsolete-fields
+], [0], [ignore],
+[dpkg-deb: warning: parsing file 'pkg-obsolete-fields/DEBIAN/control' near line 2 package 'pkg-obsolete-fields':
+ obsolete 'Recommended' field used
+dpkg-deb: warning: parsing file 'pkg-obsolete-fields/DEBIAN/control' near line 3 package 'pkg-obsolete-fields':
+ obsolete 'Optional' field used
+dpkg-deb: warning: parsing file 'pkg-obsolete-fields/DEBIAN/control' near line 5 package 'pkg-obsolete-fields':
+ obsolete 'Revision' field used
+dpkg-deb: warning: parsing file 'pkg-obsolete-fields/DEBIAN/control' near line 7 package 'pkg-obsolete-fields':
+ obsolete 'Class' field used
+dpkg-deb: warning: ignoring 4 warnings about the control file(s)
+])
+AT_CHECK([
+dpkg-deb -f pkg-obsolete-fields.deb \
+ Version Recommends Suggests Priority 2>/dev/null
+], [0], [Version: 0.0-1
+Recommends: recommends
+Suggests: suggests
+Priority: extra
+])
+
+AT_CLEANUP
diff --git a/src/at/deb-format.at b/src/at/deb-format.at
new file mode 100644
index 0000000..c3b412f
--- /dev/null
+++ b/src/at/deb-format.at
@@ -0,0 +1,601 @@
+AT_SETUP([dpkg-deb options])
+AT_KEYWORDS([dpkg-deb command-line])
+
+AT_CHECK([dpkg-deb --version], [], [ignore])
+AT_CHECK([dpkg-deb --help], [], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([dpkg-deb .deb format 0.93x])
+AT_KEYWORDS([dpkg-deb deb-old])
+
+AT_SKIP_IF([! command -v gzip >/dev/null])
+
+AT_DATA([pkg-deb-old-bogus-only-version.deb], [0.93
+])
+AT_CHECK([
+# Check truncated old deb w/ only version magic
+dpkg-deb --info pkg-deb-old-bogus-only-version.deb
+], [2], [], [dpkg-deb: error: unexpected end of file in archive control member size in pkg-deb-old-bogus-only-version.deb
+])
+
+DPKG_GEN_CONTROL([pkg-deb-old-format])
+DPKG_MOD_CONTROL([pkg-deb-old-format],
+ [s/^Description:.*$/& - deb old format support/])
+AT_DATA([pkg-deb-old-format/file-templ], [test
+])
+AT_CHECK([
+# Initialize the template package
+mv pkg-deb-old-format pkg-old-templ
+cp $top_srcdir/ChangeLog.old pkg-old-templ/
+chmod 0644 pkg-old-templ/ChangeLog.old
+chmod -R u+w pkg-old-templ
+find pkg-old-templ | xargs touch -t 197001010100.00
+dpkg-deb --deb-format=0.939000 --root-owner-group -Zgzip -b pkg-old-templ >/dev/null
+
+dpkg-deb --fsys-tarfile pkg-old-templ.deb >fsys.tar
+gzip -n fsys.tar
+
+# Create deb-old 0.939
+cp pkg-old-templ.deb pkg-old.deb
+
+# Create deb-old-old-old 0.931
+mkdir -p pkg-old-0931-templ/.DEBIAN
+cp pkg-old-templ/DEBIAN/* pkg-old-0931-templ/.DEBIAN/
+find pkg-old-0931-templ | xargs touch -t 197001010100.00
+tar czf ctrl-0931.tar.gz --format=gnu --mtime @0 --clamp-mtime --owner root:0 --group root:0 -C pkg-old-0931-templ .DEBIAN
+
+echo '0.931000' >pkg-old-0931.deb
+DPKG_FILE_SIZE([ctrl-0931.tar.gz]) >>pkg-old-0931.deb
+cat ctrl-0931.tar.gz >>pkg-old-0931.deb
+cat fsys.tar.gz >>pkg-old-0931.deb
+
+# Create deb-old-old template
+mkdir -p pkg-old-0932-templ/DEBIAN
+cp pkg-old-templ/DEBIAN/* pkg-old-0932-templ/DEBIAN/
+find pkg-old-0932-templ | xargs touch -t 197001010100.00
+tar czf ctrl-0932.tar.gz --format=gnu --mtime @0 --clamp-mtime --owner root:0 --group root:0 -C pkg-old-0932-templ DEBIAN
+
+# Create deb-old-old 0.932
+echo '0.932000' >pkg-old-0932.deb
+DPKG_FILE_SIZE([ctrl-0932.tar.gz]) >>pkg-old-0932.deb
+cat ctrl-0932.tar.gz >>pkg-old-0932.deb
+cat fsys.tar.gz >>pkg-old-0932.deb
+
+# Create deb-old-old 0.933
+echo '0.933000' >pkg-old-0933.deb
+DPKG_FILE_SIZE([ctrl-0932.tar.gz]) >>pkg-old-0933.deb
+cat ctrl-0932.tar.gz >>pkg-old-0933.deb
+cat fsys.tar.gz >>pkg-old-0933.deb
+])
+
+AT_CHECK([
+# Check old package metadata
+dpkg-deb -I pkg-old.deb | $SED -e 's/ *$//'
+], [], [ old Debian package, version 0.939000.
+ size 174621 bytes: control archive=274, main archive=174334.
+ 201 bytes, 7 lines control
+ Package: pkg-deb-old-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb old format support
+])
+
+AT_CHECK([
+# Check old package metadata
+dpkg-deb -I pkg-old-0931.deb | $SED -e 's/ *$//'
+], [], [ old Debian package, version 0.931000.
+ size 175522 bytes: control archive=291, main archive=175218.
+ 201 bytes, 7 lines control
+ Package: pkg-deb-old-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb old format support
+])
+
+AT_CHECK([
+# Check old package metadata
+dpkg-deb -I pkg-old-0932.deb | $SED -e 's/ *$//'
+], [], [ old Debian package, version 0.932000.
+ size 175522 bytes: control archive=291, main archive=175218.
+ 201 bytes, 7 lines control
+ Package: pkg-deb-old-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb old format support
+])
+
+AT_CHECK([
+# Check old package metadata
+dpkg-deb -I pkg-old-0933.deb | $SED -e 's/ *$//'
+], [], [ old Debian package, version 0.933000.
+ size 175522 bytes: control archive=291, main archive=175218.
+ 201 bytes, 7 lines control
+ Package: pkg-deb-old-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb old format support
+])
+
+AT_CHECK([
+# Check old package contents
+dpkg-deb -c pkg-old.deb
+], [], [drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Check old package contents
+dpkg-deb -c pkg-old-0931.deb
+], [], [drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Check old package contents
+dpkg-deb -c pkg-old-0932.deb
+], [], [drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Check old package contents
+dpkg-deb -c pkg-old-0933.deb
+], [], [drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CLEANUP
+
+
+AT_SETUP([dpkg-deb .deb format 2.x])
+AT_KEYWORDS([dpkg-deb deb])
+
+AT_SKIP_IF([! command -v xz >/dev/null])
+AT_SKIP_IF([! command -v gzip >/dev/null])
+AT_SKIP_IF([! command -v zstd >/dev/null])
+AT_SKIP_IF([! command -v bzip2 >/dev/null])
+AT_SKIP_IF([! command -v lzma >/dev/null])
+
+AT_DATA([pkg-deb-bogus-empty.deb], [])
+AT_CHECK([
+# Check truncated deb w/ 0 size
+dpkg-deb --info pkg-deb-bogus-empty.deb
+], [2], [], [dpkg-deb: error: unexpected end of file in archive magic version number in pkg-deb-bogus-empty.deb
+])
+
+DPKG_GEN_CONTROL([pkg-deb-format])
+DPKG_MOD_CONTROL([pkg-deb-format],
+ [s/^Description:.*$/& - deb format support/])
+AT_DATA([pkg-deb-format/file-templ], [test
+])
+AT_CHECK([
+# Initialize the template package
+mv pkg-deb-format pkg-templ
+cp $top_srcdir/ChangeLog.old pkg-templ/
+chmod 0644 pkg-templ/ChangeLog.old
+chmod -R u+w pkg-templ
+find pkg-templ | xargs touch -t 197001010100.00
+dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ >/dev/null
+
+# Extract the base members
+ar x pkg-templ.deb
+gzip -c control.tar >control.tar.gz
+gzip -c data.tar >data.tar.gz
+xz -c control.tar >control.tar.xz
+xz -c data.tar >data.tar.xz
+zstd -c control.tar >control.tar.zst
+zstd -c data.tar >data.tar.zst
+bzip2 -c data.tar >data.tar.bz2
+lzma -c data.tar >data.tar.lzma
+touch _ignore
+touch unknown
+])
+
+AT_CHECK([
+# Test debian-binary with 2.x versions
+cp pkg-templ.deb pkg-version-2x.deb
+echo 2.999 >debian-binary
+ar rc pkg-version-2x.deb debian-binary
+ar t pkg-version-2x.deb
+ar x pkg-templ.deb debian-binary
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-version-2x.deb | $SED -e 's/ *$//'
+], [], [debian-binary
+control.tar
+data.tar
+ new Debian package, version 2.999.
+ size 655554 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+])
+
+AT_CHECK([
+# Test debian-binary with extra lines
+cp pkg-templ.deb pkg-magic-extra.deb
+echo "extra line" >>debian-binary
+ar rc pkg-magic-extra.deb debian-binary
+ar t pkg-magic-extra.deb
+ar x pkg-templ.deb debian-binary
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-magic-extra.deb | $SED -e 's/ *$//'
+], [], [debian-binary
+control.tar
+data.tar
+ new Debian package, version 2.0.
+ size 655564 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+])
+
+AT_CHECK([
+# Test missing debian-binary member
+cp pkg-templ.deb pkg-missing-magic.deb
+ar d pkg-missing-magic.deb debian-binary
+ar t pkg-missing-magic.deb
+dpkg-deb -I pkg-missing-magic.deb
+], [2], [control.tar
+data.tar
+], [dpkg-deb: error: file 'pkg-missing-magic.deb' is not a Debian binary archive (try dpkg-split?)
+])
+
+AT_CHECK([
+# Test missing control member
+cp pkg-templ.deb pkg-missing-control.deb
+ar d pkg-missing-control.deb control.tar
+ar t pkg-missing-control.deb
+dpkg-deb -I pkg-missing-control.deb
+], [2], [debian-binary
+data.tar
+], [dpkg-deb: error: archive 'pkg-missing-control.deb' has premature member 'data.tar' before 'control.tar', giving up
+])
+
+AT_CHECK([
+# Test missing data member
+cp pkg-templ.deb pkg-missing-data.deb
+ar d pkg-missing-data.deb data.tar
+ar t pkg-missing-data.deb
+dpkg-deb -c pkg-missing-data.deb
+], [2], [debian-binary
+control.tar
+], [dpkg-deb: error: unexpected end of file in archive member header in pkg-missing-data.deb
+])
+
+AT_CHECK([
+# Test duplicate debian-binary member
+cp pkg-templ.deb pkg-duplicate-magic.deb
+ar ra debian-binary pkg-duplicate-magic.deb debian-binary debian-binary
+ar t pkg-duplicate-magic.deb
+dpkg-deb -I pkg-duplicate-magic.deb
+], [2], [debian-binary
+debian-binary
+control.tar
+data.tar
+], [dpkg-deb: error: archive 'pkg-duplicate-magic.deb' has premature member 'debian-binary' before 'control.tar', giving up
+])
+
+AT_CHECK([
+# Test duplicate control member
+cp pkg-templ.deb pkg-duplicate-control.deb
+ar ra control.tar pkg-duplicate-control.deb control.tar control.tar
+ar t pkg-duplicate-control.deb
+dpkg-deb -c pkg-duplicate-control.deb
+], [2], [debian-binary
+control.tar
+control.tar
+data.tar
+], [dpkg-deb: error: archive 'pkg-duplicate-control.deb' contains two control members, giving up
+])
+
+AT_CHECK([
+# Test mixed member (index 1)
+cp pkg-templ.deb pkg-mixed-1-member.deb
+ar ra debian-binary pkg-mixed-1-member.deb unknown
+ar t pkg-mixed-1-member.deb
+dpkg-deb -I pkg-mixed-1-member.deb
+], [2], [debian-binary
+unknown
+control.tar
+data.tar
+], [dpkg-deb: error: archive 'pkg-mixed-1-member.deb' has premature member 'unknown' before 'control.tar', giving up
+])
+
+AT_CHECK([
+# Test mixed member (index 2)
+cp pkg-templ.deb pkg-mixed-2-member.deb
+ar ra control.tar pkg-mixed-2-member.deb unknown
+ar t pkg-mixed-2-member.deb
+dpkg-deb -c pkg-mixed-2-member.deb
+], [2], [debian-binary
+control.tar
+unknown
+data.tar
+], [dpkg-deb: error: archive 'pkg-mixed-2-member.deb' has premature member 'unknown' before 'data.tar', giving up
+])
+
+AT_CHECK([
+# Test swapped control and data members
+cp pkg-templ.deb pkg-swap-members.deb
+ar ma data.tar pkg-swap-members.deb control.tar
+ar t pkg-swap-members.deb
+dpkg-deb -I pkg-swap-members.deb
+], [2], [debian-binary
+data.tar
+control.tar
+], [dpkg-deb: error: archive 'pkg-swap-members.deb' has premature member 'data.tar' before 'control.tar', giving up
+])
+
+AT_CHECK([
+# Test extra member
+cp pkg-templ.deb pkg-extra-member.deb
+ar q pkg-extra-member.deb unknown
+ar t pkg-extra-member.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-extra-member.deb | $SED -e 's/ *$//'
+], [], [debian-binary
+control.tar
+data.tar
+unknown
+ new Debian package, version 2.0.
+ size 655612 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+])
+
+AT_CHECK([
+# Test _ member
+cp pkg-templ.deb pkg-under-member.deb
+ar ra debian-binary pkg-under-member.deb _ignore
+ar t pkg-under-member.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-under-member.deb | $SED -e 's/ *$//'
+], [], [debian-binary
+_ignore
+control.tar
+data.tar
+ new Debian package, version 2.0.
+ size 655612 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+])
+
+AT_CHECK([
+# Test data.tar.bad member
+dd if=/dev/zero of=data.tar.bad bs=1K count=4 status=none
+ar rc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad
+ar t pkg-data-bad.deb
+dpkg-deb -c pkg-data-bad.deb
+], [2], [debian-binary
+control.tar.gz
+data.tar.bad
+], [dpkg-deb: error: archive 'pkg-data-bad.deb' uses unknown compression for member 'data.tar.bad', giving up
+])
+
+AT_CHECK([
+# Test control.tar member
+ar rc pkg-control-none.deb debian-binary control.tar data.tar
+ar t pkg-control-none.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-control-none.deb | $SED -e 's/ *$//'
+], [], [debian-binary
+control.tar
+data.tar
+ new Debian package, version 2.0.
+ size 655552 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+])
+
+AT_CHECK([
+# Test control.tar.xz member
+ar rc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz
+ar t pkg-control-xz.deb
+dpkg-deb -c pkg-control-xz.deb
+], [], [debian-binary
+control.tar.xz
+data.tar.xz
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test control.tar.zst member
+ar rc pkg-control-zst.deb debian-binary control.tar.zst data.tar.zst
+ar t pkg-control-zst.deb
+dpkg-deb -c pkg-control-zst.deb
+], [], [debian-binary
+control.tar.zst
+data.tar.zst
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test data.tar member
+ar rc pkg-data-none.deb debian-binary control.tar.gz data.tar
+ar t pkg-data-none.deb
+dpkg-deb -c pkg-data-none.deb
+], [], [debian-binary
+control.tar.gz
+data.tar
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test data.tar.gz member
+ar rc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz
+ar t pkg-data-gz.deb
+dpkg-deb -c pkg-data-gz.deb
+], [], [debian-binary
+control.tar.gz
+data.tar.gz
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test data.tar.xz member
+ar rc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz
+ar t pkg-data-xz.deb
+dpkg-deb -c pkg-data-xz.deb
+], [], [debian-binary
+control.tar.gz
+data.tar.xz
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test data.tar.zst member
+ar rc pkg-data-zst.deb debian-binary control.tar.gz data.tar.zst
+ar t pkg-data-zst.deb
+dpkg-deb -c pkg-data-zst.deb
+], [], [debian-binary
+control.tar.gz
+data.tar.zst
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test data.tar.bz2 member
+ar rc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2
+ar t pkg-data-bz2.deb
+dpkg-deb -c pkg-data-bz2.deb
+], [], [debian-binary
+control.tar.gz
+data.tar.bz2
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test data.tar.lzma member
+ar rc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma
+ar t pkg-data-lzma.deb
+dpkg-deb -c pkg-data-lzma.deb
+], [], [debian-binary
+control.tar.gz
+data.tar.lzma
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test non-uniform data.tar/control.tar member compression
+ar rc pkg-mixed-comp.deb debian-binary control.tar.xz data.tar.gz
+ar t pkg-mixed-comp.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-mixed-comp.deb | $SED -e 's/ *$//'
+dpkg-deb -c pkg-mixed-comp.deb
+], [], [debian-binary
+control.tar.xz
+data.tar.gz
+ new Debian package, version 2.0.
+ size 175756 bytes: control archive=336 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
+
+AT_CHECK([
+# Test building and extracting none compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ pkg-comp-none.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-none.deb >ctrl-none.tar
+dpkg-deb --fsys-tarfile pkg-comp-none.deb >fsys-none.tar
+cmp ctrl-none.tar control.tar
+cmp fsys-none.tar data.tar
+])
+
+AT_CHECK([
+# Test building and extracting gzip compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zgzip -b pkg-templ pkg-comp-gzip.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-gzip.deb >ctrl-gzip.tar
+dpkg-deb --fsys-tarfile pkg-comp-gzip.deb >fsys-gzip.tar
+cmp ctrl-gzip.tar control.tar
+cmp fsys-gzip.tar data.tar
+])
+
+AT_CHECK([
+# Test building and extracting xz compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zxz -b pkg-templ pkg-comp-xz.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-xz.deb >ctrl-xz.tar
+dpkg-deb --fsys-tarfile pkg-comp-xz.deb >fsys-xz.tar
+cmp ctrl-xz.tar control.tar
+cmp fsys-xz.tar data.tar
+])
+
+AT_CHECK([
+# Test building and extracting zstd compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zzstd -b pkg-templ pkg-comp-zstd.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-zstd.deb >ctrl-zstd.tar
+dpkg-deb --fsys-tarfile pkg-comp-zstd.deb >fsys-zstd.tar
+cmp ctrl-zstd.tar control.tar
+cmp fsys-zstd.tar data.tar
+])
+
+AT_CLEANUP
diff --git a/src/at/deb-split.at b/src/at/deb-split.at
new file mode 100644
index 0000000..6b07d79
--- /dev/null
+++ b/src/at/deb-split.at
@@ -0,0 +1,228 @@
+AT_SETUP([dpkg-split options])
+AT_KEYWORDS([dpkg-split command-line])
+
+AT_CHECK([dpkg-split --version], [], [ignore])
+AT_CHECK([dpkg-split --help], [], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-split .deb format])
+AT_KEYWORDS([dpkg-split deb-split])
+
+DPKG_GEN_CONTROL([pkg-split])
+DPKG_MOD_CONTROL([pkg-split],
+ [s/^Description:.*$/& - normal package to be split/])
+AT_CHECK([
+# Initialize the template package
+chmod -R u+w pkg-split
+$PERL -E 'print "fade" foreach 1 .. 1024 * 512' >pkg-split/data-file
+find pkg-split | xargs touch -t 197001010100.00
+dpkg-deb --root-owner-group -Znone -b pkg-split >/dev/null
+])
+
+AT_CHECK([
+# Test splitting a package (in 10 parts: 9 * 210 KiB B + 158 KiB)
+dpkg-split -S 210 -s pkg-split.deb pkg-split-part
+for p in $(seq 10); do
+ test -f pkg-split-part.${p}of10.deb
+done
+], [], [Splitting package pkg-split into 10 parts: 1 2 3 4 5 6 7 8 9 10 done
+])
+
+DEB_SPLIT_MD5SUM=1684b6cdb72bf035ccafd653f307d3da
+DEB_SPLIT_LENGTH=2109632
+DEB_SPLIT_PART_LENGTH=214016
+DEB_SPLIT_PART_SIZE=214222
+DEB_SPLIT_LAST_LENGTH=183488
+DEB_SPLIT_LAST_SIZE=183694
+
+DEB_SPLIT_PART_SIZE_VERSION=$((DEB_SPLIT_PART_SIZE + 2))
+
+AT_CHECK_UNQUOTED([
+# Test debian-split with 2.x version
+cp pkg-split-part.1of10.deb pkg-split-part-version-2x.deb
+ar x pkg-split-part-version-2x.deb debian-split
+sed -e '1c2.999' debian-split >debian-split.new
+mv debian-split.new debian-split
+ar rc pkg-split-part-version-2x.deb debian-split
+ar t pkg-split-part-version-2x.deb
+dpkg-split -I pkg-split-part-version-2x.deb
+], [], [debian-split
+data.1
+pkg-split-part-version-2x.deb:
+ Part format version: 2.999
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 1/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 0 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE_VERSION bytes
+
+])
+
+DEB_SPLIT_PART_SIZE_MAGIC_EXTRA=$((DEB_SPLIT_PART_SIZE + 10))
+
+AT_CHECK_UNQUOTED([
+# Test debian-split with extra lines
+cp pkg-split-part.1of10.deb pkg-split-part-magic-extra.deb
+ar x pkg-split-part-magic-extra.deb debian-split
+echo "extra line" >>debian-split
+ar rc pkg-split-part-magic-extra.deb debian-split
+ar t pkg-split-part-magic-extra.deb
+dpkg-split -I pkg-split-part-magic-extra.deb
+], [], [debian-split
+data.1
+pkg-split-part-magic-extra.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 1/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 0 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE_MAGIC_EXTRA bytes
+
+])
+
+AT_CHECK([
+# Test missing debian-split
+cp pkg-split-part.1of10.deb pkg-split-part-missing-magic.deb
+ar d pkg-split-part-missing-magic.deb debian-split
+ar t pkg-split-part-missing-magic.deb
+dpkg-split -I pkg-split-part-missing-magic.deb
+], [], [data.1
+file 'pkg-split-part-missing-magic.deb' is not an archive part
+])
+
+AT_CHECK([
+# Test missing data part member
+cp pkg-split-part.1of10.deb pkg-split-part-missing-data.deb
+ar d pkg-split-part-missing-data.deb data.1
+ar t pkg-split-part-missing-data.deb
+dpkg-split -I pkg-split-part-missing-data.deb
+], [2], [debian-split
+], [dpkg-split: error: unexpected end of file in reading data part member ar header in pkg-split-part-missing-data.deb
+])
+
+AT_CHECK([
+# Test duplicate debian-split member
+cp pkg-split-part.1of10.deb pkg-split-part-duplicate-magic.deb
+ar x pkg-split-part-duplicate-magic.deb debian-split
+ar ra debian-split pkg-split-part-duplicate-magic.deb debian-split debian-split
+ar t pkg-split-part-duplicate-magic.deb
+dpkg-split -I pkg-split-part-duplicate-magic.deb
+], [2], [debian-split
+debian-split
+data.1
+], [dpkg-split: error: file 'pkg-split-part-duplicate-magic.deb' is corrupt - second member is not data member
+])
+
+AT_CHECK_UNQUOTED([
+# Test unknown extra member
+cp pkg-split-part.1of10.deb pkg-split-part-extra-member.deb
+echo "some content" >unknown
+ar q pkg-split-part-extra-member.deb unknown
+ar t pkg-split-part-extra-member.deb
+dpkg-split -I pkg-split-part-extra-member.deb
+], [], [debian-split
+data.1
+unknown
+pkg-split-part-extra-member.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 1/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 0 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE bytes
+
+])
+
+AT_CHECK_UNQUOTED([
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.1of10.deb
+], [], [pkg-split-part.1of10.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 1/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 0 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE bytes
+
+])
+AT_CHECK_UNQUOTED([
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.2of10.deb
+], [], [pkg-split-part.2of10.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 2/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 214016 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE bytes
+
+])
+AT_CHECK_UNQUOTED([
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.9of10.deb
+], [], [pkg-split-part.9of10.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 9/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 1712128 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE bytes
+
+])
+AT_CHECK_UNQUOTED([
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.10of10.deb
+], [], [pkg-split-part.10of10.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 10/10
+ Part length: $DEB_SPLIT_LAST_LENGTH bytes
+ Part offset: 1926144 bytes
+ Part file size (used portion): $DEB_SPLIT_LAST_SIZE bytes
+
+])
+
+AT_CHECK([
+# Test joining the split parts back together
+dpkg-split -o pkg-joined.deb -j pkg-split-part.*.deb
+cmp pkg-split.deb pkg-joined.deb
+], [], [Putting package pkg-split together from 10 parts: 1 2 3 4 5 6 7 8 9 10 done
+])
+
+AT_CLEANUP
diff --git a/src/at/divert.at b/src/at/divert.at
new file mode 100644
index 0000000..f8689d0
--- /dev/null
+++ b/src/at/divert.at
@@ -0,0 +1,639 @@
+AT_SETUP([dpkg-divert options])
+AT_KEYWORDS([dpkg-divert command-line])
+
+DPKG_GEN_FSYS_DIR([/testdir])
+
+AT_CHECK([dpkg-divert --version], [], [ignore])
+AT_CHECK([dpkg-divert --help], [], [ignore])
+
+AT_CHECK([dpkg-divert --admindir], [2], [], [stderr])
+AT_CHECK([grep -qE '(takes a value|needs.*argument)' stderr])
+
+AT_CHECK([DPKG_DIVERT --jachsmitbju], [2], [], [stderr])
+AT_CHECK([grep -q 'unknown option' stderr])
+
+AT_CHECK([DPKG_DIVERT --add --remove], [2], [], [stderr])
+AT_CHECK([grep -qE '(conflicting|two).*remove.*add.*' stderr])
+
+AT_CHECK([DPKG_DIVERT --divert], [2], [], [stderr])
+AT_CHECK([grep -qE '(takes a value|needs.*argument)' stderr])
+
+AT_CHECK([DPKG_DIVERT --divert foo], [2], [], [stderr])
+AT_CHECK([grep -q 'absolute' stderr])
+
+AT_CHECK([DPKG_DIVERT --divert "/foo
+bar"], [2], [], [stderr])
+AT_CHECK([grep -q 'newline' stderr])
+
+AT_CHECK([DPKG_DIVERT --package], [2], [], [stderr])
+AT_CHECK([grep -qE '(takes a value|needs.*argument)' stderr])
+
+AT_CHECK([DPKG_DIVERT --package "foo
+bar"], [2], [], [stderr])
+AT_CHECK([grep -q 'newline' stderr])
+
+AT_CHECK([DPKG_DIVERT --add], [2], [], [stderr])
+AT_CHECK([grep -q 'needs a single argument' stderr])
+
+AT_CHECK([DPKG_DIVERT --add foo], [2], [], [stderr])
+AT_CHECK([grep -q 'absolute' stderr])
+
+AT_CHECK([DPKG_DIVERT --add "/foo
+bar"], [2], [], [stderr])
+AT_CHECK([grep -q 'newline' stderr])
+
+AT_CHECK([DPKG_DIVERT --add "/testdir"], [2], [], [stderr])
+AT_CHECK([grep -qE 'director(y|ies)' stderr])
+
+AT_CHECK([DPKG_DIVERT --add --divert bar /foo/bar], [2], [], [stderr])
+AT_CHECK([grep -q 'absolute' stderr])
+
+AT_CHECK([DPKG_DIVERT --remove], [2], [], [stderr])
+AT_CHECK([grep -q 'needs a single argument' stderr])
+
+AT_CHECK([DPKG_DIVERT --remove foo], [2], [], [stderr])
+AT_CHECK([grep -q 'absolute' stderr])
+
+AT_CHECK([DPKG_DIVERT --remove "/foo
+bar"], [2], [], [stderr])
+AT_CHECK([grep -q 'newline' stderr])
+
+AT_CHECK([DPKG_DIVERT --listpackage], [2], [], [stderr])
+AT_CHECK([grep -q 'needs a single argument' stderr])
+
+AT_CHECK([DPKG_DIVERT --listpackage foo], [2], [], [stderr])
+AT_CHECK([grep -q 'absolute' stderr])
+
+AT_CHECK([DPKG_DIVERT --listpackage "/foo
+bar"], [2], [], [stderr])
+AT_CHECK([grep -q 'newline' stderr])
+
+AT_CHECK([DPKG_DIVERT --truename], [2], [], [stderr])
+AT_CHECK([grep -q 'needs a single argument' stderr])
+
+AT_CHECK([DPKG_DIVERT --truename foo], [2], [], [stderr])
+AT_CHECK([grep -q 'absolute' stderr])
+
+AT_CHECK([DPKG_DIVERT --truename "/foo
+bar"], [2], [], [stderr])
+AT_CHECK([grep -q 'newline' stderr])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert query (empty db)])
+AT_KEYWORDS([dpkg-divert query])
+
+DPKG_GEN_DB_DIVERSIONS([])
+
+AT_CHECK([DPKG_DIVERT --list])
+AT_CHECK([DPKG_DIVERT --list '*'])
+AT_CHECK([DPKG_DIVERT --list 'baz'])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert query (list)])
+AT_KEYWORDS([dpkg-divert query])
+
+DPKG_GEN_DB_DIVERSIONS([/bin/sh
+/bin/sh.distrib
+dash
+/usr/share/man/man1/sh.1.gz
+/usr/share/man/man1/sh.distrib.1.gz
+dash
+/usr/bin/nm
+/usr/bin/nm.single
+binutils-multiarch
+])
+
+m4_define([di_dash], [diversion of /bin/sh to /bin/sh.distrib by dash
+])
+m4_define([di_dashman],
+ [diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash
+])
+m4_define([di_nm],
+ [diversion of /usr/bin/nm to /usr/bin/nm.single by binutils-multiarch
+])
+m4_define([all_di], [m4_join([], di_nm, di_dashman, di_dash)])
+
+AT_CHECK([DPKG_DIVERT --list], [], all_di)
+AT_CHECK([DPKG_DIVERT --list '*'], [], all_di)
+AT_CHECK([DPKG_DIVERT --list ''])
+
+AT_CHECK([DPKG_DIVERT --list '???????'], [], di_dash)
+AT_CHECK([DPKG_DIVERT --list '*/sh'], [], di_dash)
+AT_CHECK([DPKG_DIVERT --list '/bin/*'], [], di_dash)
+AT_CHECK([DPKG_DIVERT --list binutils-multiarch], [], di_nm)
+AT_CHECK([DPKG_DIVERT --list /bin/sh], [], di_dash)
+AT_CHECK([DPKG_DIVERT --list -- /bin/sh], [], di_dash)
+AT_CHECK([DPKG_DIVERT --list /usr/bin/nm.single], [], di_nm)
+AT_CHECK([DPKG_DIVERT --list /bin/sh /usr/share/man/man1/sh.1.gz], [],
+ [m4_join([], di_dashman, di_dash)])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert query (listpackage + truename)])
+AT_KEYWORDS([dpkg-divert query])
+
+DPKG_GEN_DB_DIVERSIONS([/bin/sh
+/bin/sh.distrib
+dash
+/bin/true
+/bin/true.coreutils
+:
+])
+
+AT_CHECK([DPKG_DIVERT --listpackage /bin/sh], [], [dash
+])
+AT_CHECK([DPKG_DIVERT --listpackage /bin/true], [], [LOCAL
+])
+AT_CHECK([DPKG_DIVERT --listpackage /bin/false])
+
+AT_CHECK([DPKG_DIVERT --truename /bin/sh], [], [/bin/sh.distrib
+])
+AT_CHECK([DPKG_DIVERT --truename /bin/sh.distrib], [], [/bin/sh.distrib
+])
+AT_CHECK([DPKG_DIVERT --truename /bin/something], [], [/bin/something
+])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (local rename)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [], [stdout])
+AT_CHECK([grep -q "Adding.*local.*diversion.* /testdir/foo.* /testdir/foo.distrib" stdout])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (local no-rename)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --no-rename --add /testdir/foo], [], [stdout])
+AT_CHECK([grep -q "Adding.*local.*diversion.* /testdir/foo.* /testdir/foo.distrib" stdout])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo.distrib])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (rename quiet)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --add /testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (test rename quiet)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+DPKG_GEN_DB_DIVERSIONS([])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --test /testdir/foo])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo.distrib])
+AT_CHECK([cat DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (rename missing quiet)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_DIR([/testdir])
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename /testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo.distrib])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (local rename quiet)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --local --rename /testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (package rename quiet)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+bash
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --package bash /testdir/foo])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (rename self-link)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+DPKG_GEN_FSYS_LINK([/testdir/foo], [/testdir/foo.distrib])
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename /testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (rename other-file)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+DPKG_GEN_FSYS_FILE([/testdir/foo.distrib], [])
+DPKG_GEN_DB_DIVERSIONS([])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename /testdir/foo], [2], [], [stderr])
+AT_CHECK([grep -q 'error: rename involves overwriting' stderr])
+AT_CHECK([cat DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (rename missing dir)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/zoo/foo
+/testdir/zoo/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --add /testdir/zoo/foo])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (rename read-only dir)])
+AT_KEYWORDS([dpkg-divert fsys])
+
+AT_SKIP_IF([test -n "$FAKEROOTKEY" || test "$(id -u)" = 0])
+
+DPKG_GEN_FSYS_DIR([/testdir/rodir])
+DPKG_GEN_FSYS_FILE([/testdir/rodir/foo])
+DPKG_GEN_FSYS_FILE([/testdir/bar])
+DPKG_MOD_FSYS_MODE([500], [/testdir/rodir])
+DPKG_GEN_DB_DIVERSIONS([])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --add /testdir/rodir/foo],
+ [2], [], [stderr])
+AT_CHECK([grep -q 'error: .* Permission denied' stderr])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --divert /testdir/rodir/bar --add /testdir/bar],
+ [2], [], [stderr])
+AT_CHECK([grep -q 'error: .* Permission denied' stderr])
+
+AT_CHECK([cat DPKG_DIR_ADMIN/diversions])
+
+DPKG_MOD_FSYS_MODE([755], [/testdir/rodir])
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (rename no-access dir)])
+AT_KEYWORDS([dpkg-divert fsys])
+
+AT_SKIP_IF([test -n "$FAKEROOTKEY" || test "$(id -u)" = 0])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo])
+DPKG_GEN_FSYS_DIR([/testdir/nadir])
+DPKG_MOD_FSYS_MODE([000], [/testdir/nadir])
+DPKG_GEN_DB_DIVERSIONS([])
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/nadir/foo], [2], [], [stderr])
+AT_CHECK([grep -q 'error: .* Permission denied' stderr])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --divert /testdir/nadir/foo --add /testdir/foo],
+ [2], [], [stderr])
+AT_CHECK([grep -q 'error: .* Permission denied' stderr])
+
+AT_CHECK([cat DPKG_DIR_ADMIN/diversions])
+
+# On FreeBSD «rm -rf» cannot traverse a directory with mode 000.
+rmdir DPKG_DIR_INST/testdir/nadir
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add second diversion])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_DIR([/testdir])
+DPKG_GEN_DB_DIVERSIONS([])
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [], [stdout])
+AT_CHECK([grep -q 'Adding' stdout])
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [], [stdout])
+AT_CHECK([grep -q 'Leaving' stdout])
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [], [stdout])
+AT_CHECK([grep -q 'Leaving' stdout])
+
+AT_CHECK([DPKG_DIVERT --divert /testdir/foo.bar /testdir/foo],
+ [2], [], [stderr])
+AT_CHECK([grep -q 'clashes' stderr])
+
+AT_CHECK([DPKG_DIVERT --package foobar /testdir/foo], [2], [], [stderr])
+AT_CHECK([grep -q 'clashes' stderr])
+
+AT_CHECK([DPKG_DIVERT --divert /testdir/foo.distrib /testdir/bar],
+ [2], [], [stderr])
+AT_CHECK([grep -q 'clashes' stderr])
+
+AT_CHECK([DPKG_DIVERT /testdir/foo.distrib], [2], [], [stderr])
+AT_CHECK([grep -q 'clashes' stderr])
+
+AT_CHECK([DPKG_DIVERT --divert /testdir/foo /testdir/bar], [2], [], [stderr])
+AT_CHECK([grep -q 'clashes' stderr])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add third diversion])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_DIR([/testdir])
+DPKG_GEN_DB_DIVERSIONS([])
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [], [stdout])
+AT_CHECK([grep -q 'Adding' stdout])
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/bar], [], [stdout])
+AT_CHECK([grep -q 'Adding' stdout])
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [], [stdout])
+AT_CHECK([grep -q 'Leaving' stdout])
+AT_CHECK([DPKG_DIVERT --rename --package foobar --add /testdir/bar],
+ [2], [], [stderr])
+AT_CHECK([grep -q 'clashes' stderr])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert add (file owned by --package)])
+AT_KEYWORDS([dpkg-divert add])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+# Only installed packages have their files list considered.
+DPKG_GEN_DB_STATUS([Package: coreutils
+Status: install ok installed
+Version: 0
+Architecture: i386
+Maintainer: dummy
+Description: dummy
+])
+DPKG_GEN_DB_INFO_FILE([coreutils], [list], [/testdir/foo
+])
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+coreutils
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --package coreutils --add /testdir/foo])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo.distrib])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert remove (missing)])
+AT_KEYWORDS([dpkg-divert remove])
+
+DPKG_GEN_DB_DIVERSIONS([])
+
+AT_CHECK([DPKG_DIVERT --no-rename --remove /bin/sh], [], [stdout])
+AT_CHECK([grep -q 'No diversion' stdout])
+
+AT_CHECK([DPKG_DIVERT --quiet --no-rename --remove /bin/sh])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert remove (divert-to)])
+AT_KEYWORDS([dpkg-divert remove])
+
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/bar
+/testdir/bar.distrib
+:
+/testdir/baz
+/testdir/baz.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --no-rename --add /testdir/foo])
+AT_CHECK([DPKG_DIVERT --quiet --no-rename --add /testdir/bar])
+AT_CHECK([DPKG_DIVERT --quiet --no-rename --add /testdir/baz])
+
+AT_CHECK([DPKG_DIVERT --divert /testdir/foo.my --remove /testdir/foo],
+ [2], [], [stderr])
+AT_CHECK([grep -q 'mismatch on divert-to' stderr])
+
+AT_CHECK([DPKG_DIVERT --package baz --remove /testdir/foo], [2], [], [stderr])
+AT_CHECK([grep -q 'mismatch on package' stderr])
+
+AT_CHECK([DPKG_DIVERT --package baz --divert /testdir/foo.my --remove /testdir/foo],
+ [2], [], [stderr])
+AT_CHECK([grep -qE 'mismatch on (package|divert-to)' stderr])
+
+AT_CHECK([DPKG_DIVERT --rename --divert /testdir/foo.distrib --remove /testdir/foo],
+ [], [stdout])
+AT_CHECK([grep -qE 'Removing .*/testdir/foo' stdout])
+
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert remove (plain)])
+AT_KEYWORDS([dpkg-divert remove])
+
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+:
+/testdir/baz
+/testdir/baz.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --no-rename --add /testdir/foo])
+AT_CHECK([DPKG_DIVERT --quiet --no-rename --add /testdir/bar])
+AT_CHECK([DPKG_DIVERT --quiet --no-rename --add /testdir/baz])
+
+AT_CHECK([DPKG_DIVERT --no-rename --remove /testdir/bar], [], [stdout])
+AT_CHECK([grep -qE 'Removing .* /testdir/bar' stdout])
+
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert remove (by-package)])
+AT_KEYWORDS([dpkg-divert remove])
+
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/bar
+/testdir/bar.distrib
+:
+/testdir/foo
+/testdir/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --no-rename /testdir/foo])
+AT_CHECK([DPKG_DIVERT --quiet --no-rename /testdir/bar])
+AT_CHECK([DPKG_DIVERT --quiet --no-rename --package bash /testdir/baz])
+
+AT_CHECK([DPKG_DIVERT --no-rename --quiet --package bash --remove /testdir/baz])
+
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert remove (test)])
+AT_KEYWORDS([dpkg-divert remove])
+
+DPKG_GEN_FSYS_FILE([/testdir/foo], [])
+DPKG_GEN_DB_DIVERSIONS([])
+AT_DATA([ref-diversions], [/testdir/foo
+/testdir/foo.distrib
+:
+])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename /testdir/foo])
+
+AT_CHECK([DPKG_DIVERT --test --rename --remove /testdir/foo], [], [stdout])
+AT_CHECK([grep -q 'Removing .*/testdir/foo' stdout])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
+AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+
+AT_CHECK([DPKG_DIVERT --quiet --rename --remove /testdir/foo])
+DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo])
+DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo.distrib])
+AT_CHECK([cat DPKG_DIR_ADMIN/diversions])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert db (no-access)])
+AT_KEYWORDS([dpkg-divert db])
+
+AT_SKIP_IF([test -n "$FAKEROOTKEY" || test "$(id -u)" = 0])
+
+# An inexistent diversions db file should not be considered a failure,
+# but a failure to open it should be.
+DPKG_GEN_DB_DIVERSIONS([])
+DPKG_MOD_DB_MODE([000], [diversions])
+
+AT_CHECK([DPKG_DIVERT --list], [2], [], [stderr])
+AT_CHECK([grep -qE '(cannot|failed).*open' stderr])
+
+DPKG_MOD_DB_MODE([644], [diversions])
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert db (truncated)])
+AT_KEYWORDS([dpkg-divert db])
+
+DPKG_GEN_DB_DIVERSIONS([/bin/sh
+])
+
+AT_CHECK([DPKG_DIVERT --list], [2], [], [stderr])
+AT_CHECK([grep -qE '(corrupt|unexpected end of file)' stderr])
+
+DPKG_GEN_DB_DIVERSIONS([/bin/sh
+bash
+])
+
+AT_CHECK([DPKG_DIVERT --list], [2], [], [stderr])
+AT_CHECK([grep -qE '(corrupt|unexpected end of file)' stderr])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert db (read-only dir)])
+AT_KEYWORDS([dpkg-divert db])
+
+AT_SKIP_IF([test -n "$FAKEROOTKEY" || test "$(id -u)" = 0])
+
+DPKG_GEN_DB_DIVERSIONS([])
+DPKG_MOD_DB_MODE([500])
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [2], [stdout], [stderr])
+AT_CHECK([grep -q 'Adding' stdout])
+AT_CHECK([grep -q 'create.*new' stderr])
+
+DPKG_MOD_DB_MODE([755])
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert db (disk full)])
+AT_KEYWORDS([dpkg-divert db])
+
+AT_SKIP_IF([test -n "$FAKEROOTKEY" || test "$(id -u)" = 0])
+AT_SKIP_IF([! test -c /dev/full])
+
+DPKG_GEN_DB_DIVERSIONS([])
+ln -s /dev/full DPKG_DIR_ADMIN/diversions-new
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [2], [stdout], [stderr])
+AT_CHECK([grep -q 'Adding' stdout])
+AT_CHECK([grep -qE '(write|flush|close).*new' stderr])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-divert db (pathname is dir)])
+AT_KEYWORDS([dpkg-divert db])
+
+DPKG_GEN_DB_DIVERSIONS([])
+rm -f DPKG_DIR_ADMIN/diversions-new
+mkdir DPKG_DIR_ADMIN/diversions-old
+
+AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [2], [stdout], [stderr])
+AT_CHECK([grep -q 'Adding' stdout])
+AT_CHECK([grep -q 'remov.*old' stderr])
+
+AT_CLEANUP
diff --git a/src/at/local.at b/src/at/local.at
new file mode 100644
index 0000000..1def684
--- /dev/null
+++ b/src/at/local.at
@@ -0,0 +1,132 @@
+# Dpkg helper macros
+
+m4_pattern_forbid([^DPKG_])
+m4_pattern_allow([^DPKG_DEBUG$])
+m4_pattern_allow([^DPKG_ROOT$])
+m4_pattern_allow([^DPKG_ADMINDIR$])
+m4_pattern_allow([^DPKG_DATADIR$])
+
+#
+# Options.
+#
+
+m4_define([DPKG_DIR_INST], [dpkginst])
+m4_define([DPKG_DIR_ADMIN], [dpkgdb])
+
+# DPKG_OPTIONS_COMMON
+m4_define([DPKG_OPTIONS_COMMON], [dnl
+ --admindir=DPKG_DIR_ADMIN dnl
+])
+
+# DPKG_DIVERT_OPTIONS
+m4_define([DPKG_DIVERT_OPTIONS], [dnl
+ --instdir=DPKG_DIR_INST dnl
+])
+
+# DPKG_DIVERT(...)
+m4_define([DPKG_DIVERT],
+ [dpkg-divert DPKG_OPTIONS_COMMON DPKG_DIVERT_OPTIONS])
+
+# DPKG_DIVERT_ADD(...)
+m4_define([DPKG_DIVERT_ADD], [DPKG_DIVERT --add])
+
+# DPKG_DIVERT_DEL(...)
+m4_define([DPKG_DIVERT_DEL], [DPKG_DIVERT --remove])
+
+#
+# Macros.
+#
+
+# DPKG_FILE_SIZE()
+m4_define([DPKG_FILE_SIZE], [
+ $PERL -E 'say -s shift' "$1" dnl
+])
+
+# DPKG_GEN_FSYS()
+m4_define([DPKG_GEN_DB], [
+ mkdir -p DPKG_DIR_INST
+])
+
+# DPKG_GEN_FSYS_DIR([$dirname])
+m4_define([DPKG_GEN_FSYS_DIR], [
+ mkdir -p "DPKG_DIR_INST/$1"
+])
+
+# DPKG_GEN_FSYS_FILE([$filename], [$contents])
+m4_define([DPKG_GEN_FSYS_FILE], [
+ mkdir -p "DPKG_DIR_INST/$(dirname '$1')"
+ AT_DATA([DPKG_DIR_INST/$1], [$2])
+])
+
+# DPKG_GEN_FSYS_LINK([$pathname], [$target])
+m4_define([DPKG_GEN_FSYS_LINK], [
+ ln "DPKG_DIR_INST/$1" "DPKG_DIR_INST/$2"
+])
+
+# DPKG_CHECK_FSYS_PATH_EXISTS([$pathname])
+m4_define([DPKG_CHECK_FSYS_PATH_EXISTS], [
+ AT_CHECK([test -e "DPKG_DIR_INST/$1"])
+])
+
+# DPKG_CHECK_FSYS_PATH_MISSING([$pathname])
+m4_define([DPKG_CHECK_FSYS_PATH_MISSING], [
+ AT_CHECK([test -e "DPKG_DIR_INST/$1"], [1])
+])
+
+# DPKG_MOD_FSYS_MODE([$mode], [$pathname])
+m4_define([DPKG_MOD_FSYS_MODE], [
+ chmod $1 "DPKG_DIR_INST/$2"
+])
+
+# DPKG_TMPL_CONTROL([$pkgname])
+m4_define([DPKG_TMPL_CONTROL],
+[Package: $1
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package])
+
+# DPKG_GEN_DB_STATUS([$contents])
+m4_define([DPKG_GEN_DB_STATUS], [
+ mkdir -p "DPKG_DIR_ADMIN"
+ AT_DATA([DPKG_DIR_ADMIN/status], [$1])
+])
+
+# DPKG_GEN_DB_DIVERSIONS([$contents])
+m4_define([DPKG_GEN_DB_DIVERSIONS], [
+ mkdir -p "DPKG_DIR_ADMIN"
+ AT_DATA([DPKG_DIR_ADMIN/diversions], [$1])
+])
+
+# DPKG_GEN_DB_INFO_FILE([$pkg], [$file], [$contents])
+m4_define([DPKG_GEN_DB_INFO_FILE], [
+ mkdir -p "DPKG_DIR_ADMIN/info"
+ AT_DATA([DPKG_DIR_ADMIN/info/$1.$2], [$3])
+])
+
+# DPKG_MOD_DB_MODE([$mode], [$pathname])
+m4_define([DPKG_MOD_DB_MODE], [
+ chmod $1 "DPKG_DIR_ADMIN/$2"
+])
+
+# DPKG_GEN_CTRL_FILE([$pkgname], [$file], [$contents])
+m4_define([DPKG_GEN_CTRL_FILE], [
+ mkdir -p '$1/DEBIAN'
+
+ cat >'$1/DEBIAN/$2' <<CTRL_TEMPL
+$3
+CTRL_TEMPL
+])
+
+# DPKG_GEN_CONTROL([$pkgname])
+m4_define([DPKG_GEN_CONTROL], [
+ DPKG_GEN_CTRL_FILE([$1], [control], [DPKG_TMPL_CONTROL([$1])])
+])
+
+# DPKG_MOD_CONTROL([$pkgname], [$sedexpr])
+m4_define([DPKG_MOD_CONTROL], [
+ $SED -e '$2' <'$1/DEBIAN/control' >'$1/DEBIAN/control.new'
+ mv '$1/DEBIAN/control.new' '$1/DEBIAN/control'
+])
diff --git a/src/at/package.m4 b/src/at/package.m4
new file mode 100644
index 0000000..37a97d6
--- /dev/null
+++ b/src/at/package.m4
@@ -0,0 +1,7 @@
+# Signature of the current package.
+m4_define([AT_PACKAGE_NAME], [dpkg])
+m4_define([AT_PACKAGE_TARNAME], [dpkg])
+m4_define([AT_PACKAGE_VERSION], [1.21.22])
+m4_define([AT_PACKAGE_STRING], [dpkg 1.21.22])
+m4_define([AT_PACKAGE_URL], [https://wiki.debian.org/Teams/Dpkg])
+m4_define([AT_PACKAGE_BUGREPORT], [debian-dpkg@lists.debian.org])
diff --git a/src/at/realpath.at b/src/at/realpath.at
new file mode 100644
index 0000000..2919c3e
--- /dev/null
+++ b/src/at/realpath.at
@@ -0,0 +1,86 @@
+AT_SETUP([dpkg-realpath options])
+AT_KEYWORDS([dpkg-realpath command-line])
+
+AT_CHECK([dpkg-realpath --version], [], [ignore])
+AT_CHECK([dpkg-realpath --help], [], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([dpkg-realpath path resolving])
+AT_KEYWORDS([dpkg-realpath canonicalize])
+
+mkdir -p aa/bb/cc
+mkdir -p zz/yy/xx
+mkdir -p usr/bin
+AT_DATA([aa/bb/cc/file], [])
+ln -sfT aa/bb/cc/file zz/yy/xx/symlink-rel
+ln -sfT /aa/bb/cc/file zz/yy/xx/symlink-abs
+AT_DATA([usr/bin/a-shell], [])
+ln -sfT /usr/bin/a-shell usr/bin/sh
+
+tmpdir="$(pwd)"
+export DPKG_ROOT=
+
+# Relative paths
+AT_CHECK_UNQUOTED([dpkg-realpath aa/bb/cc], [],
+[$tmpdir/aa/bb/cc
+])
+AT_CHECK_UNQUOTED([dpkg-realpath zz/yy/xx], [], [$tmpdir/zz/yy/xx
+])
+AT_CHECK_UNQUOTED([dpkg-realpath usr/bin], [], [$tmpdir/usr/bin
+])
+AT_CHECK_UNQUOTED([dpkg-realpath aa/bb/cc/file], [], [$tmpdir/aa/bb/cc/file
+])
+AT_CHECK_UNQUOTED([dpkg-realpath zz/yy/xx/symlink-rel], [],
+[$tmpdir/zz/yy/xx/aa/bb/cc/file
+])
+AT_CHECK([dpkg-realpath zz/yy/xx/symlink-abs], [], [/aa/bb/cc/file
+])
+AT_CHECK_UNQUOTED([dpkg-realpath usr/bin/a-shell], [],
+[$tmpdir/usr/bin/a-shell
+])
+AT_CHECK([dpkg-realpath usr/bin/sh], [], [/usr/bin/a-shell
+])
+
+# Absolute paths
+cd /
+AT_CHECK_UNQUOTED([dpkg-realpath "$tmpdir/aa/bb/cc"], [], [$tmpdir/aa/bb/cc
+])
+AT_CHECK_UNQUOTED([dpkg-realpath "$tmpdir/zz/yy/xx"], [], [$tmpdir/zz/yy/xx
+])
+AT_CHECK_UNQUOTED([dpkg-realpath "$tmpdir/usr/bin"], [], [$tmpdir/usr/bin
+])
+AT_CHECK_UNQUOTED([dpkg-realpath "$tmpdir/aa/bb/cc/file"], [],
+[$tmpdir/aa/bb/cc/file
+])
+AT_CHECK_UNQUOTED([dpkg-realpath "$tmpdir/zz/yy/xx/symlink-rel"], [],
+[$tmpdir/zz/yy/xx/aa/bb/cc/file
+])
+AT_CHECK([dpkg-realpath "$tmpdir/zz/yy/xx/symlink-abs"], [], [/aa/bb/cc/file
+])
+AT_CHECK_UNQUOTED([dpkg-realpath "$tmpdir/usr/bin/a-shell"], [],
+[$tmpdir/usr/bin/a-shell
+])
+AT_CHECK([dpkg-realpath "$tmpdir/usr/bin/sh"], [], [/usr/bin/a-shell
+])
+
+# Chrooted paths
+DPKG_ROOT="$tmpdir"
+AT_CHECK([dpkg-realpath /aa/bb/cc], [], [/aa/bb/cc
+])
+AT_CHECK([dpkg-realpath /zz/yy/xx], [], [/zz/yy/xx
+])
+AT_CHECK([dpkg-realpath /usr/bin], [], [/usr/bin
+])
+AT_CHECK([dpkg-realpath /aa/bb/cc/file], [], [/aa/bb/cc/file
+])
+AT_CHECK([dpkg-realpath /zz/yy/xx/symlink-rel], [], [/zz/yy/xx/aa/bb/cc/file
+])
+AT_CHECK([dpkg-realpath /zz/yy/xx/symlink-abs], [], [/aa/bb/cc/file
+])
+AT_CHECK([dpkg-realpath /usr/bin/a-shell], [], [/usr/bin/a-shell
+])
+AT_CHECK([dpkg-realpath /usr/bin/sh], [], [/usr/bin/a-shell
+])
+
+AT_CLEANUP
diff --git a/src/at/testsuite b/src/at/testsuite
new file mode 100755
index 0000000..57fc1fb
--- /dev/null
+++ b/src/at/testsuite
@@ -0,0 +1,12702 @@
+#! /bin/sh
+# Generated from testsuite.at by GNU Autoconf 2.71.
+#
+# Copyright (C) 2009-2017, 2020-2021 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
+as_nop=:
+if test ${ZSH_VERSION+y} && (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 $as_nop
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
+as_nl='
+'
+export as_nl
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
+
+# The user is always right.
+if ${PATH_SEPARATOR+false} :; 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
+
+
+# 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
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ 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
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (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 \$as_nop
+ 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 \$as_nop
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || 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_nop
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
+
+else $as_nop
+ 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
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ 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_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
+
+
+ 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'.
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno
+then :
+ printf "%s\n" "$0: This script requires a shell more modern than all"
+ printf "%s\n" "$0: the shells that I found on your system."
+ if test ${ZSH_VERSION+y} ; then
+ printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ printf "%s\n" "$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_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
+
+# 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=`printf "%s\n" "$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 ||
+printf "%s\n" 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_nop
+ 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_nop
+ 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
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ printf "%s\n" "$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 ||
+printf "%s\n" 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" ||
+ { printf "%s\n" "$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
+}
+
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
+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
+
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
+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=auto
+# 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;deb-format.at:1;dpkg-deb options;dpkg-deb command-line;
+2;deb-format.at:10;dpkg-deb .deb format 0.93x;dpkg-deb deb-old;
+3;deb-format.at:168;dpkg-deb .deb format 2.x;dpkg-deb deb;
+4;deb-content.at:1;dpkg-deb .deb conffiles;dpkg-deb deb conffiles;
+5;deb-fields.at:1;dpkg-deb .deb fields;dpkg-deb deb fields;
+6;deb-split.at:1;dpkg-split options;dpkg-split command-line;
+7;deb-split.at:9;dpkg-split .deb format;dpkg-split deb-split;
+8;realpath.at:1;dpkg-realpath options;dpkg-realpath command-line;
+9;realpath.at:9;dpkg-realpath path resolving;dpkg-realpath canonicalize;
+10;divert.at:1;dpkg-divert options;dpkg-divert command-line;
+11;divert.at:83;dpkg-divert query (empty db);dpkg-divert query;
+12;divert.at:94;dpkg-divert query (list);dpkg-divert query;
+13;divert.at:134;dpkg-divert query (listpackage + truename);dpkg-divert query;
+14;divert.at:160;dpkg-divert add (local rename);dpkg-divert add;
+15;divert.at:178;dpkg-divert add (local no-rename);dpkg-divert add;
+16;divert.at:196;dpkg-divert add (rename quiet);dpkg-divert add;
+17;divert.at:213;dpkg-divert add (test rename quiet);dpkg-divert add;
+18;divert.at:226;dpkg-divert add (rename missing quiet);dpkg-divert add;
+19;divert.at:243;dpkg-divert add (local rename quiet);dpkg-divert add;
+20;divert.at:260;dpkg-divert add (package rename quiet);dpkg-divert add;
+21;divert.at:274;dpkg-divert add (rename self-link);dpkg-divert add;
+22;divert.at:292;dpkg-divert add (rename other-file);dpkg-divert add;
+23;divert.at:305;dpkg-divert add (rename missing dir);dpkg-divert add;
+24;divert.at:319;dpkg-divert add (rename read-only dir);dpkg-divert fsys;
+25;divert.at:343;dpkg-divert add (rename no-access dir);dpkg-divert fsys;
+26;divert.at:367;dpkg-divert add second diversion;dpkg-divert add;
+27;divert.at:401;dpkg-divert add third diversion;dpkg-divert add;
+28;divert.at:420;dpkg-divert add (file owned by --package);dpkg-divert add;
+29;divert.at:447;dpkg-divert remove (missing);dpkg-divert remove;
+30;divert.at:459;dpkg-divert remove (divert-to);dpkg-divert remove;
+31;divert.at:494;dpkg-divert remove (plain);dpkg-divert remove;
+32;divert.at:517;dpkg-divert remove (by-package);dpkg-divert remove;
+33;divert.at:539;dpkg-divert remove (test);dpkg-divert remove;
+34;divert.at:564;dpkg-divert db (no-access);dpkg-divert db;
+35;divert.at:580;dpkg-divert db (truncated);dpkg-divert db;
+36;divert.at:598;dpkg-divert db (read-only dir);dpkg-divert db;
+37;divert.at:613;dpkg-divert db (disk full);dpkg-divert db;
+38;divert.at:628;dpkg-divert db (pathname is dir);dpkg-divert db;
+39;chdir.at:5;dpkg chdir opts;dpkg command-line chdir;
+40;chdir.at:5;dpkg chdir env;dpkg command-line chdir;
+41;chdir.at:5;dpkg chdir env+opt admindir;dpkg command-line chdir;
+42;chdir.at:5;dpkg chdir env+opt root;dpkg command-line chdir;
+43;chdir.at:5;dpkg chdir env+opt root+admindir;dpkg command-line chdir;
+44;chdir.at:5;dpkg-divert chdir opts;dpkg-divert command-line chdir;
+45;chdir.at:5;dpkg-divert chdir env;dpkg-divert command-line chdir;
+46;chdir.at:5;dpkg-divert chdir env+opt admindir;dpkg-divert command-line chdir;
+47;chdir.at:5;dpkg-divert chdir env+opt root;dpkg-divert command-line chdir;
+48;chdir.at:5;dpkg-divert chdir env+opt root+admindir;dpkg-divert command-line chdir;
+49;chdir.at:5;dpkg-statoverride chdir opts;dpkg-statoverride command-line chdir;
+50;chdir.at:5;dpkg-statoverride chdir env;dpkg-statoverride command-line chdir;
+51;chdir.at:5;dpkg-statoverride chdir env+opt admindir;dpkg-statoverride command-line chdir;
+52;chdir.at:5;dpkg-statoverride chdir env+opt root;dpkg-statoverride command-line chdir;
+53;chdir.at:5;dpkg-statoverride chdir env+opt root+admindir;dpkg-statoverride command-line chdir;
+54;chdir.at:329;dpkg-split chdir opts;dpkg-split command-line chdir;
+55;chdir.at:329;dpkg-split chdir env;dpkg-split command-line chdir;
+56;chdir.at:329;dpkg-split chdir env+opt admindir;dpkg-split command-line chdir;
+57;chdir.at:329;dpkg-split chdir env+opt root;dpkg-split command-line chdir;
+58;chdir.at:329;dpkg-split chdir env+opt root+admindir;dpkg-split command-line chdir;
+59;chdir.at:329;dpkg-query chdir opts;dpkg-query command-line chdir;
+60;chdir.at:329;dpkg-query chdir env;dpkg-query command-line chdir;
+61;chdir.at:329;dpkg-query chdir env+opt admindir;dpkg-query command-line chdir;
+62;chdir.at:329;dpkg-query chdir env+opt root;dpkg-query command-line chdir;
+63;chdir.at:329;dpkg-query chdir env+opt root+admindir;dpkg-query command-line chdir;
+64;chdir.at:329;dpkg-trigger chdir opts;dpkg-trigger command-line chdir;
+65;chdir.at:329;dpkg-trigger chdir env;dpkg-trigger command-line chdir;
+66;chdir.at:329;dpkg-trigger chdir env+opt admindir;dpkg-trigger command-line chdir;
+67;chdir.at:329;dpkg-trigger chdir env+opt root;dpkg-trigger command-line chdir;
+68;chdir.at:329;dpkg-trigger chdir env+opt root+admindir;dpkg-trigger command-line chdir;
+"
+# List of the all the test groups.
+at_groups_all=`printf "%s\n" "$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 68; then
+ printf "%s\n" "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
+}
+# List of the tested programs.
+at_tested='"dpkg-deb"
+"dpkg-split"
+"dpkg-realpath"
+"dpkg-divert"
+"dpkg"'
+
+
+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
+
+ 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=`printf "%s\n" "$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=`printf "%s\n" "$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=`printf "%s\n" "$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=`printf "%s\n" "$at_groups_selected" |
+ grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
+ done
+ # Smash the keywords.
+ at_groups_selected=`printf "%s\n" "$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=`printf "%s\n" "$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'"
+ ;;
+
+ *) printf "%s\n" "$as_me: invalid option: $at_option" >&2
+ printf "%s\n" "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=`printf "%s\n" "$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]
+ disable colored test results, or enable even without terminal
+ -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 <debian-dpkg@lists.debian.org>.
+dpkg home page: <https://wiki.debian.org/Teams/Dpkg>.
+_ATEOF
+ exit $at_write_fail
+fi
+
+# List of tests.
+if $at_list_p; then
+ cat <<_ATEOF || at_write_fail=1
+dpkg 1.21.22 test suite: dpkg tools functional test suite test groups:
+
+ NUM: FILE-NAME:LINE TEST-GROUP-NAME
+ KEYWORDS
+
+_ATEOF
+ # Pass an empty line as separator between selected groups and help.
+ printf "%s\n" "$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
+ printf "%s\n" "$as_me (dpkg 1.21.22)" &&
+ cat <<\_ATEOF || at_write_fail=1
+
+Copyright (C) 2021 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. testsuite.at:5
+# Category starts at test group 1.
+at_banner_text_1="Binary .deb packages"
+# Banner 2. testsuite.at:11
+# Category starts at test group 6.
+at_banner_text_2="Split .deb packages"
+# Banner 3. testsuite.at:15
+# Category starts at test group 8.
+at_banner_text_3="Resolve pathnames"
+# Banner 4. testsuite.at:19
+# Category starts at test group 10.
+at_banner_text_4="Diversions"
+# Banner 5. testsuite.at:23
+# Category starts at test group 39.
+at_banner_text_5="Change directory options"
+
+# 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=`printf "%s\n" "$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
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ 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
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ 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.
+printf "%s\n" "## ---------------------------------------------------------- ##
+## dpkg 1.21.22 test suite: dpkg tools functional test suite. ##
+## ---------------------------------------------------------- ##"
+{
+ printf "%s\n" "## ---------------------------------------------------------- ##
+## dpkg 1.21.22 test suite: dpkg tools functional test suite. ##
+## ---------------------------------------------------------- ##"
+ echo
+
+ printf "%s\n" "$as_me: command line was:"
+ printf "%s\n" " \$ $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
+ printf "%s\n" "## ---------- ##
+## 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
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ printf "%s\n" "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
+ printf "%s\n" "$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
+ printf "%s\n" "$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)"
+ printf "%s\n" "$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 ()
+{
+ printf "%s\n" "$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 printf "%s\n" "$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=:
+ printf "%s\n" "$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=:
+ printf "%s\n" "$3: hard failure"; exit 99;;
+ *) printf "%s\n" "$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+y} && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
+ printf "%s\n" "cd '$at_dir'" &&
+ printf "%s\n" "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. ##
+## -------------------------------- ##
+{
+ printf "%s\n" "## ---------------- ##
+## Tested programs. ##
+## ---------------- ##"
+ echo
+} >&5
+
+# Report what programs are being tested.
+for at_program in : `eval echo $at_tested`
+do
+ case $at_program in #(
+ :) :
+ continue ;; #(
+ [\\/]* | ?:[\\/]*) :
+ at_program_=$at_program ;; #(
+ *) :
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ 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
+ {
+ printf "%s\n" "$at_srcdir/testsuite.at:1: $at_program_ --version"
+ "$at_program_" --version </dev/null
+ echo
+ } >&5 2>&1
+ else
+ as_fn_error $? "cannot find $at_program" "$LINENO" 5
+ fi
+done
+
+{
+ printf "%s\n" "## ------------------ ##
+## Running the tests. ##
+## ------------------ ##"
+} >&5
+
+at_start_date=`date`
+at_start_time=`date +%s 2>/dev/null`
+printf "%s\n" "$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 ||
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
+printf "%s\n" "$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 printf %s "$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 <debian-dpkg@lists.debian.org>.
+_ATEOF
+ printf "%s\n" "$at_setup_line" >"$at_check_line_file"
+ at_status=99
+ fi
+ $at_verbose printf %s "$at_group. $at_setup_line: "
+ printf %s "$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
+ printf "%s\n" "$at_desc_line $at_color$at_msg$at_std"
+ else
+ # Make sure there is a separator even with long titles.
+ printf "%s\n" " $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
+ printf "%s\n" "$at_log_msg" >> "$at_group_log"
+ printf "%s\n" "$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.
+ printf "%s\n" "$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 1 -gt 2 && at_signame=$at_signal
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
+printf "%s\n" "$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+y} && 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=`printf "%s\n" "$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
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+printf "%s\n" "$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
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+printf "%s\n" "$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`
+printf "%s\n" "$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"
+ printf "%s\n" "$as_me: test suite duration: $at_duration" >&5
+ ;;
+esac
+
+echo
+printf "%s\n" "## ------------- ##
+## Test results. ##
+## ------------- ##"
+echo
+{
+ echo
+ printf "%s\n" "## ------------- ##
+## 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
+ printf "%s\n" "## ------------------------ ##
+## 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
+ printf "%s\n" "## ---------------------- ##
+## 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
+ at_msg1a=${at_xpass_list:+', '}
+ at_msg1=$at_fail_list${at_fail_list:+" failed$at_msg1a"}
+ at_msg2=$at_xpass_list${at_xpass_list:+" passed unexpectedly"}
+
+ printf "%s\n" "Please send $at_msg and all information you think might help:
+
+ To: <debian-dpkg@lists.debian.org>
+ Subject: [dpkg 1.21.22] $as_me: $at_msg1$at_msg2
+
+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 'deb-format.at:1' \
+ "dpkg-deb options" " " 1
+at_xfail=no
+(
+ printf "%s\n" "1. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:4: dpkg-deb --version"
+at_fn_check_prepare_trace "deb-format.at:4"
+( $at_check_trace; dpkg-deb --version
+) >>"$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/deb-format.at:4"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:5: dpkg-deb --help"
+at_fn_check_prepare_trace "deb-format.at:5"
+( $at_check_trace; dpkg-deb --help
+) >>"$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/deb-format.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_1
+#AT_START_2
+at_fn_group_banner 2 'deb-format.at:10' \
+ "dpkg-deb .deb format 0.93x" " " 1
+at_xfail=no
+(
+ printf "%s\n" "2. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+printf "%s\n" "deb-format.at:13" >"$at_check_line_file"
+(! command -v gzip >/dev/null) \
+ && at_fn_check_skip 77 "$at_srcdir/deb-format.at:13"
+
+cat >pkg-deb-old-bogus-only-version.deb <<'_ATEOF'
+0.93
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:17:
+# Check truncated old deb w/ only version magic
+dpkg-deb --info pkg-deb-old-bogus-only-version.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:17"
+( $at_check_trace;
+# Check truncated old deb w/ only version magic
+dpkg-deb --info pkg-deb-old-bogus-only-version.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: unexpected end of file in archive control member size in pkg-deb-old-bogus-only-version.deb
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:17"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-deb-old-format/DEBIAN'
+
+ cat >'pkg-deb-old-format/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-deb-old-format
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ $SED -e 's/^Description:.*$/& - deb old format support/' <'pkg-deb-old-format/DEBIAN/control' >'pkg-deb-old-format/DEBIAN/control.new'
+ mv 'pkg-deb-old-format/DEBIAN/control.new' 'pkg-deb-old-format/DEBIAN/control'
+
+cat >pkg-deb-old-format/file-templ <<'_ATEOF'
+test
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:28:
+# Initialize the template package
+mv pkg-deb-old-format pkg-old-templ
+cp \$top_srcdir/ChangeLog.old pkg-old-templ/
+chmod 0644 pkg-old-templ/ChangeLog.old
+chmod -R u+w pkg-old-templ
+find pkg-old-templ | xargs touch -t 197001010100.00
+dpkg-deb --deb-format=0.939000 --root-owner-group -Zgzip -b pkg-old-templ >/dev/null
+
+dpkg-deb --fsys-tarfile pkg-old-templ.deb >fsys.tar
+gzip -n fsys.tar
+
+# Create deb-old 0.939
+cp pkg-old-templ.deb pkg-old.deb
+
+# Create deb-old-old-old 0.931
+mkdir -p pkg-old-0931-templ/.DEBIAN
+cp pkg-old-templ/DEBIAN/* pkg-old-0931-templ/.DEBIAN/
+find pkg-old-0931-templ | xargs touch -t 197001010100.00
+tar czf ctrl-0931.tar.gz --format=gnu --mtime @0 --clamp-mtime --owner root:0 --group root:0 -C pkg-old-0931-templ .DEBIAN
+
+echo '0.931000' >pkg-old-0931.deb
+
+ \$PERL -E 'say -s shift' \"ctrl-0931.tar.gz\" >>pkg-old-0931.deb
+cat ctrl-0931.tar.gz >>pkg-old-0931.deb
+cat fsys.tar.gz >>pkg-old-0931.deb
+
+# Create deb-old-old template
+mkdir -p pkg-old-0932-templ/DEBIAN
+cp pkg-old-templ/DEBIAN/* pkg-old-0932-templ/DEBIAN/
+find pkg-old-0932-templ | xargs touch -t 197001010100.00
+tar czf ctrl-0932.tar.gz --format=gnu --mtime @0 --clamp-mtime --owner root:0 --group root:0 -C pkg-old-0932-templ DEBIAN
+
+# Create deb-old-old 0.932
+echo '0.932000' >pkg-old-0932.deb
+
+ \$PERL -E 'say -s shift' \"ctrl-0932.tar.gz\" >>pkg-old-0932.deb
+cat ctrl-0932.tar.gz >>pkg-old-0932.deb
+cat fsys.tar.gz >>pkg-old-0932.deb
+
+# Create deb-old-old 0.933
+echo '0.933000' >pkg-old-0933.deb
+
+ \$PERL -E 'say -s shift' \"ctrl-0932.tar.gz\" >>pkg-old-0933.deb
+cat ctrl-0932.tar.gz >>pkg-old-0933.deb
+cat fsys.tar.gz >>pkg-old-0933.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:28"
+( $at_check_trace;
+# Initialize the template package
+mv pkg-deb-old-format pkg-old-templ
+cp $top_srcdir/ChangeLog.old pkg-old-templ/
+chmod 0644 pkg-old-templ/ChangeLog.old
+chmod -R u+w pkg-old-templ
+find pkg-old-templ | xargs touch -t 197001010100.00
+dpkg-deb --deb-format=0.939000 --root-owner-group -Zgzip -b pkg-old-templ >/dev/null
+
+dpkg-deb --fsys-tarfile pkg-old-templ.deb >fsys.tar
+gzip -n fsys.tar
+
+# Create deb-old 0.939
+cp pkg-old-templ.deb pkg-old.deb
+
+# Create deb-old-old-old 0.931
+mkdir -p pkg-old-0931-templ/.DEBIAN
+cp pkg-old-templ/DEBIAN/* pkg-old-0931-templ/.DEBIAN/
+find pkg-old-0931-templ | xargs touch -t 197001010100.00
+tar czf ctrl-0931.tar.gz --format=gnu --mtime @0 --clamp-mtime --owner root:0 --group root:0 -C pkg-old-0931-templ .DEBIAN
+
+echo '0.931000' >pkg-old-0931.deb
+
+ $PERL -E 'say -s shift' "ctrl-0931.tar.gz" >>pkg-old-0931.deb
+cat ctrl-0931.tar.gz >>pkg-old-0931.deb
+cat fsys.tar.gz >>pkg-old-0931.deb
+
+# Create deb-old-old template
+mkdir -p pkg-old-0932-templ/DEBIAN
+cp pkg-old-templ/DEBIAN/* pkg-old-0932-templ/DEBIAN/
+find pkg-old-0932-templ | xargs touch -t 197001010100.00
+tar czf ctrl-0932.tar.gz --format=gnu --mtime @0 --clamp-mtime --owner root:0 --group root:0 -C pkg-old-0932-templ DEBIAN
+
+# Create deb-old-old 0.932
+echo '0.932000' >pkg-old-0932.deb
+
+ $PERL -E 'say -s shift' "ctrl-0932.tar.gz" >>pkg-old-0932.deb
+cat ctrl-0932.tar.gz >>pkg-old-0932.deb
+cat fsys.tar.gz >>pkg-old-0932.deb
+
+# Create deb-old-old 0.933
+echo '0.933000' >pkg-old-0933.deb
+
+ $PERL -E 'say -s shift' "ctrl-0932.tar.gz" >>pkg-old-0933.deb
+cat ctrl-0932.tar.gz >>pkg-old-0933.deb
+cat fsys.tar.gz >>pkg-old-0933.deb
+
+) >>"$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/deb-format.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:73:
+# Check old package metadata
+dpkg-deb -I pkg-old.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:73"
+( $at_check_trace;
+# Check old package metadata
+dpkg-deb -I pkg-old.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" " old Debian package, version 0.939000.
+ size 174621 bytes: control archive=274, main archive=174334.
+ 201 bytes, 7 lines control
+ Package: pkg-deb-old-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb old format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:73"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:88:
+# Check old package metadata
+dpkg-deb -I pkg-old-0931.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:88"
+( $at_check_trace;
+# Check old package metadata
+dpkg-deb -I pkg-old-0931.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" " old Debian package, version 0.931000.
+ size 175522 bytes: control archive=291, main archive=175218.
+ 201 bytes, 7 lines control
+ Package: pkg-deb-old-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb old format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:88"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:103:
+# Check old package metadata
+dpkg-deb -I pkg-old-0932.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:103"
+( $at_check_trace;
+# Check old package metadata
+dpkg-deb -I pkg-old-0932.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" " old Debian package, version 0.932000.
+ size 175522 bytes: control archive=291, main archive=175218.
+ 201 bytes, 7 lines control
+ Package: pkg-deb-old-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb old format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:103"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:118:
+# Check old package metadata
+dpkg-deb -I pkg-old-0933.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:118"
+( $at_check_trace;
+# Check old package metadata
+dpkg-deb -I pkg-old-0933.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" " old Debian package, version 0.933000.
+ size 175522 bytes: control archive=291, main archive=175218.
+ 201 bytes, 7 lines control
+ Package: pkg-deb-old-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb old format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:118"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:133:
+# Check old package contents
+dpkg-deb -c pkg-old.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:133"
+( $at_check_trace;
+# Check old package contents
+dpkg-deb -c pkg-old.deb
+
+) >>"$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"; printf "%s\n" "drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:133"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:141:
+# Check old package contents
+dpkg-deb -c pkg-old-0931.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:141"
+( $at_check_trace;
+# Check old package contents
+dpkg-deb -c pkg-old-0931.deb
+
+) >>"$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"; printf "%s\n" "drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:141"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:149:
+# Check old package contents
+dpkg-deb -c pkg-old-0932.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:149"
+( $at_check_trace;
+# Check old package contents
+dpkg-deb -c pkg-old-0932.deb
+
+) >>"$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"; printf "%s\n" "drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:149"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:157:
+# Check old package contents
+dpkg-deb -c pkg-old-0933.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:157"
+( $at_check_trace;
+# Check old package contents
+dpkg-deb -c pkg-old-0933.deb
+
+) >>"$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"; printf "%s\n" "drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.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_2
+#AT_START_3
+at_fn_group_banner 3 'deb-format.at:168' \
+ "dpkg-deb .deb format 2.x" " " 1
+at_xfail=no
+(
+ printf "%s\n" "3. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+printf "%s\n" "deb-format.at:171" >"$at_check_line_file"
+(! command -v xz >/dev/null) \
+ && at_fn_check_skip 77 "$at_srcdir/deb-format.at:171"
+printf "%s\n" "deb-format.at:172" >"$at_check_line_file"
+(! command -v gzip >/dev/null) \
+ && at_fn_check_skip 77 "$at_srcdir/deb-format.at:172"
+printf "%s\n" "deb-format.at:173" >"$at_check_line_file"
+(! command -v zstd >/dev/null) \
+ && at_fn_check_skip 77 "$at_srcdir/deb-format.at:173"
+printf "%s\n" "deb-format.at:174" >"$at_check_line_file"
+(! command -v bzip2 >/dev/null) \
+ && at_fn_check_skip 77 "$at_srcdir/deb-format.at:174"
+printf "%s\n" "deb-format.at:175" >"$at_check_line_file"
+(! command -v lzma >/dev/null) \
+ && at_fn_check_skip 77 "$at_srcdir/deb-format.at:175"
+
+: >pkg-deb-bogus-empty.deb
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:178:
+# Check truncated deb w/ 0 size
+dpkg-deb --info pkg-deb-bogus-empty.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:178"
+( $at_check_trace;
+# Check truncated deb w/ 0 size
+dpkg-deb --info pkg-deb-bogus-empty.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: unexpected end of file in archive magic version number in pkg-deb-bogus-empty.deb
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:178"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-deb-format/DEBIAN'
+
+ cat >'pkg-deb-format/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-deb-format
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ $SED -e 's/^Description:.*$/& - deb format support/' <'pkg-deb-format/DEBIAN/control' >'pkg-deb-format/DEBIAN/control.new'
+ mv 'pkg-deb-format/DEBIAN/control.new' 'pkg-deb-format/DEBIAN/control'
+
+cat >pkg-deb-format/file-templ <<'_ATEOF'
+test
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:189:
+# Initialize the template package
+mv pkg-deb-format pkg-templ
+cp \$top_srcdir/ChangeLog.old pkg-templ/
+chmod 0644 pkg-templ/ChangeLog.old
+chmod -R u+w pkg-templ
+find pkg-templ | xargs touch -t 197001010100.00
+dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ >/dev/null
+
+# Extract the base members
+ar x pkg-templ.deb
+gzip -c control.tar >control.tar.gz
+gzip -c data.tar >data.tar.gz
+xz -c control.tar >control.tar.xz
+xz -c data.tar >data.tar.xz
+zstd -c control.tar >control.tar.zst
+zstd -c data.tar >data.tar.zst
+bzip2 -c data.tar >data.tar.bz2
+lzma -c data.tar >data.tar.lzma
+touch _ignore
+touch unknown
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:189"
+( $at_check_trace;
+# Initialize the template package
+mv pkg-deb-format pkg-templ
+cp $top_srcdir/ChangeLog.old pkg-templ/
+chmod 0644 pkg-templ/ChangeLog.old
+chmod -R u+w pkg-templ
+find pkg-templ | xargs touch -t 197001010100.00
+dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ >/dev/null
+
+# Extract the base members
+ar x pkg-templ.deb
+gzip -c control.tar >control.tar.gz
+gzip -c data.tar >data.tar.gz
+xz -c control.tar >control.tar.xz
+xz -c data.tar >data.tar.xz
+zstd -c control.tar >control.tar.zst
+zstd -c data.tar >data.tar.zst
+bzip2 -c data.tar >data.tar.bz2
+lzma -c data.tar >data.tar.lzma
+touch _ignore
+touch unknown
+
+) >>"$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/deb-format.at:189"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:212:
+# Test debian-binary with 2.x versions
+cp pkg-templ.deb pkg-version-2x.deb
+echo 2.999 >debian-binary
+ar rc pkg-version-2x.deb debian-binary
+ar t pkg-version-2x.deb
+ar x pkg-templ.deb debian-binary
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-version-2x.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:212"
+( $at_check_trace;
+# Test debian-binary with 2.x versions
+cp pkg-templ.deb pkg-version-2x.deb
+echo 2.999 >debian-binary
+ar rc pkg-version-2x.deb debian-binary
+ar t pkg-version-2x.deb
+ar x pkg-templ.deb debian-binary
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-version-2x.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar
+data.tar
+ new Debian package, version 2.999.
+ size 655554 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:212"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:236:
+# Test debian-binary with extra lines
+cp pkg-templ.deb pkg-magic-extra.deb
+echo \"extra line\" >>debian-binary
+ar rc pkg-magic-extra.deb debian-binary
+ar t pkg-magic-extra.deb
+ar x pkg-templ.deb debian-binary
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-magic-extra.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:236"
+( $at_check_trace;
+# Test debian-binary with extra lines
+cp pkg-templ.deb pkg-magic-extra.deb
+echo "extra line" >>debian-binary
+ar rc pkg-magic-extra.deb debian-binary
+ar t pkg-magic-extra.deb
+ar x pkg-templ.deb debian-binary
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-magic-extra.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar
+data.tar
+ new Debian package, version 2.0.
+ size 655564 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:236"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:260:
+# Test missing debian-binary member
+cp pkg-templ.deb pkg-missing-magic.deb
+ar d pkg-missing-magic.deb debian-binary
+ar t pkg-missing-magic.deb
+dpkg-deb -I pkg-missing-magic.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:260"
+( $at_check_trace;
+# Test missing debian-binary member
+cp pkg-templ.deb pkg-missing-magic.deb
+ar d pkg-missing-magic.deb debian-binary
+ar t pkg-missing-magic.deb
+dpkg-deb -I pkg-missing-magic.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: file 'pkg-missing-magic.deb' is not a Debian binary archive (try dpkg-split?)
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "control.tar
+data.tar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:260"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:271:
+# Test missing control member
+cp pkg-templ.deb pkg-missing-control.deb
+ar d pkg-missing-control.deb control.tar
+ar t pkg-missing-control.deb
+dpkg-deb -I pkg-missing-control.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:271"
+( $at_check_trace;
+# Test missing control member
+cp pkg-templ.deb pkg-missing-control.deb
+ar d pkg-missing-control.deb control.tar
+ar t pkg-missing-control.deb
+dpkg-deb -I pkg-missing-control.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: archive 'pkg-missing-control.deb' has premature member 'data.tar' before 'control.tar', giving up
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-binary
+data.tar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:271"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:282:
+# Test missing data member
+cp pkg-templ.deb pkg-missing-data.deb
+ar d pkg-missing-data.deb data.tar
+ar t pkg-missing-data.deb
+dpkg-deb -c pkg-missing-data.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:282"
+( $at_check_trace;
+# Test missing data member
+cp pkg-templ.deb pkg-missing-data.deb
+ar d pkg-missing-data.deb data.tar
+ar t pkg-missing-data.deb
+dpkg-deb -c pkg-missing-data.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: unexpected end of file in archive member header in pkg-missing-data.deb
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-binary
+control.tar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:282"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:293:
+# Test duplicate debian-binary member
+cp pkg-templ.deb pkg-duplicate-magic.deb
+ar ra debian-binary pkg-duplicate-magic.deb debian-binary debian-binary
+ar t pkg-duplicate-magic.deb
+dpkg-deb -I pkg-duplicate-magic.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:293"
+( $at_check_trace;
+# Test duplicate debian-binary member
+cp pkg-templ.deb pkg-duplicate-magic.deb
+ar ra debian-binary pkg-duplicate-magic.deb debian-binary debian-binary
+ar t pkg-duplicate-magic.deb
+dpkg-deb -I pkg-duplicate-magic.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: archive 'pkg-duplicate-magic.deb' has premature member 'debian-binary' before 'control.tar', giving up
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-binary
+debian-binary
+control.tar
+data.tar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:293"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:306:
+# Test duplicate control member
+cp pkg-templ.deb pkg-duplicate-control.deb
+ar ra control.tar pkg-duplicate-control.deb control.tar control.tar
+ar t pkg-duplicate-control.deb
+dpkg-deb -c pkg-duplicate-control.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:306"
+( $at_check_trace;
+# Test duplicate control member
+cp pkg-templ.deb pkg-duplicate-control.deb
+ar ra control.tar pkg-duplicate-control.deb control.tar control.tar
+ar t pkg-duplicate-control.deb
+dpkg-deb -c pkg-duplicate-control.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: archive 'pkg-duplicate-control.deb' contains two control members, giving up
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-binary
+control.tar
+control.tar
+data.tar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:306"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:319:
+# Test mixed member (index 1)
+cp pkg-templ.deb pkg-mixed-1-member.deb
+ar ra debian-binary pkg-mixed-1-member.deb unknown
+ar t pkg-mixed-1-member.deb
+dpkg-deb -I pkg-mixed-1-member.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:319"
+( $at_check_trace;
+# Test mixed member (index 1)
+cp pkg-templ.deb pkg-mixed-1-member.deb
+ar ra debian-binary pkg-mixed-1-member.deb unknown
+ar t pkg-mixed-1-member.deb
+dpkg-deb -I pkg-mixed-1-member.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: archive 'pkg-mixed-1-member.deb' has premature member 'unknown' before 'control.tar', giving up
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-binary
+unknown
+control.tar
+data.tar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:319"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:332:
+# Test mixed member (index 2)
+cp pkg-templ.deb pkg-mixed-2-member.deb
+ar ra control.tar pkg-mixed-2-member.deb unknown
+ar t pkg-mixed-2-member.deb
+dpkg-deb -c pkg-mixed-2-member.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:332"
+( $at_check_trace;
+# Test mixed member (index 2)
+cp pkg-templ.deb pkg-mixed-2-member.deb
+ar ra control.tar pkg-mixed-2-member.deb unknown
+ar t pkg-mixed-2-member.deb
+dpkg-deb -c pkg-mixed-2-member.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: archive 'pkg-mixed-2-member.deb' has premature member 'unknown' before 'data.tar', giving up
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-binary
+control.tar
+unknown
+data.tar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:332"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:345:
+# Test swapped control and data members
+cp pkg-templ.deb pkg-swap-members.deb
+ar ma data.tar pkg-swap-members.deb control.tar
+ar t pkg-swap-members.deb
+dpkg-deb -I pkg-swap-members.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:345"
+( $at_check_trace;
+# Test swapped control and data members
+cp pkg-templ.deb pkg-swap-members.deb
+ar ma data.tar pkg-swap-members.deb control.tar
+ar t pkg-swap-members.deb
+dpkg-deb -I pkg-swap-members.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: archive 'pkg-swap-members.deb' has premature member 'data.tar' before 'control.tar', giving up
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-binary
+data.tar
+control.tar
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:345"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:357:
+# Test extra member
+cp pkg-templ.deb pkg-extra-member.deb
+ar q pkg-extra-member.deb unknown
+ar t pkg-extra-member.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-extra-member.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:357"
+( $at_check_trace;
+# Test extra member
+cp pkg-templ.deb pkg-extra-member.deb
+ar q pkg-extra-member.deb unknown
+ar t pkg-extra-member.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-extra-member.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar
+data.tar
+unknown
+ new Debian package, version 2.0.
+ size 655612 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:357"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:380:
+# Test _ member
+cp pkg-templ.deb pkg-under-member.deb
+ar ra debian-binary pkg-under-member.deb _ignore
+ar t pkg-under-member.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-under-member.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:380"
+( $at_check_trace;
+# Test _ member
+cp pkg-templ.deb pkg-under-member.deb
+ar ra debian-binary pkg-under-member.deb _ignore
+ar t pkg-under-member.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-under-member.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" "debian-binary
+_ignore
+control.tar
+data.tar
+ new Debian package, version 2.0.
+ size 655612 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:380"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:403:
+# Test data.tar.bad member
+dd if=/dev/zero of=data.tar.bad bs=1K count=4 status=none
+ar rc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad
+ar t pkg-data-bad.deb
+dpkg-deb -c pkg-data-bad.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:403"
+( $at_check_trace;
+# Test data.tar.bad member
+dd if=/dev/zero of=data.tar.bad bs=1K count=4 status=none
+ar rc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad
+ar t pkg-data-bad.deb
+dpkg-deb -c pkg-data-bad.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: archive 'pkg-data-bad.deb' uses unknown compression for member 'data.tar.bad', giving up
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-binary
+control.tar.gz
+data.tar.bad
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:403"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:415:
+# Test control.tar member
+ar rc pkg-control-none.deb debian-binary control.tar data.tar
+ar t pkg-control-none.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-control-none.deb | \$SED -e 's/ *\$//'
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:415"
+( $at_check_trace;
+# Test control.tar member
+ar rc pkg-control-none.deb debian-binary control.tar data.tar
+ar t pkg-control-none.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-control-none.deb | $SED -e 's/ *$//'
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar
+data.tar
+ new Debian package, version 2.0.
+ size 655552 bytes: control archive=10240 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:415"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:436:
+# Test control.tar.xz member
+ar rc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz
+ar t pkg-control-xz.deb
+dpkg-deb -c pkg-control-xz.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:436"
+( $at_check_trace;
+# Test control.tar.xz member
+ar rc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz
+ar t pkg-control-xz.deb
+dpkg-deb -c pkg-control-xz.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.xz
+data.tar.xz
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:436"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:449:
+# Test control.tar.zst member
+ar rc pkg-control-zst.deb debian-binary control.tar.zst data.tar.zst
+ar t pkg-control-zst.deb
+dpkg-deb -c pkg-control-zst.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:449"
+( $at_check_trace;
+# Test control.tar.zst member
+ar rc pkg-control-zst.deb debian-binary control.tar.zst data.tar.zst
+ar t pkg-control-zst.deb
+dpkg-deb -c pkg-control-zst.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.zst
+data.tar.zst
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:449"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:462:
+# Test data.tar member
+ar rc pkg-data-none.deb debian-binary control.tar.gz data.tar
+ar t pkg-data-none.deb
+dpkg-deb -c pkg-data-none.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:462"
+( $at_check_trace;
+# Test data.tar member
+ar rc pkg-data-none.deb debian-binary control.tar.gz data.tar
+ar t pkg-data-none.deb
+dpkg-deb -c pkg-data-none.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.gz
+data.tar
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:462"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:475:
+# Test data.tar.gz member
+ar rc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz
+ar t pkg-data-gz.deb
+dpkg-deb -c pkg-data-gz.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:475"
+( $at_check_trace;
+# Test data.tar.gz member
+ar rc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz
+ar t pkg-data-gz.deb
+dpkg-deb -c pkg-data-gz.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.gz
+data.tar.gz
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:475"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:488:
+# Test data.tar.xz member
+ar rc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz
+ar t pkg-data-xz.deb
+dpkg-deb -c pkg-data-xz.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:488"
+( $at_check_trace;
+# Test data.tar.xz member
+ar rc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz
+ar t pkg-data-xz.deb
+dpkg-deb -c pkg-data-xz.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.gz
+data.tar.xz
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:488"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:501:
+# Test data.tar.zst member
+ar rc pkg-data-zst.deb debian-binary control.tar.gz data.tar.zst
+ar t pkg-data-zst.deb
+dpkg-deb -c pkg-data-zst.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:501"
+( $at_check_trace;
+# Test data.tar.zst member
+ar rc pkg-data-zst.deb debian-binary control.tar.gz data.tar.zst
+ar t pkg-data-zst.deb
+dpkg-deb -c pkg-data-zst.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.gz
+data.tar.zst
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:501"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:514:
+# Test data.tar.bz2 member
+ar rc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2
+ar t pkg-data-bz2.deb
+dpkg-deb -c pkg-data-bz2.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:514"
+( $at_check_trace;
+# Test data.tar.bz2 member
+ar rc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2
+ar t pkg-data-bz2.deb
+dpkg-deb -c pkg-data-bz2.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.gz
+data.tar.bz2
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:514"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:527:
+# Test data.tar.lzma member
+ar rc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma
+ar t pkg-data-lzma.deb
+dpkg-deb -c pkg-data-lzma.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:527"
+( $at_check_trace;
+# Test data.tar.lzma member
+ar rc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma
+ar t pkg-data-lzma.deb
+dpkg-deb -c pkg-data-lzma.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.gz
+data.tar.lzma
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:527"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:540:
+# Test non-uniform data.tar/control.tar member compression
+ar rc pkg-mixed-comp.deb debian-binary control.tar.xz data.tar.gz
+ar t pkg-mixed-comp.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-mixed-comp.deb | \$SED -e 's/ *\$//'
+dpkg-deb -c pkg-mixed-comp.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:540"
+( $at_check_trace;
+# Test non-uniform data.tar/control.tar member compression
+ar rc pkg-mixed-comp.deb debian-binary control.tar.xz data.tar.gz
+ar t pkg-mixed-comp.deb
+# XXX: Ideally we would have no need to strip trailing spaces.
+dpkg-deb -I pkg-mixed-comp.deb | $SED -e 's/ *$//'
+dpkg-deb -c pkg-mixed-comp.deb
+
+) >>"$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"; printf "%s\n" "debian-binary
+control.tar.xz
+data.tar.gz
+ new Debian package, version 2.0.
+ size 175756 bytes: control archive=336 bytes.
+ 193 bytes, 7 lines control
+ Package: pkg-deb-format
+ Version: 0.0-1
+ Section: test
+ Priority: extra
+ Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+ Architecture: all
+ Description: test package - deb format support
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 641345 1970-01-01 00:00 ./ChangeLog.old
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:540"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:565:
+# Test building and extracting none compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ pkg-comp-none.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-none.deb >ctrl-none.tar
+dpkg-deb --fsys-tarfile pkg-comp-none.deb >fsys-none.tar
+cmp ctrl-none.tar control.tar
+cmp fsys-none.tar data.tar
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:565"
+( $at_check_trace;
+# Test building and extracting none compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ pkg-comp-none.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-none.deb >ctrl-none.tar
+dpkg-deb --fsys-tarfile pkg-comp-none.deb >fsys-none.tar
+cmp ctrl-none.tar control.tar
+cmp fsys-none.tar data.tar
+
+) >>"$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/deb-format.at:565"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:574:
+# Test building and extracting gzip compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zgzip -b pkg-templ pkg-comp-gzip.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-gzip.deb >ctrl-gzip.tar
+dpkg-deb --fsys-tarfile pkg-comp-gzip.deb >fsys-gzip.tar
+cmp ctrl-gzip.tar control.tar
+cmp fsys-gzip.tar data.tar
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:574"
+( $at_check_trace;
+# Test building and extracting gzip compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zgzip -b pkg-templ pkg-comp-gzip.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-gzip.deb >ctrl-gzip.tar
+dpkg-deb --fsys-tarfile pkg-comp-gzip.deb >fsys-gzip.tar
+cmp ctrl-gzip.tar control.tar
+cmp fsys-gzip.tar data.tar
+
+) >>"$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/deb-format.at:574"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:583:
+# Test building and extracting xz compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zxz -b pkg-templ pkg-comp-xz.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-xz.deb >ctrl-xz.tar
+dpkg-deb --fsys-tarfile pkg-comp-xz.deb >fsys-xz.tar
+cmp ctrl-xz.tar control.tar
+cmp fsys-xz.tar data.tar
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:583"
+( $at_check_trace;
+# Test building and extracting xz compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zxz -b pkg-templ pkg-comp-xz.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-xz.deb >ctrl-xz.tar
+dpkg-deb --fsys-tarfile pkg-comp-xz.deb >fsys-xz.tar
+cmp ctrl-xz.tar control.tar
+cmp fsys-xz.tar data.tar
+
+) >>"$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/deb-format.at:583"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-format.at:592:
+# Test building and extracting zstd compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zzstd -b pkg-templ pkg-comp-zstd.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-zstd.deb >ctrl-zstd.tar
+dpkg-deb --fsys-tarfile pkg-comp-zstd.deb >fsys-zstd.tar
+cmp ctrl-zstd.tar control.tar
+cmp fsys-zstd.tar data.tar
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:592"
+( $at_check_trace;
+# Test building and extracting zstd compressed archive
+dpkg-deb --uniform-compression --root-owner-group -Zzstd -b pkg-templ pkg-comp-zstd.deb >/dev/null
+dpkg-deb --ctrl-tarfile pkg-comp-zstd.deb >ctrl-zstd.tar
+dpkg-deb --fsys-tarfile pkg-comp-zstd.deb >fsys-zstd.tar
+cmp ctrl-zstd.tar control.tar
+cmp fsys-zstd.tar data.tar
+
+) >>"$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/deb-format.at:592"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'deb-content.at:1' \
+ "dpkg-deb .deb conffiles" " " 1
+at_xfail=no
+(
+ printf "%s\n" "4. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ mkdir -p 'pkg-conff-duped/DEBIAN'
+
+ cat >'pkg-conff-duped/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-duped
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ mkdir -p 'pkg-conff-duped/DEBIAN'
+
+ cat >'pkg-conff-duped/DEBIAN/conffiles' <<CTRL_TEMPL
+/test-conffile-1
+/test-conffile-2
+/test-conffile-1
+CTRL_TEMPL
+
+cat >pkg-conff-duped/test-conffile-1 <<'_ATEOF'
+test init
+_ATEOF
+
+cat >pkg-conff-duped/test-conffile-2 <<'_ATEOF'
+test init
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:12:
+# Duplicate conffile entries should produce a warning.
+dpkg-deb -b pkg-conff-duped
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:12"
+( $at_check_trace;
+# Duplicate conffile entries should produce a warning.
+dpkg-deb -b pkg-conff-duped
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: warning: conffile name '/test-conffile-1' is duplicated
+dpkg-deb: warning: ignoring 1 warning about the control file(s)
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/deb-content.at:12"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-noeol/DEBIAN'
+
+ cat >'pkg-conff-noeol/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-noeol
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+printf "/test-conffile-1" >"pkg-conff-noeol/DEBIAN/conffiles"
+cat >pkg-conff-noeol/test-conffile-1 <<'_ATEOF'
+test init
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:23:
+# Conffiles need a final newline to guarantee there's been no accidental
+# file truncation.
+dpkg-deb -b pkg-conff-noeol pkg-conff-noeol.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:23"
+( $at_check_trace;
+# Conffiles need a final newline to guarantee there's been no accidental
+# file truncation.
+dpkg-deb -b pkg-conff-noeol pkg-conff-noeol.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: conffile name '/test-conffile-1' is too long, or missing final newline
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:23"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-noabs/DEBIAN'
+
+ cat >'pkg-conff-noabs/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-noabs
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ mkdir -p 'pkg-conff-noabs/DEBIAN'
+
+ cat >'pkg-conff-noabs/DEBIAN/conffiles' <<CTRL_TEMPL
+test-conffile-rel
+CTRL_TEMPL
+
+cat >pkg-conff-noabs/test-conffile-rel <<'_ATEOF'
+test init
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:34:
+# Conffiles must use absolute pathnames.
+dpkg-deb -b pkg-conff-noabs pkg-conff-noabs.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:34"
+( $at_check_trace;
+# Conffiles must use absolute pathnames.
+dpkg-deb -b pkg-conff-noabs pkg-conff-noabs.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: conffile name 'test-conffile-rel' is not an absolute pathname
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-empty/DEBIAN'
+
+ cat >'pkg-conff-empty/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-empty
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+printf " \n" >"pkg-conff-empty/DEBIAN/conffiles"
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:42:
+# Conffiles must not contain empty lines.
+dpkg-deb -b pkg-conff-empty pkg-conff-empty.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:42"
+( $at_check_trace;
+# Conffiles must not contain empty lines.
+dpkg-deb -b pkg-conff-empty pkg-conff-empty.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: empty and whitespace-only lines are not allowed in conffiles
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:42"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-space-prefix/DEBIAN'
+
+ cat >'pkg-conff-space-prefix/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-space-prefix
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ mkdir -p 'pkg-conff-space-prefix/DEBIAN'
+
+ cat >'pkg-conff-space-prefix/DEBIAN/conffiles' <<CTRL_TEMPL
+ /test-conffile
+CTRL_TEMPL
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:50:
+# Conffiles must not contain prefixed spaces.
+dpkg-deb -b pkg-conff-space-prefix pkg-conff-space-prefix.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:50"
+( $at_check_trace;
+# Conffiles must not contain prefixed spaces.
+dpkg-deb -b pkg-conff-space-prefix pkg-conff-space-prefix.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: line with conffile filename '/test-conffile' has leading white spaces
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:50"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-unknown-flag/DEBIAN'
+
+ cat >'pkg-conff-unknown-flag/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-unknown-flag
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ mkdir -p 'pkg-conff-unknown-flag/DEBIAN'
+
+ cat >'pkg-conff-unknown-flag/DEBIAN/conffiles' <<CTRL_TEMPL
+unknown-flag /test-conffile
+CTRL_TEMPL
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:58:
+# Conffiles marked with an unknown flag.
+dpkg-deb -b pkg-conff-unknown-flag pkg-conff-unknown-flag.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:58"
+( $at_check_trace;
+# Conffiles marked with an unknown flag.
+dpkg-deb -b pkg-conff-unknown-flag pkg-conff-unknown-flag.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: unknown flag 'unknown-flag' for conffile '/test-conffile'
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:58"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-missing-pathname/DEBIAN'
+
+ cat >'pkg-conff-missing-pathname/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-missing-pathname
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+printf "unknown-flag \n" >"pkg-conff-missing-pathname/DEBIAN/conffiles"
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:66:
+# Conffiles need a pathname, in addition to a flag.
+dpkg-deb -b pkg-conff-missing-pathname pkg-conff-missing-pathname.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:66"
+( $at_check_trace;
+# Conffiles need a pathname, in addition to a flag.
+dpkg-deb -b pkg-conff-missing-pathname pkg-conff-missing-pathname.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: conffile name missing after flag 'unknown-flag'
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:66"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-removed-missing/DEBIAN'
+
+ cat >'pkg-conff-removed-missing/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-removed-missing
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ mkdir -p 'pkg-conff-removed-missing/DEBIAN'
+
+ cat >'pkg-conff-removed-missing/DEBIAN/conffiles' <<CTRL_TEMPL
+remove-on-upgrade /test-conffile-missing
+CTRL_TEMPL
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:74:
+# Conffiles marked for removal must not be present.
+dpkg-deb -b pkg-conff-removed-missing pkg-conff-removed-missing.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:74"
+( $at_check_trace;
+# Conffiles marked for removal must not be present.
+dpkg-deb -b pkg-conff-removed-missing pkg-conff-removed-missing.deb
+
+) >>"$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/deb-content.at:74"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-removed-duped/DEBIAN'
+
+ cat >'pkg-conff-removed-duped/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-removed-duped
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ mkdir -p 'pkg-conff-removed-duped/DEBIAN'
+
+ cat >'pkg-conff-removed-duped/DEBIAN/conffiles' <<CTRL_TEMPL
+remove-on-upgrade /test-conffile-1
+remove-on-upgrade /test-conffile-2
+remove-on-upgrade /test-conffile-1
+CTRL_TEMPL
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:83:
+# Duplicate conffile entries should produce a warning.
+dpkg-deb -b pkg-conff-removed-duped
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:83"
+( $at_check_trace;
+# Duplicate conffile entries should produce a warning.
+dpkg-deb -b pkg-conff-removed-duped
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: warning: conffile name '/test-conffile-1' is duplicated
+dpkg-deb: warning: ignoring 1 warning about the control file(s)
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/deb-content.at:83"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-removed-noeol/DEBIAN'
+
+ cat >'pkg-conff-removed-noeol/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-removed-noeol
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+printf "remove-on-upgrade /test-conffile-1" >"pkg-conff-removed-noeol/DEBIAN/conffiles"
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:92:
+# Conffiles need a final newline to guarantee there has been no accidental
+# file truncation.
+dpkg-deb -b pkg-conff-removed-noeol pkg-conff-removed-noeol.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:92"
+( $at_check_trace;
+# Conffiles need a final newline to guarantee there has been no accidental
+# file truncation.
+dpkg-deb -b pkg-conff-removed-noeol pkg-conff-removed-noeol.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: conffile name 'remove-on-upgrade /test-conffile-1' is too long, or missing final newline
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:92"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-removed-noabs/DEBIAN'
+
+ cat >'pkg-conff-removed-noabs/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-removed-noabs
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ mkdir -p 'pkg-conff-removed-noabs/DEBIAN'
+
+ cat >'pkg-conff-removed-noabs/DEBIAN/conffiles' <<CTRL_TEMPL
+remove-on-upgrade test-conffile-rel
+CTRL_TEMPL
+
+cat >pkg-conff-removed-noabs/test-conffile-rel <<'_ATEOF'
+test init
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:103:
+# Conffiles must use absolute pathnames.
+dpkg-deb -b pkg-conff-removed-noabs pkg-conff-removed-noabs.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:103"
+( $at_check_trace;
+# Conffiles must use absolute pathnames.
+dpkg-deb -b pkg-conff-removed-noabs pkg-conff-removed-noabs.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: conffile name 'test-conffile-rel' is not an absolute pathname
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:103"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-conff-removed-present/DEBIAN'
+
+ cat >'pkg-conff-removed-present/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-conff-removed-present
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ mkdir -p 'pkg-conff-removed-present/DEBIAN'
+
+ cat >'pkg-conff-removed-present/DEBIAN/conffiles' <<CTRL_TEMPL
+remove-on-upgrade /test-conffile-present
+CTRL_TEMPL
+
+cat >pkg-conff-removed-present/test-conffile-present <<'_ATEOF'
+test init
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:113:
+# Conffiles marked for removal must not be present.
+dpkg-deb -b pkg-conff-removed-present pkg-conff-removed-present.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:113"
+( $at_check_trace;
+# Conffiles marked for removal must not be present.
+dpkg-deb -b pkg-conff-removed-present pkg-conff-removed-present.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: conffile '/test-conffile-present' is present but is requested to be removed
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:113"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-deb-newline/DEBIAN'
+
+ cat >'pkg-deb-newline/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-deb-newline
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+touch 'pkg-deb-newline/file
+newline'
+{ set +x
+printf "%s\n" "$at_srcdir/deb-content.at:122:
+# Cannot create package with newlines in filenames.
+dpkg-deb -b pkg-deb-newline
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:122"
+( $at_check_trace;
+# Cannot create package with newlines in filenames.
+dpkg-deb -b pkg-deb-newline
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: error: newline not allowed in pathname './file
+newline'
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:122"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'deb-fields.at:1' \
+ "dpkg-deb .deb fields" " " 1
+at_xfail=no
+(
+ printf "%s\n" "5. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ mkdir -p 'pkg-package-type-void/DEBIAN'
+
+ cat >'pkg-package-type-void/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-package-type-void
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-fields.at:5:
+dpkg-deb -b pkg-package-type-void
+# Test absence of Package-Type field.
+test -z \"\$(dpkg-deb -f pkg-package-type-void.deb Package-Type)\"
+"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "deb-fields.at:5"
+( $at_check_trace;
+dpkg-deb -b pkg-package-type-void
+# Test absence of Package-Type field.
+test -z "$(dpkg-deb -f pkg-package-type-void.deb Package-Type)"
+
+) >>"$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/deb-fields.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-package-type-use/DEBIAN'
+
+ cat >'pkg-package-type-use/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-package-type-use
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ $SED -e '/^Package:/aPackage-Type: udeb' <'pkg-package-type-use/DEBIAN/control' >'pkg-package-type-use/DEBIAN/control.new'
+ mv 'pkg-package-type-use/DEBIAN/control.new' 'pkg-package-type-use/DEBIAN/control'
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-fields.at:13:
+dpkg-deb -b pkg-package-type-use
+# Test presence of Package-Type field.
+test -n \"\$(dpkg-deb -f pkg-package-type-use.deb Package-Type)\"
+"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "deb-fields.at:13"
+( $at_check_trace;
+dpkg-deb -b pkg-package-type-use
+# Test presence of Package-Type field.
+test -n "$(dpkg-deb -f pkg-package-type-use.deb Package-Type)"
+
+) >>"$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/deb-fields.at:13"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+ mkdir -p 'pkg-obsolete-fields/DEBIAN'
+
+ cat >'pkg-obsolete-fields/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-obsolete-fields
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ $SED -e 's/^Priority:/Class:/' <'pkg-obsolete-fields/DEBIAN/control' >'pkg-obsolete-fields/DEBIAN/control.new'
+ mv 'pkg-obsolete-fields/DEBIAN/control.new' 'pkg-obsolete-fields/DEBIAN/control'
+
+
+ $SED -e 's/^Version: 0.0-1/Version: 0.0/' <'pkg-obsolete-fields/DEBIAN/control' >'pkg-obsolete-fields/DEBIAN/control.new'
+ mv 'pkg-obsolete-fields/DEBIAN/control.new' 'pkg-obsolete-fields/DEBIAN/control'
+
+
+ $SED -e '/^Version:/aRevision: 1' <'pkg-obsolete-fields/DEBIAN/control' >'pkg-obsolete-fields/DEBIAN/control.new'
+ mv 'pkg-obsolete-fields/DEBIAN/control.new' 'pkg-obsolete-fields/DEBIAN/control'
+
+
+ $SED -e '/^Package:/aOptional: suggests' <'pkg-obsolete-fields/DEBIAN/control' >'pkg-obsolete-fields/DEBIAN/control.new'
+ mv 'pkg-obsolete-fields/DEBIAN/control.new' 'pkg-obsolete-fields/DEBIAN/control'
+
+
+ $SED -e '/^Package:/aRecommended: recommends' <'pkg-obsolete-fields/DEBIAN/control' >'pkg-obsolete-fields/DEBIAN/control.new'
+ mv 'pkg-obsolete-fields/DEBIAN/control.new' 'pkg-obsolete-fields/DEBIAN/control'
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-fields.at:25:
+dpkg-deb -b pkg-obsolete-fields
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-fields.at:25"
+( $at_check_trace;
+dpkg-deb -b pkg-obsolete-fields
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-deb: warning: parsing file 'pkg-obsolete-fields/DEBIAN/control' near line 2 package 'pkg-obsolete-fields':
+ obsolete 'Recommended' field used
+dpkg-deb: warning: parsing file 'pkg-obsolete-fields/DEBIAN/control' near line 3 package 'pkg-obsolete-fields':
+ obsolete 'Optional' field used
+dpkg-deb: warning: parsing file 'pkg-obsolete-fields/DEBIAN/control' near line 5 package 'pkg-obsolete-fields':
+ obsolete 'Revision' field used
+dpkg-deb: warning: parsing file 'pkg-obsolete-fields/DEBIAN/control' near line 7 package 'pkg-obsolete-fields':
+ obsolete 'Class' field used
+dpkg-deb: warning: ignoring 4 warnings about the control file(s)
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/deb-fields.at:25"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-fields.at:38:
+dpkg-deb -f pkg-obsolete-fields.deb \\
+ Version Recommends Suggests Priority 2>/dev/null
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-fields.at:38"
+( $at_check_trace;
+dpkg-deb -f pkg-obsolete-fields.deb \
+ Version Recommends Suggests Priority 2>/dev/null
+
+) >>"$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"; printf "%s\n" "Version: 0.0-1
+Recommends: recommends
+Suggests: suggests
+Priority: extra
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-fields.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_5
+#AT_START_6
+at_fn_group_banner 6 'deb-split.at:1' \
+ "dpkg-split options" " " 2
+at_xfail=no
+(
+ printf "%s\n" "6. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:4: dpkg-split --version"
+at_fn_check_prepare_trace "deb-split.at:4"
+( $at_check_trace; dpkg-split --version
+) >>"$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/deb-split.at:4"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:5: dpkg-split --help"
+at_fn_check_prepare_trace "deb-split.at:5"
+( $at_check_trace; dpkg-split --help
+) >>"$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/deb-split.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_6
+#AT_START_7
+at_fn_group_banner 7 'deb-split.at:9' \
+ "dpkg-split .deb format" " " 2
+at_xfail=no
+(
+ printf "%s\n" "7. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ mkdir -p 'pkg-split/DEBIAN'
+
+ cat >'pkg-split/DEBIAN/control' <<CTRL_TEMPL
+Package: pkg-split
+Version: 0.0-1
+Section: test
+Priority: extra
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: all
+Description: test package
+CTRL_TEMPL
+
+
+
+ $SED -e 's/^Description:.*$/& - normal package to be split/' <'pkg-split/DEBIAN/control' >'pkg-split/DEBIAN/control.new'
+ mv 'pkg-split/DEBIAN/control.new' 'pkg-split/DEBIAN/control'
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:15:
+# Initialize the template package
+chmod -R u+w pkg-split
+\$PERL -E 'print \"fade\" foreach 1 .. 1024 * 512' >pkg-split/data-file
+find pkg-split | xargs touch -t 197001010100.00
+dpkg-deb --root-owner-group -Znone -b pkg-split >/dev/null
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:15"
+( $at_check_trace;
+# Initialize the template package
+chmod -R u+w pkg-split
+$PERL -E 'print "fade" foreach 1 .. 1024 * 512' >pkg-split/data-file
+find pkg-split | xargs touch -t 197001010100.00
+dpkg-deb --root-owner-group -Znone -b pkg-split >/dev/null
+
+) >>"$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/deb-split.at:15"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:23:
+# Test splitting a package (in 10 parts: 9 * 210 KiB B + 158 KiB)
+dpkg-split -S 210 -s pkg-split.deb pkg-split-part
+for p in \$(seq 10); do
+ test -f pkg-split-part.\${p}of10.deb
+done
+"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "deb-split.at:23"
+( $at_check_trace;
+# Test splitting a package (in 10 parts: 9 * 210 KiB B + 158 KiB)
+dpkg-split -S 210 -s pkg-split.deb pkg-split-part
+for p in $(seq 10); do
+ test -f pkg-split-part.${p}of10.deb
+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"; printf "%s\n" "Splitting package pkg-split into 10 parts: 1 2 3 4 5 6 7 8 9 10 done
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:23"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+DEB_SPLIT_MD5SUM=1684b6cdb72bf035ccafd653f307d3da
+DEB_SPLIT_LENGTH=2109632
+DEB_SPLIT_PART_LENGTH=214016
+DEB_SPLIT_PART_SIZE=214222
+DEB_SPLIT_LAST_LENGTH=183488
+DEB_SPLIT_LAST_SIZE=183694
+
+DEB_SPLIT_PART_SIZE_VERSION=$((DEB_SPLIT_PART_SIZE + 2))
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:41:
+# Test debian-split with 2.x version
+cp pkg-split-part.1of10.deb pkg-split-part-version-2x.deb
+ar x pkg-split-part-version-2x.deb debian-split
+sed -e '1c2.999' debian-split >debian-split.new
+mv debian-split.new debian-split
+ar rc pkg-split-part-version-2x.deb debian-split
+ar t pkg-split-part-version-2x.deb
+dpkg-split -I pkg-split-part-version-2x.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:41"
+( $at_check_trace;
+# Test debian-split with 2.x version
+cp pkg-split-part.1of10.deb pkg-split-part-version-2x.deb
+ar x pkg-split-part-version-2x.deb debian-split
+sed -e '1c2.999' debian-split >debian-split.new
+mv debian-split.new debian-split
+ar rc pkg-split-part-version-2x.deb debian-split
+ar t pkg-split-part-version-2x.deb
+dpkg-split -I pkg-split-part-version-2x.deb
+
+) >>"$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"; printf "%s\n" "debian-split
+data.1
+pkg-split-part-version-2x.deb:
+ Part format version: 2.999
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 1/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 0 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE_VERSION bytes
+
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:41"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+DEB_SPLIT_PART_SIZE_MAGIC_EXTRA=$((DEB_SPLIT_PART_SIZE + 10))
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:69:
+# Test debian-split with extra lines
+cp pkg-split-part.1of10.deb pkg-split-part-magic-extra.deb
+ar x pkg-split-part-magic-extra.deb debian-split
+echo \"extra line\" >>debian-split
+ar rc pkg-split-part-magic-extra.deb debian-split
+ar t pkg-split-part-magic-extra.deb
+dpkg-split -I pkg-split-part-magic-extra.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:69"
+( $at_check_trace;
+# Test debian-split with extra lines
+cp pkg-split-part.1of10.deb pkg-split-part-magic-extra.deb
+ar x pkg-split-part-magic-extra.deb debian-split
+echo "extra line" >>debian-split
+ar rc pkg-split-part-magic-extra.deb debian-split
+ar t pkg-split-part-magic-extra.deb
+dpkg-split -I pkg-split-part-magic-extra.deb
+
+) >>"$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"; printf "%s\n" "debian-split
+data.1
+pkg-split-part-magic-extra.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 1/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 0 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE_MAGIC_EXTRA bytes
+
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:94:
+# Test missing debian-split
+cp pkg-split-part.1of10.deb pkg-split-part-missing-magic.deb
+ar d pkg-split-part-missing-magic.deb debian-split
+ar t pkg-split-part-missing-magic.deb
+dpkg-split -I pkg-split-part-missing-magic.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:94"
+( $at_check_trace;
+# Test missing debian-split
+cp pkg-split-part.1of10.deb pkg-split-part-missing-magic.deb
+ar d pkg-split-part-missing-magic.deb debian-split
+ar t pkg-split-part-missing-magic.deb
+dpkg-split -I pkg-split-part-missing-magic.deb
+
+) >>"$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"; printf "%s\n" "data.1
+file 'pkg-split-part-missing-magic.deb' is not an archive part
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:94"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:104:
+# Test missing data part member
+cp pkg-split-part.1of10.deb pkg-split-part-missing-data.deb
+ar d pkg-split-part-missing-data.deb data.1
+ar t pkg-split-part-missing-data.deb
+dpkg-split -I pkg-split-part-missing-data.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:104"
+( $at_check_trace;
+# Test missing data part member
+cp pkg-split-part.1of10.deb pkg-split-part-missing-data.deb
+ar d pkg-split-part-missing-data.deb data.1
+ar t pkg-split-part-missing-data.deb
+dpkg-split -I pkg-split-part-missing-data.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-split: error: unexpected end of file in reading data part member ar header in pkg-split-part-missing-data.deb
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-split
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-split.at:104"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:114:
+# Test duplicate debian-split member
+cp pkg-split-part.1of10.deb pkg-split-part-duplicate-magic.deb
+ar x pkg-split-part-duplicate-magic.deb debian-split
+ar ra debian-split pkg-split-part-duplicate-magic.deb debian-split debian-split
+ar t pkg-split-part-duplicate-magic.deb
+dpkg-split -I pkg-split-part-duplicate-magic.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:114"
+( $at_check_trace;
+# Test duplicate debian-split member
+cp pkg-split-part.1of10.deb pkg-split-part-duplicate-magic.deb
+ar x pkg-split-part-duplicate-magic.deb debian-split
+ar ra debian-split pkg-split-part-duplicate-magic.deb debian-split debian-split
+ar t pkg-split-part-duplicate-magic.deb
+dpkg-split -I pkg-split-part-duplicate-magic.deb
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "dpkg-split: error: file 'pkg-split-part-duplicate-magic.deb' is corrupt - second member is not data member
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; printf "%s\n" "debian-split
+debian-split
+data.1
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/deb-split.at:114"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:127:
+# Test unknown extra member
+cp pkg-split-part.1of10.deb pkg-split-part-extra-member.deb
+echo \"some content\" >unknown
+ar q pkg-split-part-extra-member.deb unknown
+ar t pkg-split-part-extra-member.deb
+dpkg-split -I pkg-split-part-extra-member.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:127"
+( $at_check_trace;
+# Test unknown extra member
+cp pkg-split-part.1of10.deb pkg-split-part-extra-member.deb
+echo "some content" >unknown
+ar q pkg-split-part-extra-member.deb unknown
+ar t pkg-split-part-extra-member.deb
+dpkg-split -I pkg-split-part-extra-member.deb
+
+) >>"$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"; printf "%s\n" "debian-split
+data.1
+unknown
+pkg-split-part-extra-member.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 1/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 0 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE bytes
+
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:127"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:152:
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.1of10.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:152"
+( $at_check_trace;
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.1of10.deb
+
+) >>"$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"; printf "%s\n" "pkg-split-part.1of10.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 1/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 0 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE bytes
+
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:152"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:169:
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.2of10.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:169"
+( $at_check_trace;
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.2of10.deb
+
+) >>"$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"; printf "%s\n" "pkg-split-part.2of10.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 2/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 214016 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE bytes
+
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:169"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:186:
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.9of10.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:186"
+( $at_check_trace;
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.9of10.deb
+
+) >>"$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"; printf "%s\n" "pkg-split-part.9of10.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 9/10
+ Part length: $DEB_SPLIT_PART_LENGTH bytes
+ Part offset: 1712128 bytes
+ Part file size (used portion): $DEB_SPLIT_PART_SIZE bytes
+
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:186"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:203:
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.10of10.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:203"
+( $at_check_trace;
+# Test getting information about the split parts (parsing verification)
+dpkg-split -I pkg-split-part.10of10.deb
+
+) >>"$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"; printf "%s\n" "pkg-split-part.10of10.deb:
+ Part format version: 2.1
+ Part of package: pkg-split
+ ... version: 0.0-1
+ ... architecture: all
+ ... MD5 checksum: $DEB_SPLIT_MD5SUM
+ ... length: $DEB_SPLIT_LENGTH bytes
+ ... split every: $DEB_SPLIT_PART_LENGTH bytes
+ Part number: 10/10
+ Part length: $DEB_SPLIT_LAST_LENGTH bytes
+ Part offset: 1926144 bytes
+ Part file size (used portion): $DEB_SPLIT_LAST_SIZE bytes
+
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:203"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/deb-split.at:221:
+# Test joining the split parts back together
+dpkg-split -o pkg-joined.deb -j pkg-split-part.*.deb
+cmp pkg-split.deb pkg-joined.deb
+"
+at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:221"
+( $at_check_trace;
+# Test joining the split parts back together
+dpkg-split -o pkg-joined.deb -j pkg-split-part.*.deb
+cmp pkg-split.deb pkg-joined.deb
+
+) >>"$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"; printf "%s\n" "Putting package pkg-split together from 10 parts: 1 2 3 4 5 6 7 8 9 10 done
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/deb-split.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_7
+#AT_START_8
+at_fn_group_banner 8 'realpath.at:1' \
+ "dpkg-realpath options" " " 3
+at_xfail=no
+(
+ printf "%s\n" "8. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:4: dpkg-realpath --version"
+at_fn_check_prepare_trace "realpath.at:4"
+( $at_check_trace; dpkg-realpath --version
+) >>"$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/realpath.at:4"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:5: dpkg-realpath --help"
+at_fn_check_prepare_trace "realpath.at:5"
+( $at_check_trace; dpkg-realpath --help
+) >>"$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/realpath.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_8
+#AT_START_9
+at_fn_group_banner 9 'realpath.at:9' \
+ "dpkg-realpath path resolving" " " 3
+at_xfail=no
+(
+ printf "%s\n" "9. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+mkdir -p aa/bb/cc
+mkdir -p zz/yy/xx
+mkdir -p usr/bin
+: >aa/bb/cc/file
+ln -sfT aa/bb/cc/file zz/yy/xx/symlink-rel
+ln -sfT /aa/bb/cc/file zz/yy/xx/symlink-abs
+: >usr/bin/a-shell
+ln -sfT /usr/bin/a-shell usr/bin/sh
+
+tmpdir="$(pwd)"
+export DPKG_ROOT=
+
+# Relative paths
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:25: dpkg-realpath aa/bb/cc"
+at_fn_check_prepare_trace "realpath.at:25"
+( $at_check_trace; dpkg-realpath aa/bb/cc
+) >>"$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"; printf "%s\n" "$tmpdir/aa/bb/cc
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:25"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:28: dpkg-realpath zz/yy/xx"
+at_fn_check_prepare_trace "realpath.at:28"
+( $at_check_trace; dpkg-realpath zz/yy/xx
+) >>"$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"; printf "%s\n" "$tmpdir/zz/yy/xx
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:30: dpkg-realpath usr/bin"
+at_fn_check_prepare_trace "realpath.at:30"
+( $at_check_trace; dpkg-realpath usr/bin
+) >>"$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"; printf "%s\n" "$tmpdir/usr/bin
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:32: dpkg-realpath aa/bb/cc/file"
+at_fn_check_prepare_trace "realpath.at:32"
+( $at_check_trace; dpkg-realpath aa/bb/cc/file
+) >>"$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"; printf "%s\n" "$tmpdir/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:34: dpkg-realpath zz/yy/xx/symlink-rel"
+at_fn_check_prepare_trace "realpath.at:34"
+( $at_check_trace; dpkg-realpath zz/yy/xx/symlink-rel
+) >>"$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"; printf "%s\n" "$tmpdir/zz/yy/xx/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:37: dpkg-realpath zz/yy/xx/symlink-abs"
+at_fn_check_prepare_trace "realpath.at:37"
+( $at_check_trace; dpkg-realpath zz/yy/xx/symlink-abs
+) >>"$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"; printf "%s\n" "/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:39: dpkg-realpath usr/bin/a-shell"
+at_fn_check_prepare_trace "realpath.at:39"
+( $at_check_trace; dpkg-realpath usr/bin/a-shell
+) >>"$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"; printf "%s\n" "$tmpdir/usr/bin/a-shell
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:42: dpkg-realpath usr/bin/sh"
+at_fn_check_prepare_trace "realpath.at:42"
+( $at_check_trace; dpkg-realpath usr/bin/sh
+) >>"$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"; printf "%s\n" "/usr/bin/a-shell
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:42"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# Absolute paths
+cd /
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:47: dpkg-realpath \"\$tmpdir/aa/bb/cc\""
+at_fn_check_prepare_dynamic "dpkg-realpath \"$tmpdir/aa/bb/cc\"" "realpath.at:47"
+( $at_check_trace; dpkg-realpath "$tmpdir/aa/bb/cc"
+) >>"$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"; printf "%s\n" "$tmpdir/aa/bb/cc
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:47"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:49: dpkg-realpath \"\$tmpdir/zz/yy/xx\""
+at_fn_check_prepare_dynamic "dpkg-realpath \"$tmpdir/zz/yy/xx\"" "realpath.at:49"
+( $at_check_trace; dpkg-realpath "$tmpdir/zz/yy/xx"
+) >>"$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"; printf "%s\n" "$tmpdir/zz/yy/xx
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:49"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:51: dpkg-realpath \"\$tmpdir/usr/bin\""
+at_fn_check_prepare_dynamic "dpkg-realpath \"$tmpdir/usr/bin\"" "realpath.at:51"
+( $at_check_trace; dpkg-realpath "$tmpdir/usr/bin"
+) >>"$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"; printf "%s\n" "$tmpdir/usr/bin
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:51"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:53: dpkg-realpath \"\$tmpdir/aa/bb/cc/file\""
+at_fn_check_prepare_dynamic "dpkg-realpath \"$tmpdir/aa/bb/cc/file\"" "realpath.at:53"
+( $at_check_trace; dpkg-realpath "$tmpdir/aa/bb/cc/file"
+) >>"$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"; printf "%s\n" "$tmpdir/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:53"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:56: dpkg-realpath \"\$tmpdir/zz/yy/xx/symlink-rel\""
+at_fn_check_prepare_dynamic "dpkg-realpath \"$tmpdir/zz/yy/xx/symlink-rel\"" "realpath.at:56"
+( $at_check_trace; dpkg-realpath "$tmpdir/zz/yy/xx/symlink-rel"
+) >>"$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"; printf "%s\n" "$tmpdir/zz/yy/xx/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:56"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:59: dpkg-realpath \"\$tmpdir/zz/yy/xx/symlink-abs\""
+at_fn_check_prepare_dynamic "dpkg-realpath \"$tmpdir/zz/yy/xx/symlink-abs\"" "realpath.at:59"
+( $at_check_trace; dpkg-realpath "$tmpdir/zz/yy/xx/symlink-abs"
+) >>"$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"; printf "%s\n" "/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:59"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:61: dpkg-realpath \"\$tmpdir/usr/bin/a-shell\""
+at_fn_check_prepare_dynamic "dpkg-realpath \"$tmpdir/usr/bin/a-shell\"" "realpath.at:61"
+( $at_check_trace; dpkg-realpath "$tmpdir/usr/bin/a-shell"
+) >>"$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"; printf "%s\n" "$tmpdir/usr/bin/a-shell
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:61"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:64: dpkg-realpath \"\$tmpdir/usr/bin/sh\""
+at_fn_check_prepare_dynamic "dpkg-realpath \"$tmpdir/usr/bin/sh\"" "realpath.at:64"
+( $at_check_trace; dpkg-realpath "$tmpdir/usr/bin/sh"
+) >>"$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"; printf "%s\n" "/usr/bin/a-shell
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:64"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# Chrooted paths
+DPKG_ROOT="$tmpdir"
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:69: dpkg-realpath /aa/bb/cc"
+at_fn_check_prepare_trace "realpath.at:69"
+( $at_check_trace; dpkg-realpath /aa/bb/cc
+) >>"$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"; printf "%s\n" "/aa/bb/cc
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:71: dpkg-realpath /zz/yy/xx"
+at_fn_check_prepare_trace "realpath.at:71"
+( $at_check_trace; dpkg-realpath /zz/yy/xx
+) >>"$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"; printf "%s\n" "/zz/yy/xx
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:71"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:73: dpkg-realpath /usr/bin"
+at_fn_check_prepare_trace "realpath.at:73"
+( $at_check_trace; dpkg-realpath /usr/bin
+) >>"$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"; printf "%s\n" "/usr/bin
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:73"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:75: dpkg-realpath /aa/bb/cc/file"
+at_fn_check_prepare_trace "realpath.at:75"
+( $at_check_trace; dpkg-realpath /aa/bb/cc/file
+) >>"$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"; printf "%s\n" "/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:75"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:77: dpkg-realpath /zz/yy/xx/symlink-rel"
+at_fn_check_prepare_trace "realpath.at:77"
+( $at_check_trace; dpkg-realpath /zz/yy/xx/symlink-rel
+) >>"$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"; printf "%s\n" "/zz/yy/xx/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:77"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:79: dpkg-realpath /zz/yy/xx/symlink-abs"
+at_fn_check_prepare_trace "realpath.at:79"
+( $at_check_trace; dpkg-realpath /zz/yy/xx/symlink-abs
+) >>"$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"; printf "%s\n" "/aa/bb/cc/file
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:79"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:81: dpkg-realpath /usr/bin/a-shell"
+at_fn_check_prepare_trace "realpath.at:81"
+( $at_check_trace; dpkg-realpath /usr/bin/a-shell
+) >>"$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"; printf "%s\n" "/usr/bin/a-shell
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.at:81"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/realpath.at:83: dpkg-realpath /usr/bin/sh"
+at_fn_check_prepare_trace "realpath.at:83"
+( $at_check_trace; dpkg-realpath /usr/bin/sh
+) >>"$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"; printf "%s\n" "/usr/bin/a-shell
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/realpath.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_9
+#AT_START_10
+at_fn_group_banner 10 'divert.at:1' \
+ "dpkg-divert options" " " 4
+at_xfail=no
+(
+ printf "%s\n" "10. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst//testdir"
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:6: dpkg-divert --version"
+at_fn_check_prepare_trace "divert.at:6"
+( $at_check_trace; dpkg-divert --version
+) >>"$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/divert.at:6"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:7: dpkg-divert --help"
+at_fn_check_prepare_trace "divert.at:7"
+( $at_check_trace; dpkg-divert --help
+) >>"$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/divert.at:7"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:9: dpkg-divert --admindir"
+at_fn_check_prepare_trace "divert.at:9"
+( $at_check_trace; dpkg-divert --admindir
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:9"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:10: grep -qE '(takes a value|needs.*argument)' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:10"
+( $at_check_trace; grep -qE '(takes a value|needs.*argument)' stderr
+) >>"$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/divert.at:10"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:12: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --jachsmitbju"
+at_fn_check_prepare_trace "divert.at:12"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --jachsmitbju
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:12"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:13: grep -q 'unknown option' stderr"
+at_fn_check_prepare_trace "divert.at:13"
+( $at_check_trace; grep -q 'unknown option' stderr
+) >>"$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/divert.at:13"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:15: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add --remove"
+at_fn_check_prepare_trace "divert.at:15"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add --remove
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:15"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:16: grep -qE '(conflicting|two).*remove.*add.*' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:16"
+( $at_check_trace; grep -qE '(conflicting|two).*remove.*add.*' stderr
+) >>"$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/divert.at:16"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:18: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert"
+at_fn_check_prepare_trace "divert.at:18"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:18"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:19: grep -qE '(takes a value|needs.*argument)' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:19"
+( $at_check_trace; grep -qE '(takes a value|needs.*argument)' stderr
+) >>"$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/divert.at:19"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:21: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert foo"
+at_fn_check_prepare_trace "divert.at:21"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:21"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:22: grep -q 'absolute' stderr"
+at_fn_check_prepare_trace "divert.at:22"
+( $at_check_trace; grep -q 'absolute' stderr
+) >>"$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/divert.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:24: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert \"/foo
+bar\""
+at_fn_check_prepare_notrace 'an embedded newline' "divert.at:24"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert "/foo
+bar"
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:26: grep -q 'newline' stderr"
+at_fn_check_prepare_trace "divert.at:26"
+( $at_check_trace; grep -q 'newline' stderr
+) >>"$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/divert.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:28: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package"
+at_fn_check_prepare_trace "divert.at:28"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:29: grep -qE '(takes a value|needs.*argument)' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:29"
+( $at_check_trace; grep -qE '(takes a value|needs.*argument)' stderr
+) >>"$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/divert.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:31: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package \"foo
+bar\""
+at_fn_check_prepare_notrace 'an embedded newline' "divert.at:31"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package "foo
+bar"
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:33: grep -q 'newline' stderr"
+at_fn_check_prepare_trace "divert.at:33"
+( $at_check_trace; grep -q 'newline' stderr
+) >>"$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/divert.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:35: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add"
+at_fn_check_prepare_trace "divert.at:35"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:35"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:36: grep -q 'needs a single argument' stderr"
+at_fn_check_prepare_trace "divert.at:36"
+( $at_check_trace; grep -q 'needs a single argument' stderr
+) >>"$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/divert.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:38: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add foo"
+at_fn_check_prepare_trace "divert.at:38"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:38"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:39: grep -q 'absolute' stderr"
+at_fn_check_prepare_trace "divert.at:39"
+( $at_check_trace; grep -q 'absolute' stderr
+) >>"$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/divert.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:41: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add \"/foo
+bar\""
+at_fn_check_prepare_notrace 'an embedded newline' "divert.at:41"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add "/foo
+bar"
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:41"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:43: grep -q 'newline' stderr"
+at_fn_check_prepare_trace "divert.at:43"
+( $at_check_trace; grep -q 'newline' stderr
+) >>"$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/divert.at:43"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:45: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add \"/testdir\""
+at_fn_check_prepare_trace "divert.at:45"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add "/testdir"
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:45"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:46: grep -qE 'director(y|ies)' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:46"
+( $at_check_trace; grep -qE 'director(y|ies)' stderr
+) >>"$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/divert.at:46"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:48: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add --divert bar /foo/bar"
+at_fn_check_prepare_trace "divert.at:48"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --add --divert bar /foo/bar
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:48"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:49: grep -q 'absolute' stderr"
+at_fn_check_prepare_trace "divert.at:49"
+( $at_check_trace; grep -q 'absolute' stderr
+) >>"$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/divert.at:49"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:51: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --remove"
+at_fn_check_prepare_trace "divert.at:51"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --remove
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:51"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:52: grep -q 'needs a single argument' stderr"
+at_fn_check_prepare_trace "divert.at:52"
+( $at_check_trace; grep -q 'needs a single argument' stderr
+) >>"$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/divert.at:52"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:54: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --remove foo"
+at_fn_check_prepare_trace "divert.at:54"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --remove foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:54"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:55: grep -q 'absolute' stderr"
+at_fn_check_prepare_trace "divert.at:55"
+( $at_check_trace; grep -q 'absolute' stderr
+) >>"$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/divert.at:55"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:57: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --remove \"/foo
+bar\""
+at_fn_check_prepare_notrace 'an embedded newline' "divert.at:57"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --remove "/foo
+bar"
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:57"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:59: grep -q 'newline' stderr"
+at_fn_check_prepare_trace "divert.at:59"
+( $at_check_trace; grep -q 'newline' stderr
+) >>"$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/divert.at:59"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:61: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage"
+at_fn_check_prepare_trace "divert.at:61"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:61"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:62: grep -q 'needs a single argument' stderr"
+at_fn_check_prepare_trace "divert.at:62"
+( $at_check_trace; grep -q 'needs a single argument' stderr
+) >>"$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/divert.at:62"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:64: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage foo"
+at_fn_check_prepare_trace "divert.at:64"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:64"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:65: grep -q 'absolute' stderr"
+at_fn_check_prepare_trace "divert.at:65"
+( $at_check_trace; grep -q 'absolute' stderr
+) >>"$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/divert.at:65"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:67: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage \"/foo
+bar\""
+at_fn_check_prepare_notrace 'an embedded newline' "divert.at:67"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage "/foo
+bar"
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:67"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:69: grep -q 'newline' stderr"
+at_fn_check_prepare_trace "divert.at:69"
+( $at_check_trace; grep -q 'newline' stderr
+) >>"$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/divert.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:71: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename"
+at_fn_check_prepare_trace "divert.at:71"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:71"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:72: grep -q 'needs a single argument' stderr"
+at_fn_check_prepare_trace "divert.at:72"
+( $at_check_trace; grep -q 'needs a single argument' stderr
+) >>"$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/divert.at:72"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:74: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename foo"
+at_fn_check_prepare_trace "divert.at:74"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:74"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:75: grep -q 'absolute' stderr"
+at_fn_check_prepare_trace "divert.at:75"
+( $at_check_trace; grep -q 'absolute' stderr
+) >>"$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/divert.at:75"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:77: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename \"/foo
+bar\""
+at_fn_check_prepare_notrace 'an embedded newline' "divert.at:77"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename "/foo
+bar"
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:77"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:79: grep -q 'newline' stderr"
+at_fn_check_prepare_trace "divert.at:79"
+( $at_check_trace; grep -q 'newline' stderr
+) >>"$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/divert.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 'divert.at:83' \
+ "dpkg-divert query (empty db)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "11. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:88: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list"
+at_fn_check_prepare_trace "divert.at:88"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list
+) >>"$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/divert.at:88"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:89: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '*'"
+at_fn_check_prepare_trace "divert.at:89"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '*'
+) >>"$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/divert.at:89"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:90: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list 'baz'"
+at_fn_check_prepare_trace "divert.at:90"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list 'baz'
+) >>"$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/divert.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_11
+#AT_START_12
+at_fn_group_banner 12 'divert.at:94' \
+ "dpkg-divert query (list)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "12. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ cat >dpkgdb/diversions <<'_ATEOF'
+/bin/sh
+/bin/sh.distrib
+dash
+/usr/share/man/man1/sh.1.gz
+/usr/share/man/man1/sh.distrib.1.gz
+dash
+/usr/bin/nm
+/usr/bin/nm.single
+binutils-multiarch
+_ATEOF
+
+
+
+
+
+
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:118: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list"
+at_fn_check_prepare_trace "divert.at:118"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list
+) >>"$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"; printf "%s\n" "diversion of /usr/bin/nm to /usr/bin/nm.single by binutils-multiarch
+diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash
+diversion of /bin/sh to /bin/sh.distrib by dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:118"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:119: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '*'"
+at_fn_check_prepare_trace "divert.at:119"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '*'
+) >>"$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"; printf "%s\n" "diversion of /usr/bin/nm to /usr/bin/nm.single by binutils-multiarch
+diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash
+diversion of /bin/sh to /bin/sh.distrib by dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:119"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:120: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list ''"
+at_fn_check_prepare_trace "divert.at:120"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list ''
+) >>"$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/divert.at:120"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:122: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '???????'"
+at_fn_check_prepare_trace "divert.at:122"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '???????'
+) >>"$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"; printf "%s\n" "diversion of /bin/sh to /bin/sh.distrib by dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:122"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:123: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '*/sh'"
+at_fn_check_prepare_trace "divert.at:123"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '*/sh'
+) >>"$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"; printf "%s\n" "diversion of /bin/sh to /bin/sh.distrib by dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:123"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:124: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '/bin/*'"
+at_fn_check_prepare_trace "divert.at:124"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list '/bin/*'
+) >>"$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"; printf "%s\n" "diversion of /bin/sh to /bin/sh.distrib by dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:124"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:125: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list binutils-multiarch"
+at_fn_check_prepare_trace "divert.at:125"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list binutils-multiarch
+) >>"$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"; printf "%s\n" "diversion of /usr/bin/nm to /usr/bin/nm.single by binutils-multiarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:125"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:126: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list /bin/sh"
+at_fn_check_prepare_trace "divert.at:126"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list /bin/sh
+) >>"$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"; printf "%s\n" "diversion of /bin/sh to /bin/sh.distrib by dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:126"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:127: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list -- /bin/sh"
+at_fn_check_prepare_trace "divert.at:127"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list -- /bin/sh
+) >>"$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"; printf "%s\n" "diversion of /bin/sh to /bin/sh.distrib by dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:127"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:128: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list /usr/bin/nm.single"
+at_fn_check_prepare_trace "divert.at:128"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list /usr/bin/nm.single
+) >>"$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"; printf "%s\n" "diversion of /usr/bin/nm to /usr/bin/nm.single by binutils-multiarch
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:128"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:129: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list /bin/sh /usr/share/man/man1/sh.1.gz"
+at_fn_check_prepare_trace "divert.at:129"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list /bin/sh /usr/share/man/man1/sh.1.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"; printf "%s\n" "diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash
+diversion of /bin/sh to /bin/sh.distrib by dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.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_12
+#AT_START_13
+at_fn_group_banner 13 'divert.at:134' \
+ "dpkg-divert query (listpackage + truename)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "13. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ cat >dpkgdb/diversions <<'_ATEOF'
+/bin/sh
+/bin/sh.distrib
+dash
+/bin/true
+/bin/true.coreutils
+:
+_ATEOF
+
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:145: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage /bin/sh"
+at_fn_check_prepare_trace "divert.at:145"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage /bin/sh
+) >>"$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"; printf "%s\n" "dash
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:145"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:147: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage /bin/true"
+at_fn_check_prepare_trace "divert.at:147"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage /bin/true
+) >>"$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"; printf "%s\n" "LOCAL
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:147"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:149: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage /bin/false"
+at_fn_check_prepare_trace "divert.at:149"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --listpackage /bin/false
+) >>"$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/divert.at:149"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:151: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename /bin/sh"
+at_fn_check_prepare_trace "divert.at:151"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename /bin/sh
+) >>"$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"; printf "%s\n" "/bin/sh.distrib
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:151"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:153: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename /bin/sh.distrib"
+at_fn_check_prepare_trace "divert.at:153"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename /bin/sh.distrib
+) >>"$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"; printf "%s\n" "/bin/sh.distrib
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:153"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:155: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename /bin/something"
+at_fn_check_prepare_trace "divert.at:155"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --truename /bin/something
+) >>"$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"; printf "%s\n" "/bin/something
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/divert.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_13
+#AT_START_14
+at_fn_group_banner 14 'divert.at:160' \
+ "dpkg-divert add (local rename)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "14. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:170: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:170"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:170"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:171: grep -q \"Adding.*local.*diversion.* /testdir/foo.* /testdir/foo.distrib\" stdout"
+at_fn_check_prepare_trace "divert.at:171"
+( $at_check_trace; grep -q "Adding.*local.*diversion.* /testdir/foo.* /testdir/foo.distrib" stdout
+) >>"$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/divert.at:171"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:172: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:172"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:172"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:173: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:173"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:173"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:174: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:174"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:174"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:178' \
+ "dpkg-divert add (local no-rename)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "15. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:188: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --no-rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:188"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --no-rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:188"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:189: grep -q \"Adding.*local.*diversion.* /testdir/foo.* /testdir/foo.distrib\" stdout"
+at_fn_check_prepare_trace "divert.at:189"
+( $at_check_trace; grep -q "Adding.*local.*diversion.* /testdir/foo.* /testdir/foo.distrib" stdout
+) >>"$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/divert.at:189"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:190: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:190"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:190"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:191: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:191"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:191"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:192: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:192"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.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_15
+#AT_START_16
+at_fn_group_banner 16 'divert.at:196' \
+ "dpkg-divert add (rename quiet)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "16. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:206: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:206"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --add /testdir/foo
+) >>"$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/divert.at:206"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:207: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:207"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:207"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:208: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:208"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:208"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:209: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:209"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:209"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:213' \
+ "dpkg-divert add (test rename quiet)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "17. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:219: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --test /testdir/foo"
+at_fn_check_prepare_trace "divert.at:219"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --test /testdir/foo
+) >>"$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/divert.at:219"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:220: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:220"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:220"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:221: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:221"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:221"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:222: cat dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:222"
+( $at_check_trace; cat dpkgdb/diversions
+) >>"$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/divert.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_17
+#AT_START_18
+at_fn_group_banner 18 'divert.at:226' \
+ "dpkg-divert add (rename missing quiet)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "18. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst//testdir"
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:236: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename /testdir/foo"
+at_fn_check_prepare_trace "divert.at:236"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename /testdir/foo
+) >>"$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/divert.at:236"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:237: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:237"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:237"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:238: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:238"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:238"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:239: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:239"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.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_18
+#AT_START_19
+at_fn_group_banner 19 'divert.at:243' \
+ "dpkg-divert add (local rename quiet)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "19. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:253: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --local --rename /testdir/foo"
+at_fn_check_prepare_trace "divert.at:253"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --local --rename /testdir/foo
+) >>"$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/divert.at:253"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:254: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:254"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:254"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:255: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:255"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:255"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:256: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:256"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:256"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:260' \
+ "dpkg-divert add (package rename quiet)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "20. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+bash
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:269: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --package bash /testdir/foo"
+at_fn_check_prepare_trace "divert.at:269"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --package bash /testdir/foo
+) >>"$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/divert.at:269"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:270: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:270"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:270"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:274' \
+ "dpkg-divert add (rename self-link)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "21. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ ln "dpkginst//testdir/foo" "dpkginst//testdir/foo.distrib"
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:285: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename /testdir/foo"
+at_fn_check_prepare_trace "divert.at:285"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename /testdir/foo
+) >>"$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/divert.at:285"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:286: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:286"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:286"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:287: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:287"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:287"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:288: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:288"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:288"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:292' \
+ "dpkg-divert add (rename other-file)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "22. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo.distrib')"
+ : >dpkginst//testdir/foo.distrib
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:299: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename /testdir/foo"
+at_fn_check_prepare_trace "divert.at:299"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:299"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:300: grep -q 'error: rename involves overwriting' stderr"
+at_fn_check_prepare_trace "divert.at:300"
+( $at_check_trace; grep -q 'error: rename involves overwriting' stderr
+) >>"$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/divert.at:300"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:301: cat dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:301"
+( $at_check_trace; cat dpkgdb/diversions
+) >>"$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/divert.at:301"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:305' \
+ "dpkg-divert add (rename missing dir)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "23. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/zoo/foo
+/testdir/zoo/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:314: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --add /testdir/zoo/foo"
+at_fn_check_prepare_trace "divert.at:314"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --add /testdir/zoo/foo
+) >>"$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/divert.at:314"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:315: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:315"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.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_23
+#AT_START_24
+at_fn_group_banner 24 'divert.at:319' \
+ "dpkg-divert add (rename read-only dir)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "24. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+printf "%s\n" "divert.at:322" >"$at_check_line_file"
+(test -n "$FAKEROOTKEY" || test "$(id -u)" = 0) \
+ && at_fn_check_skip 77 "$at_srcdir/divert.at:322"
+
+
+ mkdir -p "dpkginst//testdir/rodir"
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/rodir/foo')"
+ : >dpkginst//testdir/rodir/foo
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/bar')"
+ : >dpkginst//testdir/bar
+
+
+ chmod 500 "dpkginst//testdir/rodir"
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:330: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --add /testdir/rodir/foo"
+at_fn_check_prepare_trace "divert.at:330"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --add /testdir/rodir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:330"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:332: grep -q 'error: .* Permission denied' stderr"
+at_fn_check_prepare_trace "divert.at:332"
+( $at_check_trace; grep -q 'error: .* Permission denied' stderr
+) >>"$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/divert.at:332"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:334: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --divert /testdir/rodir/bar --add /testdir/bar"
+at_fn_check_prepare_trace "divert.at:334"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --divert /testdir/rodir/bar --add /testdir/bar
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:334"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:336: grep -q 'error: .* Permission denied' stderr"
+at_fn_check_prepare_trace "divert.at:336"
+( $at_check_trace; grep -q 'error: .* Permission denied' stderr
+) >>"$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/divert.at:336"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:338: cat dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:338"
+( $at_check_trace; cat dpkgdb/diversions
+) >>"$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/divert.at:338"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ chmod 755 "dpkginst//testdir/rodir"
+
+ set +x
+ $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 'divert.at:343' \
+ "dpkg-divert add (rename no-access dir)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "25. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+printf "%s\n" "divert.at:346" >"$at_check_line_file"
+(test -n "$FAKEROOTKEY" || test "$(id -u)" = 0) \
+ && at_fn_check_skip 77 "$at_srcdir/divert.at:346"
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ mkdir -p "dpkginst//testdir/nadir"
+
+
+ chmod 000 "dpkginst//testdir/nadir"
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:353: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/nadir/foo"
+at_fn_check_prepare_trace "divert.at:353"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/nadir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:353"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:354: grep -q 'error: .* Permission denied' stderr"
+at_fn_check_prepare_trace "divert.at:354"
+( $at_check_trace; grep -q 'error: .* Permission denied' stderr
+) >>"$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/divert.at:354"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:356: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --divert /testdir/nadir/foo --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:356"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --divert /testdir/nadir/foo --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:356"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:358: grep -q 'error: .* Permission denied' stderr"
+at_fn_check_prepare_trace "divert.at:358"
+( $at_check_trace; grep -q 'error: .* Permission denied' stderr
+) >>"$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/divert.at:358"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:360: cat dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:360"
+( $at_check_trace; cat dpkgdb/diversions
+) >>"$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/divert.at:360"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# On FreeBSD «rm -rf» cannot traverse a directory with mode 000.
+rmdir dpkginst/testdir/nadir
+
+ set +x
+ $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 'divert.at:367' \
+ "dpkg-divert add second diversion" " " 4
+at_xfail=no
+(
+ printf "%s\n" "26. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst//testdir"
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:373: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:373"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:373"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:374: grep -q 'Adding' stdout"
+at_fn_check_prepare_trace "divert.at:374"
+( $at_check_trace; grep -q 'Adding' stdout
+) >>"$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/divert.at:374"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:376: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:376"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:376"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:377: grep -q 'Leaving' stdout"
+at_fn_check_prepare_trace "divert.at:377"
+( $at_check_trace; grep -q 'Leaving' stdout
+) >>"$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/divert.at:377"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:379: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:379"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:379"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:380: grep -q 'Leaving' stdout"
+at_fn_check_prepare_trace "divert.at:380"
+( $at_check_trace; grep -q 'Leaving' stdout
+) >>"$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/divert.at:380"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:382: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert /testdir/foo.bar /testdir/foo"
+at_fn_check_prepare_trace "divert.at:382"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert /testdir/foo.bar /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:382"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:384: grep -q 'clashes' stderr"
+at_fn_check_prepare_trace "divert.at:384"
+( $at_check_trace; grep -q 'clashes' stderr
+) >>"$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/divert.at:384"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:386: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package foobar /testdir/foo"
+at_fn_check_prepare_trace "divert.at:386"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package foobar /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:386"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:387: grep -q 'clashes' stderr"
+at_fn_check_prepare_trace "divert.at:387"
+( $at_check_trace; grep -q 'clashes' stderr
+) >>"$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/divert.at:387"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:389: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert /testdir/foo.distrib /testdir/bar"
+at_fn_check_prepare_trace "divert.at:389"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert /testdir/foo.distrib /testdir/bar
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:389"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:391: grep -q 'clashes' stderr"
+at_fn_check_prepare_trace "divert.at:391"
+( $at_check_trace; grep -q 'clashes' stderr
+) >>"$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/divert.at:391"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:393: dpkg-divert --admindir=dpkgdb --instdir=dpkginst /testdir/foo.distrib"
+at_fn_check_prepare_trace "divert.at:393"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst /testdir/foo.distrib
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:393"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:394: grep -q 'clashes' stderr"
+at_fn_check_prepare_trace "divert.at:394"
+( $at_check_trace; grep -q 'clashes' stderr
+) >>"$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/divert.at:394"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:396: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert /testdir/foo /testdir/bar"
+at_fn_check_prepare_trace "divert.at:396"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert /testdir/foo /testdir/bar
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:396"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:397: grep -q 'clashes' stderr"
+at_fn_check_prepare_trace "divert.at:397"
+( $at_check_trace; grep -q 'clashes' stderr
+) >>"$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/divert.at:397"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:401' \
+ "dpkg-divert add third diversion" " " 4
+at_xfail=no
+(
+ printf "%s\n" "27. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst//testdir"
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:407: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:407"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:407"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:408: grep -q 'Adding' stdout"
+at_fn_check_prepare_trace "divert.at:408"
+( $at_check_trace; grep -q 'Adding' stdout
+) >>"$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/divert.at:408"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:409: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/bar"
+at_fn_check_prepare_trace "divert.at:409"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/bar
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:409"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:410: grep -q 'Adding' stdout"
+at_fn_check_prepare_trace "divert.at:410"
+( $at_check_trace; grep -q 'Adding' stdout
+) >>"$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/divert.at:410"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:412: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:412"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:412"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:413: grep -q 'Leaving' stdout"
+at_fn_check_prepare_trace "divert.at:413"
+( $at_check_trace; grep -q 'Leaving' stdout
+) >>"$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/divert.at:413"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:414: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --package foobar --add /testdir/bar"
+at_fn_check_prepare_trace "divert.at:414"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --package foobar --add /testdir/bar
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:414"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:416: grep -q 'clashes' stderr"
+at_fn_check_prepare_trace "divert.at:416"
+( $at_check_trace; grep -q 'clashes' stderr
+) >>"$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/divert.at:416"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:420' \
+ "dpkg-divert add (file owned by --package)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "28. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+# Only installed packages have their files list considered.
+
+ mkdir -p "dpkgdb"
+ cat >dpkgdb/status <<'_ATEOF'
+Package: coreutils
+Status: install ok installed
+Version: 0
+Architecture: i386
+Maintainer: dummy
+Description: dummy
+_ATEOF
+
+
+
+ mkdir -p "dpkgdb/info"
+ cat >dpkgdb/info/coreutils.list <<'_ATEOF'
+/testdir/foo
+_ATEOF
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+coreutils
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:440: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --package coreutils --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:440"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --package coreutils --add /testdir/foo
+) >>"$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/divert.at:440"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:441: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:441"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:441"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:442: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:442"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:442"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:443: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:443"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:443"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:447' \
+ "dpkg-divert remove (missing)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "29. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:452: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --no-rename --remove /bin/sh"
+at_fn_check_prepare_trace "divert.at:452"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --no-rename --remove /bin/sh
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:452"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:453: grep -q 'No diversion' stdout"
+at_fn_check_prepare_trace "divert.at:453"
+( $at_check_trace; grep -q 'No diversion' stdout
+) >>"$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/divert.at:453"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:455: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --remove /bin/sh"
+at_fn_check_prepare_trace "divert.at:455"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --remove /bin/sh
+) >>"$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/divert.at:455"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:459' \
+ "dpkg-divert remove (divert-to)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "30. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/bar
+/testdir/bar.distrib
+:
+/testdir/baz
+/testdir/baz.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:471: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:471"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/foo
+) >>"$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/divert.at:471"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:472: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/bar"
+at_fn_check_prepare_trace "divert.at:472"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/bar
+) >>"$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/divert.at:472"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:473: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/baz"
+at_fn_check_prepare_trace "divert.at:473"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/baz
+) >>"$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/divert.at:473"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:475: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert /testdir/foo.my --remove /testdir/foo"
+at_fn_check_prepare_trace "divert.at:475"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --divert /testdir/foo.my --remove /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:475"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:477: grep -q 'mismatch on divert-to' stderr"
+at_fn_check_prepare_trace "divert.at:477"
+( $at_check_trace; grep -q 'mismatch on divert-to' stderr
+) >>"$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/divert.at:477"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:479: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package baz --remove /testdir/foo"
+at_fn_check_prepare_trace "divert.at:479"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package baz --remove /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:479"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:480: grep -q 'mismatch on package' stderr"
+at_fn_check_prepare_trace "divert.at:480"
+( $at_check_trace; grep -q 'mismatch on package' stderr
+) >>"$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/divert.at:480"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:482: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package baz --divert /testdir/foo.my --remove /testdir/foo"
+at_fn_check_prepare_trace "divert.at:482"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --package baz --divert /testdir/foo.my --remove /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:482"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:484: grep -qE 'mismatch on (package|divert-to)' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:484"
+( $at_check_trace; grep -qE 'mismatch on (package|divert-to)' stderr
+) >>"$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/divert.at:484"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:486: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --divert /testdir/foo.distrib --remove /testdir/foo"
+at_fn_check_prepare_trace "divert.at:486"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --divert /testdir/foo.distrib --remove /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:486"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:488: grep -qE 'Removing .*/testdir/foo' stdout"
+at_fn_check_prepare_trace "divert.at:488"
+( $at_check_trace; grep -qE 'Removing .*/testdir/foo' stdout
+) >>"$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/divert.at:488"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:490: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:490"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:490"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:494' \
+ "dpkg-divert remove (plain)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "31. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+:
+/testdir/baz
+/testdir/baz.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:506: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:506"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/foo
+) >>"$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/divert.at:506"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:507: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/bar"
+at_fn_check_prepare_trace "divert.at:507"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/bar
+) >>"$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/divert.at:507"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:508: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/baz"
+at_fn_check_prepare_trace "divert.at:508"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --add /testdir/baz
+) >>"$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/divert.at:508"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:510: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --no-rename --remove /testdir/bar"
+at_fn_check_prepare_trace "divert.at:510"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --no-rename --remove /testdir/bar
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:510"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:511: grep -qE 'Removing .* /testdir/bar' stdout"
+at_fn_check_prepare_trace "divert.at:511"
+( $at_check_trace; grep -qE 'Removing .* /testdir/bar' stdout
+) >>"$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/divert.at:511"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:513: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:513"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.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_31
+#AT_START_32
+at_fn_group_banner 32 'divert.at:517' \
+ "dpkg-divert remove (by-package)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "32. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/bar
+/testdir/bar.distrib
+:
+/testdir/foo
+/testdir/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:529: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename /testdir/foo"
+at_fn_check_prepare_trace "divert.at:529"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename /testdir/foo
+) >>"$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/divert.at:529"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:530: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename /testdir/bar"
+at_fn_check_prepare_trace "divert.at:530"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename /testdir/bar
+) >>"$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/divert.at:530"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:531: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --package bash /testdir/baz"
+at_fn_check_prepare_trace "divert.at:531"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --no-rename --package bash /testdir/baz
+) >>"$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/divert.at:531"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:533: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --no-rename --quiet --package bash --remove /testdir/baz"
+at_fn_check_prepare_trace "divert.at:533"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --no-rename --quiet --package bash --remove /testdir/baz
+) >>"$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/divert.at:533"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:535: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:535"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:535"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:539' \
+ "dpkg-divert remove (test)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "33. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkginst/$(dirname '/testdir/foo')"
+ : >dpkginst//testdir/foo
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+cat >ref-diversions <<'_ATEOF'
+/testdir/foo
+/testdir/foo.distrib
+:
+_ATEOF
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:549: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename /testdir/foo"
+at_fn_check_prepare_trace "divert.at:549"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename /testdir/foo
+) >>"$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/divert.at:549"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:551: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --test --rename --remove /testdir/foo"
+at_fn_check_prepare_trace "divert.at:551"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --test --rename --remove /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/divert.at:551"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:552: grep -q 'Removing .*/testdir/foo' stdout"
+at_fn_check_prepare_trace "divert.at:552"
+( $at_check_trace; grep -q 'Removing .*/testdir/foo' stdout
+) >>"$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/divert.at:552"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:553: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:553"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:553"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:554: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:554"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:554"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:555: diff -u ref-diversions dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:555"
+( $at_check_trace; diff -u ref-diversions dpkgdb/diversions
+) >>"$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/divert.at:555"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:557: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --remove /testdir/foo"
+at_fn_check_prepare_trace "divert.at:557"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --quiet --rename --remove /testdir/foo
+) >>"$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/divert.at:557"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:558: test -e \"dpkginst//testdir/foo\""
+at_fn_check_prepare_trace "divert.at:558"
+( $at_check_trace; test -e "dpkginst//testdir/foo"
+) >>"$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/divert.at:558"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/divert.at:559: test -e \"dpkginst//testdir/foo.distrib\""
+at_fn_check_prepare_trace "divert.at:559"
+( $at_check_trace; test -e "dpkginst//testdir/foo.distrib"
+) >>"$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/divert.at:559"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:560: cat dpkgdb/diversions"
+at_fn_check_prepare_trace "divert.at:560"
+( $at_check_trace; cat dpkgdb/diversions
+) >>"$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/divert.at:560"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:564' \
+ "dpkg-divert db (no-access)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "34. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+printf "%s\n" "divert.at:567" >"$at_check_line_file"
+(test -n "$FAKEROOTKEY" || test "$(id -u)" = 0) \
+ && at_fn_check_skip 77 "$at_srcdir/divert.at:567"
+
+# An inexistent diversions db file should not be considered a failure,
+# but a failure to open it should be.
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+ chmod 000 "dpkgdb/diversions"
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:574: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list"
+at_fn_check_prepare_trace "divert.at:574"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:574"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:575: grep -qE '(cannot|failed).*open' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:575"
+( $at_check_trace; grep -qE '(cannot|failed).*open' stderr
+) >>"$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/divert.at:575"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ chmod 644 "dpkgdb/diversions"
+
+ set +x
+ $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 'divert.at:580' \
+ "dpkg-divert db (truncated)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "35. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ cat >dpkgdb/diversions <<'_ATEOF'
+/bin/sh
+_ATEOF
+
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:586: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list"
+at_fn_check_prepare_trace "divert.at:586"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:586"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:587: grep -qE '(corrupt|unexpected end of file)' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:587"
+( $at_check_trace; grep -qE '(corrupt|unexpected end of file)' stderr
+) >>"$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/divert.at:587"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ mkdir -p "dpkgdb"
+ cat >dpkgdb/diversions <<'_ATEOF'
+/bin/sh
+bash
+_ATEOF
+
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:593: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list"
+at_fn_check_prepare_trace "divert.at:593"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --list
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:593"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:594: grep -qE '(corrupt|unexpected end of file)' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:594"
+( $at_check_trace; grep -qE '(corrupt|unexpected end of file)' stderr
+) >>"$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/divert.at:594"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:598' \
+ "dpkg-divert db (read-only dir)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "36. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+printf "%s\n" "divert.at:601" >"$at_check_line_file"
+(test -n "$FAKEROOTKEY" || test "$(id -u)" = 0) \
+ && at_fn_check_skip 77 "$at_srcdir/divert.at:601"
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+
+ chmod 500 "dpkgdb/"
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:606: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:606"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:606"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:607: grep -q 'Adding' stdout"
+at_fn_check_prepare_trace "divert.at:607"
+( $at_check_trace; grep -q 'Adding' stdout
+) >>"$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/divert.at:607"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:608: grep -q 'create.*new' stderr"
+at_fn_check_prepare_trace "divert.at:608"
+( $at_check_trace; grep -q 'create.*new' stderr
+) >>"$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/divert.at:608"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+ chmod 755 "dpkgdb/"
+
+ set +x
+ $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 'divert.at:613' \
+ "dpkg-divert db (disk full)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "37. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+printf "%s\n" "divert.at:616" >"$at_check_line_file"
+(test -n "$FAKEROOTKEY" || test "$(id -u)" = 0) \
+ && at_fn_check_skip 77 "$at_srcdir/divert.at:616"
+printf "%s\n" "divert.at:617" >"$at_check_line_file"
+(! test -c /dev/full) \
+ && at_fn_check_skip 77 "$at_srcdir/divert.at:617"
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+ln -s /dev/full dpkgdb/diversions-new
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:622: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:622"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:622"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:623: grep -q 'Adding' stdout"
+at_fn_check_prepare_trace "divert.at:623"
+( $at_check_trace; grep -q 'Adding' stdout
+) >>"$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/divert.at:623"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:624: grep -qE '(write|flush|close).*new' stderr"
+at_fn_check_prepare_notrace 'a shell pipeline' "divert.at:624"
+( $at_check_trace; grep -qE '(write|flush|close).*new' stderr
+) >>"$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/divert.at:624"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'divert.at:628' \
+ "dpkg-divert db (pathname is dir)" " " 4
+at_xfail=no
+(
+ printf "%s\n" "38. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+ mkdir -p "dpkgdb"
+ : >dpkgdb/diversions
+
+rm -f dpkgdb/diversions-new
+mkdir dpkgdb/diversions-old
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:635: dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo"
+at_fn_check_prepare_trace "divert.at:635"
+( $at_check_trace; dpkg-divert --admindir=dpkgdb --instdir=dpkginst --rename --add /testdir/foo
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/divert.at:635"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:636: grep -q 'Adding' stdout"
+at_fn_check_prepare_trace "divert.at:636"
+( $at_check_trace; grep -q 'Adding' stdout
+) >>"$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/divert.at:636"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/divert.at:637: grep -q 'remov.*old' stderr"
+at_fn_check_prepare_trace "divert.at:637"
+( $at_check_trace; grep -q 'remov.*old' stderr
+) >>"$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/divert.at:637"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:5' \
+ "dpkg chdir opts" " " 5
+at_xfail=no
+(
+ printf "%s\n" "39. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_39
+#AT_START_40
+at_fn_group_banner 40 'chdir.at:5' \
+ "dpkg chdir env" " " 5
+at_xfail=no
+(
+ printf "%s\n" "40. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_40
+#AT_START_41
+at_fn_group_banner 41 'chdir.at:5' \
+ "dpkg chdir env+opt admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "41. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_41
+#AT_START_42
+at_fn_group_banner 42 'chdir.at:5' \
+ "dpkg chdir env+opt root" " " 5
+at_xfail=no
+(
+ printf "%s\n" "42. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_42
+#AT_START_43
+at_fn_group_banner 43 'chdir.at:5' \
+ "dpkg chdir env+opt root+admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "43. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_43
+#AT_START_44
+at_fn_group_banner 44 'chdir.at:5' \
+ "dpkg-divert chdir opts" " " 5
+at_xfail=no
+(
+ printf "%s\n" "44. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_44
+#AT_START_45
+at_fn_group_banner 45 'chdir.at:5' \
+ "dpkg-divert chdir env" " " 5
+at_xfail=no
+(
+ printf "%s\n" "45. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_45
+#AT_START_46
+at_fn_group_banner 46 'chdir.at:5' \
+ "dpkg-divert chdir env+opt admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "46. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_46
+#AT_START_47
+at_fn_group_banner 47 'chdir.at:5' \
+ "dpkg-divert chdir env+opt root" " " 5
+at_xfail=no
+(
+ printf "%s\n" "47. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_47
+#AT_START_48
+at_fn_group_banner 48 'chdir.at:5' \
+ "dpkg-divert chdir env+opt root+admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "48. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-divert --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_48
+#AT_START_49
+at_fn_group_banner 49 'chdir.at:5' \
+ "dpkg-statoverride chdir opts" " " 5
+at_xfail=no
+(
+ printf "%s\n" "49. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:5"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_49
+#AT_START_50
+at_fn_group_banner 50 'chdir.at:5' \
+ "dpkg-statoverride chdir env" " " 5
+at_xfail=no
+(
+ printf "%s\n" "50. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_50
+#AT_START_51
+at_fn_group_banner 51 'chdir.at:5' \
+ "dpkg-statoverride chdir env+opt admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "51. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_51
+#AT_START_52
+at_fn_group_banner 52 'chdir.at:5' \
+ "dpkg-statoverride chdir env+opt root" " " 5
+at_xfail=no
+(
+ printf "%s\n" "52. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_52
+#AT_START_53
+at_fn_group_banner 53 'chdir.at:5' \
+ "dpkg-statoverride chdir env+opt root+admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "53. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --instdir=/instdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/instdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:5"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:5: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:5"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-statoverride --version --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.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_53
+#AT_START_54
+at_fn_group_banner 54 'chdir.at:329' \
+ "dpkg-split chdir opts" " " 5
+at_xfail=no
+(
+ printf "%s\n" "54. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-split chdir env" " " 5
+at_xfail=no
+(
+ printf "%s\n" "55. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-split --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-split --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-split chdir env+opt admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "56. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-split chdir env+opt root" " " 5
+at_xfail=no
+(
+ printf "%s\n" "57. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-split chdir env+opt root+admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "58. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-split --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-query chdir opts" " " 5
+at_xfail=no
+(
+ printf "%s\n" "59. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-query chdir env" " " 5
+at_xfail=no
+(
+ printf "%s\n" "60. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-query --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-query --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-query chdir env+opt admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "61. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-query chdir env+opt root" " " 5
+at_xfail=no
+(
+ printf "%s\n" "62. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-query chdir env+opt root+admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "63. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-query --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-trigger chdir opts" " " 5
+at_xfail=no
+(
+ printf "%s\n" "64. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_trace "chdir.at:329"
+( $at_check_trace; DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-trigger chdir env" " " 5
+at_xfail=no
+(
+ printf "%s\n" "65. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_env
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-trigger chdir env+opt admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "66. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-trigger chdir env+opt root" " " 5
+at_xfail=no
+(
+ printf "%s\n" "67. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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 'chdir.at:329' \
+ "dpkg-trigger chdir env+opt root+admindir" " " 5
+at_xfail=no
+(
+ printf "%s\n" "68. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+ DPKG_ROOT=
+ DPKG_ADMINDIR=
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_env admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt --admindir=/admindir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --root=/rootdir_opt --admindir=/admindir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/admindir_opt
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ { set +x
+printf "%s\n" "$at_srcdir/chdir.at:329: DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \\
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt --root=/rootdir_opt"
+at_fn_check_prepare_notrace 'an embedded newline' "chdir.at:329"
+( $at_check_trace; DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \
+ DPKG_DEBUG=1 dpkg-trigger --version --admindir=/admindir_opt --root=/rootdir_opt
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; printf "%s\n" "D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR
+" | \
+ $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/chdir.at:329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ set +x
+ $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
diff --git a/src/at/testsuite.at b/src/at/testsuite.at
new file mode 100644
index 0000000..86e2d37
--- /dev/null
+++ b/src/at/testsuite.at
@@ -0,0 +1,24 @@
+AT_INIT([dpkg tools functional test suite])
+AT_COLOR_TESTS
+
+AT_TESTED([dpkg-deb])
+AT_BANNER([Binary .deb packages])
+m4_include([deb-format.at])
+m4_include([deb-content.at])
+m4_include([deb-fields.at])
+
+AT_TESTED([dpkg-split])
+AT_BANNER([Split .deb packages])
+m4_include([deb-split.at])
+
+AT_TESTED([dpkg-realpath])
+AT_BANNER([Resolve pathnames])
+m4_include([realpath.at])
+
+AT_TESTED([dpkg-divert])
+AT_BANNER([Diversions])
+m4_include([divert.at])
+
+AT_TESTED([dpkg])
+AT_BANNER([Change directory options])
+m4_include([chdir.at])