summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-26 16:03:02 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-26 16:03:02 +0000
commit6584112d593ed9fe0bcb2680d82a8849e708dccc (patch)
treeb2c3860f98b73c1cc5857b4c4a8df54e4c35e761 /tests
parentReleasing progress-linux version 1.5.1-4~progress7.99u1. (diff)
downloadmmdebstrap-6584112d593ed9fe0bcb2680d82a8849e708dccc.tar.xz
mmdebstrap-6584112d593ed9fe0bcb2680d82a8849e708dccc.zip
Merging upstream version 1.5.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/check-against-debootstrap-dist34
-rw-r--r--tests/debootstrap8
-rw-r--r--tests/debug4
-rw-r--r--tests/eatmydata-via-hook-dir1
-rw-r--r--tests/empty-sources.list2
-rw-r--r--tests/jessie-or-older1
-rw-r--r--tests/missing-dev-sys-proc-inside-the-chroot4
-rw-r--r--tests/pivot_root10
-rw-r--r--tests/verbose4
9 files changed, 46 insertions, 22 deletions
diff --git a/tests/check-against-debootstrap-dist b/tests/check-against-debootstrap-dist
index b5706c6..40e5798 100644
--- a/tests/check-against-debootstrap-dist
+++ b/tests/check-against-debootstrap-dist
@@ -70,6 +70,8 @@ rm /tmp/debian-{{ DIST }}-debootstrap/var/cache/debconf/templates.dat-old \
/tmp/debian-{{ DIST }}-mm/var/cache/debconf/templates.dat-old
rm /tmp/debian-{{ DIST }}-debootstrap/var/lib/dpkg/status-old \
/tmp/debian-{{ DIST }}-mm/var/lib/dpkg/status-old
+rm -f /tmp/debian-{{ DIST }}-debootstrap/var/lib/dpkg/diversions-old \
+ /tmp/debian-{{ DIST }}-mm/var/lib/dpkg/diversions-old
# remove dpkg files
rm /tmp/debian-{{ DIST }}-debootstrap/var/lib/dpkg/available
rm /tmp/debian-{{ DIST }}-debootstrap/var/lib/dpkg/cmethopt
@@ -155,24 +157,44 @@ if [ "{{ VARIANT }}" = "-" ] && [ "{{ DIST}}" = oldstable ]; then
fi
for log in faillog lastlog; do
- if ! cmp /tmp/debian-{{ DIST }}-debootstrap/var/log/$log /tmp/debian-{{ DIST }}-mm/var/log/$log >&2;then
+ f1="/tmp/debian-{{ DIST }}-debootstrap/var/log/$log"
+ f2="/tmp/debian-{{ DIST }}-mm/var/log/$log"
+ # skip cmp if file is absent in both chroots
+ if [ ! -e "$f1" ] && [ ! -e "$f2" ]; then
+ continue
+ fi
+ if ! cmp "$f1" "$f2" >&2;then
# if the files differ, make sure they are all zeroes
- cmp -n "$(stat -c %s "/tmp/debian-{{ DIST }}-debootstrap/var/log/$log")" "/tmp/debian-{{ DIST }}-debootstrap/var/log/$log" /dev/zero >&2
- cmp -n "$(stat -c %s "/tmp/debian-{{ DIST }}-mm/var/log/$log")" "/tmp/debian-{{ DIST }}-mm/var/log/$log" /dev/zero >&2
+ cmp -n "$(stat -c %s "$f1")" "$f1" /dev/zero >&2
+ cmp -n "$(stat -c %s "$f2")" "$f2" /dev/zero >&2
# then delete them
- rm /tmp/debian-{{ DIST }}-debootstrap/var/log/$log /tmp/debian-{{ DIST }}-mm/var/log/$log
+ rm "$f1" "$f2"
fi
done
-# the order in which systemd and cron get installed differ and thus the order
-# of lines in /etc/group and /etc/gshadow differs
if [ "{{ VARIANT }}" = "-" ]; then
+ # the order in which systemd and cron get installed differ and thus the order
+ # of lines in /etc/group and /etc/gshadow differs
for f in group group- gshadow gshadow-; do
for d in mm debootstrap; do
sort /tmp/debian-{{ DIST }}-$d/etc/$f > /tmp/debian-{{ DIST }}-$d/etc/$f.bak
mv /tmp/debian-{{ DIST }}-$d/etc/$f.bak /tmp/debian-{{ DIST }}-$d/etc/$f
done
done
+ # the order in which systemd and passwd get installed differ and thus
+ # the order of lines in /etc/shadow and /etc/shadow- differs
+ for f in shadow shadow-; do
+ for d in mm debootstrap; do
+ sort /tmp/debian-{{ DIST }}-$d/etc/$f > /tmp/debian-{{ DIST }}-$d/etc/$f.bak
+ mv /tmp/debian-{{ DIST }}-$d/etc/$f.bak /tmp/debian-{{ DIST }}-$d/etc/$f
+ done
+ done
+ # and since the order was different, ignore the *- files
+ for f in shadow- passwd-; do
+ for d in mm debootstrap; do
+ rm /tmp/debian-{{ DIST }}-$d/etc/$f
+ done
+ done
fi
# since debootstrap 1.0.133 there is no tzdata in the buildd variant and thus
diff --git a/tests/debootstrap b/tests/debootstrap
index 63c217d..9e1709e 100644
--- a/tests/debootstrap
+++ b/tests/debootstrap
@@ -5,6 +5,12 @@ export SOURCE_DATE_EPOCH={{ SOURCE_DATE_EPOCH }}
tmpdir="$(mktemp -d)"
chmod 755 "$tmpdir"
-debootstrap "$([ "{{ DIST }}" = oldstable ] && echo --no-merged-usr || echo --merged-usr)" --variant={{ VARIANT }} {{ DIST }} "$tmpdir" {{ MIRROR }}
+ret=0
+debootstrap "$([ "{{ DIST }}" = oldstable ] && echo --no-merged-usr || echo --merged-usr)" --variant={{ VARIANT }} {{ DIST }} "$tmpdir" {{ MIRROR }} || ret=$?
+if [ "$ret" -ne 0 ]; then
+ echo "E: debootstrap failed, dumping $tmpdir/debootstrap/debootstrap.log"
+ cat "$tmpdir/debootstrap/debootstrap.log"
+ exit 1
+fi
tar --sort=name --mtime=@$SOURCE_DATE_EPOCH --clamp-mtime --numeric-owner --one-file-system --xattrs -C "$tmpdir" -c . > "./cache/debian-{{ DIST }}-{{ VARIANT }}.tar"
rm -r "$tmpdir"
diff --git a/tests/debug b/tests/debug
index 5612115..bce3fd2 100644
--- a/tests/debug
+++ b/tests/debug
@@ -7,9 +7,7 @@ trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
# we use variant standard in verbose mode to see the maximum number of packages
# that was chosen in case of USE_HOST_APT_CONFIG=yes
-# we use variant important on arches where variant standard is not bit-by-bit
-# reproducible due to #1031276
-case {{ VARIANT }} in standard|-) : ;; *) exit 1;; esac
+case {{ VARIANT }} in standard) : ;; *) exit 1;; esac
{{ CMD }} --variant={{ VARIANT }} --debug {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
diff --git a/tests/eatmydata-via-hook-dir b/tests/eatmydata-via-hook-dir
index 0df72df..b554508 100644
--- a/tests/eatmydata-via-hook-dir
+++ b/tests/eatmydata-via-hook-dir
@@ -37,7 +37,6 @@ elfheader="$elfheader\\001\\000"
tar -C /tmp/debian-chroot --one-file-system -c . \
| tar -t \
| sort \
- | grep -v '^\./var/lib/dpkg/diversions\(-old\)\?$' \
| diff -u tar1.txt -
rm /tmp/checkeatmydata.sh
rm -r /tmp/debian-chroot
diff --git a/tests/empty-sources.list b/tests/empty-sources.list
index bf384f3..f9a6a6a 100644
--- a/tests/empty-sources.list
+++ b/tests/empty-sources.list
@@ -3,6 +3,6 @@ set -eu
export LC_ALL=C.UTF-8
trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
printf '' | {{ CMD }} --mode={{ MODE }} --variant=apt \
- --setup-hook='echo "deb {{ MIRROR }} {{ DIST }} main" > "$1"/etc/apt/sources.list' \
+ --setup-hook='test -e "$1"/etc/apt/sources.list || echo "deb {{ MIRROR }} {{ DIST }} main" > "$1"/etc/apt/sources.list' \
{{ DIST }} /tmp/debian-chroot.tar -
tar -tf /tmp/debian-chroot.tar | sort | diff -u tar1.txt -
diff --git a/tests/jessie-or-older b/tests/jessie-or-older
index a3a2ace..db941b6 100644
--- a/tests/jessie-or-older
+++ b/tests/jessie-or-older
@@ -30,6 +30,7 @@ filter() {
--path-exclude=/var/cache/debconf/templates.dat-old \
--path-exclude=/var/lib/dpkg/available \
--path-exclude=/var/lib/dpkg/diversions \
+ --path-exclude=/var/lib/dpkg/diversions-old \
--path-exclude=/var/lib/dpkg/cmethopt \
--path-exclude=/var/lib/dpkg/status-old \
--path-exclude=/var/lib/shells.state
diff --git a/tests/missing-dev-sys-proc-inside-the-chroot b/tests/missing-dev-sys-proc-inside-the-chroot
index 9c9b1c0..935ff31 100644
--- a/tests/missing-dev-sys-proc-inside-the-chroot
+++ b/tests/missing-dev-sys-proc-inside-the-chroot
@@ -17,8 +17,8 @@ if [ "$(id -u)" -eq 0 ] && [ "{{ MODE }}" != "root" ] && [ "{{ MODE }}" != "auto
prefix="runuser -u ${SUDO_USER:-user} --"
fi
-# creating /sbin manually because of #1071078
+# do not install base-files, so that /proc, /sys and /dev are missing
$prefix {{ CMD }} --mode={{ MODE }} --variant={{ VARIANT }} \
- --setup-hook='mkdir "$1/sbin"' \
+ --setup-hook='for dir in bin lib lib32 lib64 libo32 libx32 sbin; do ln -s "usr/$dir" "$1/$dir"; done' \
--include=dpkg,dash,diffutils,coreutils,libc-bin,sed \
{{ DIST }} /dev/null {{ MIRROR }}
diff --git a/tests/pivot_root b/tests/pivot_root
index 860c41b..7aa025e 100644
--- a/tests/pivot_root
+++ b/tests/pivot_root
@@ -17,19 +17,19 @@ if [ "$(id -u)" -eq 0 ] && [ "{{ MODE }}" != "root" ] && [ "{{ MODE }}" != "auto
fi
$prefix {{ CMD }} --mode={{ MODE }} --variant=apt \
- --include=mount \
+ --include=mount,perl \
{{ DIST }} /tmp/chroot1.tar {{ MIRROR }}
if [ {{ MODE }} = "unshare" ]; then
# calling pivot_root in root mode does not work for mysterious reasons:
# pivot_root: failed to change root from `.' to `mnt': Invalid argument
- $prefix {{ CMD }} --mode={{ MODE }} --variant=apt --include=mount \
+ $prefix {{ CMD }} --mode={{ MODE }} --variant=apt --include=mount,perl \
--customize-hook='mkdir -p "$1/mnt" "$1/oldroot"' \
--customize-hook='[ ! -e /usr/bin/mmdebstrap ] || cp -aT /usr/bin/mmdebstrap "$1/usr/bin/mmdebstrap"' \
--customize-hook='[ ! -e ./mmdebstrap ] || cp -aT ./mmdebstrap "$1/mnt/mmdebstrap"' \
--customize-hook='mount -o rbind "$1" /mnt && cd /mnt && /sbin/pivot_root . oldroot' \
--customize-hook='unshare -U echo nested unprivileged unshare' \
- --customize-hook='env --chdir=/mnt {{ CMD }} --mode=unshare --variant=apt --include=mount {{ DIST }} /tmp/chroot3.tar {{ MIRROR }}' \
+ --customize-hook='env --chdir=/mnt {{ CMD }} --mode=unshare --variant=apt --include=mount,perl {{ DIST }} /tmp/chroot3.tar {{ MIRROR }}' \
--customize-hook='copy-out /tmp/chroot3.tar /tmp' \
--customize-hook='rm -f "/usr/bin/mmdebstrap" "/mnt/mmdebstrap"' \
--customize-hook='umount -l oldroot sys' \
@@ -41,11 +41,11 @@ if [ {{ MODE }} = "unshare" ]; then
rm /tmp/chroot2.tar /tmp/chroot3.tar
fi
-$prefix {{ CMD }} --mode={{ MODE }} --variant=apt --include=mount \
+$prefix {{ CMD }} --mode={{ MODE }} --variant=apt --include=mount,perl \
--customize-hook='mkdir -p "$1/mnt"' \
--customize-hook='[ ! -e /usr/bin/mmdebstrap ] || cp -aT /usr/bin/mmdebstrap "$1/usr/bin/mmdebstrap"' \
--customize-hook='[ ! -e ./mmdebstrap ] || cp -aT ./mmdebstrap "$1/mnt/mmdebstrap"' \
- --chrooted-customize-hook='env --chdir=/mnt {{ CMD }} --mode=unshare --variant=apt --include=mount {{ DIST }} /tmp/chroot3.tar {{ MIRROR }}' \
+ --chrooted-customize-hook='env --chdir=/mnt {{ CMD }} --mode=unshare --variant=apt --include=mount,perl {{ DIST }} /tmp/chroot3.tar {{ MIRROR }}' \
--customize-hook='copy-out /tmp/chroot3.tar /tmp' \
--customize-hook='rm -f "$1/usr/bin/mmdebstrap" "$1/mnt/mmdebstrap"' \
{{ DIST }} /tmp/chroot2.tar {{ MIRROR }}
diff --git a/tests/verbose b/tests/verbose
index b0b0fb9..5a36310 100644
--- a/tests/verbose
+++ b/tests/verbose
@@ -7,9 +7,7 @@ trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
# we use variant standard in verbose mode to see the maximum number of packages
# that was chosen in case of USE_HOST_APT_CONFIG=yes
-# we use variant important on arches where variant standard is not bit-by-bit
-# reproducible due to #1031276
-case {{ VARIANT }} in standard|-) : ;; *) exit 1;; esac
+case {{ VARIANT }} in standard) : ;; *) exit 1;; esac
{{ CMD }} --variant={{ VARIANT }} --verbose {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}