Johannes Schauer Marin Rodrigues
4c3fddcd54
- multiple individual shell scripts instead of one 3.5k line monster - tests driven by Python script allowing: * declarative test description in coverage.txt * collecting errors instead of aborting on first error * skipping tests * running specific tests
43 lines
1.5 KiB
Text
43 lines
1.5 KiB
Text
cat << END > shared/test.sh
|
|
#!/bin/sh
|
|
set -eu
|
|
export LC_ALL=C.UTF-8
|
|
{{ CMD }} --mode={{ MODE }} --dry-run --variant=apt --setup-hook="exit 1" --essential-hook="exit 1" --customize-hook="exit 1" {{ DIST }} /tmp/debian-chroot {{ MIRROR }}
|
|
rm /tmp/debian-chroot/dev/console
|
|
rm /tmp/debian-chroot/dev/fd
|
|
rm /tmp/debian-chroot/dev/full
|
|
rm /tmp/debian-chroot/dev/null
|
|
rm /tmp/debian-chroot/dev/ptmx
|
|
rm /tmp/debian-chroot/dev/random
|
|
rm /tmp/debian-chroot/dev/stderr
|
|
rm /tmp/debian-chroot/dev/stdin
|
|
rm /tmp/debian-chroot/dev/stdout
|
|
rm /tmp/debian-chroot/dev/tty
|
|
rm /tmp/debian-chroot/dev/urandom
|
|
rm /tmp/debian-chroot/dev/zero
|
|
rm /tmp/debian-chroot/etc/apt/sources.list
|
|
rm /tmp/debian-chroot/etc/fstab
|
|
rm /tmp/debian-chroot/etc/hostname
|
|
rm /tmp/debian-chroot/etc/resolv.conf
|
|
rm /tmp/debian-chroot/var/lib/apt/lists/lock
|
|
rm /tmp/debian-chroot/var/lib/dpkg/status
|
|
# the rest should be empty directories that we can rmdir recursively
|
|
find /tmp/debian-chroot -depth -print0 | xargs -0 rmdir
|
|
END
|
|
if [ "$HAVE_QEMU" = "yes" ]; then
|
|
./run_qemu.sh
|
|
runtests=$((runtests+1))
|
|
elif [ "{{ MODE }}" = "root" ]; then
|
|
./run_null.sh SUDO
|
|
runtests=$((runtests+1))
|
|
else
|
|
./run_null.sh
|
|
runtests=$((runtests+1))
|
|
fi
|
|
|
|
# test all --dry-run variants
|
|
|
|
# we are testing all variants here because with 0.7.5 we had a bug:
|
|
# mmdebstrap sid /dev/null --simulate ==> E: cannot read /var/cache/apt/archives/
|
|
for variant in extract custom essential apt minbase buildd important standard; do
|
|
for mode in root unshare fakechroot proot chrootless; do
|