forked from josch/mmdebstrap
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
99 lines
3.4 KiB
Bash
99 lines
3.4 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
export LC_ALL=C.UTF-8
|
|
if [ ! -e /mmdebstrap-testenv ]; then
|
|
echo "this test modifies the system and should only be run inside a container" >&2
|
|
exit 1
|
|
fi
|
|
for f in /etc/resolv.conf /etc/hostname; do
|
|
# preserve original content
|
|
cat "$f" > "$f.bak"
|
|
# in case $f is a symlink, we replace it by a real file
|
|
if [ -L "$f" ]; then
|
|
rm "$f"
|
|
cp "$f.bak" "$f"
|
|
fi
|
|
chmod 644 "$f"
|
|
[ "$(stat --format=%A "$f")" = "-rw-r--r--" ]
|
|
done
|
|
{{ CMD }} --variant=custom --mode={{ MODE }} {{ DIST }} /tmp/debian-chroot {{ MIRROR }}
|
|
for f in /etc/resolv.conf /etc/hostname; do
|
|
[ "$(stat --format=%A "/tmp/debian-chroot/$f")" = "-rw-r--r--" ]
|
|
done
|
|
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
|
|
for f in /etc/resolv.conf /etc/hostname; do
|
|
chmod 755 "$f"
|
|
[ "$(stat --format=%A "$f")" = "-rwxr-xr-x" ]
|
|
done
|
|
{{ CMD }} --variant=custom --mode={{ MODE }} {{ DIST }} /tmp/debian-chroot {{ MIRROR }}
|
|
for f in /etc/resolv.conf /etc/hostname; do
|
|
[ "$(stat --format=%A "/tmp/debian-chroot/$f")" = "-rwxr-xr-x" ]
|
|
done
|
|
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
|
|
for f in /etc/resolv.conf /etc/hostname; do
|
|
rm "$f"
|
|
ln -s "$f.bak" "$f"
|
|
[ "$(stat --format=%A "$f")" = "lrwxrwxrwx" ]
|
|
done
|
|
{{ CMD }} --variant=custom --mode={{ MODE }} {{ DIST }} /tmp/debian-chroot {{ MIRROR }}
|
|
for f in /etc/resolv.conf /etc/hostname; do
|
|
[ "$(stat --format=%A "/tmp/debian-chroot/$f")" = "-rw-r--r--" ]
|
|
done
|
|
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
|