summaryrefslogtreecommitdiffstats
path: root/tests/install-busybox-based-sub-essential-system
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/install-busybox-based-sub-essential-system41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/install-busybox-based-sub-essential-system b/tests/install-busybox-based-sub-essential-system
new file mode 100644
index 0000000..7854f0e
--- /dev/null
+++ b/tests/install-busybox-based-sub-essential-system
@@ -0,0 +1,41 @@
+#!/bin/sh
+set -eu
+export LC_ALL=C.UTF-8
+
+trap "rm -rf /tmp/debian-chroot" EXIT INT TERM
+
+pkgs=base-files,base-passwd,busybox,debianutils,dpkg,libc-bin,mawk,tar
+# busybox --install -s will install symbolic links into the rootfs, leaving
+# existing files untouched. It has to run after extraction (otherwise there is
+# no busybox binary) and before first configuration
+{{ CMD }} --mode=root --variant=custom \
+ --include=$pkgs \
+ --setup-hook='mkdir -p "$1/bin"' \
+ --setup-hook='echo root:x:0:0:root:/root:/bin/sh > "$1/etc/passwd"' \
+ --setup-hook='printf "root:x:0:\nmail:x:8:\nutmp:x:43:\n" > "$1/etc/group"' \
+ --extract-hook='chroot "$1" busybox --install -s' \
+ {{ DIST }} /tmp/debian-chroot {{ MIRROR }}
+echo "$pkgs" | tr ',' '\n' > /tmp/expected
+chroot /tmp/debian-chroot dpkg-query -f '${binary:Package}\n' -W \
+ | comm -12 - /tmp/expected \
+ | diff -u - /tmp/expected
+rm /tmp/expected
+for cmd in echo cat sed grep; do
+ test -L /tmp/debian-chroot/bin/$cmd
+ test "$(readlink /tmp/debian-chroot/bin/$cmd)" = "/usr/bin/busybox"
+done
+for cmd in sort tee; do
+ test -L /tmp/debian-chroot/usr/bin/$cmd
+ test "$(readlink /tmp/debian-chroot/usr/bin/$cmd)" = "/usr/bin/busybox"
+done
+
+# if /bin or /sbin are not symlinks, add /bin and /sbin to PATH
+if [ ! -L /tmp/debian-chroot/bin ] || [ ! -L /tmp/debian-chroot/sbin ]; then
+ export PATH="$PATH:/sbin:/bin"
+fi
+chroot /tmp/debian-chroot echo foobar \
+ | chroot /tmp/debian-chroot cat \
+ | chroot /tmp/debian-chroot sort \
+ | chroot /tmp/debian-chroot tee /dev/null \
+ | chroot /tmp/debian-chroot sed 's/foobar/blubber/' \
+ | chroot /tmp/debian-chroot grep blubber >/dev/null