From 93cf0544c6e768cd7d7a956b2fbb77d64c8e1ad1 Mon Sep 17 00:00:00 2001 From: Johannes 'josch' Schauer Date: Sat, 23 Feb 2019 08:46:32 +0100 Subject: [PATCH] coverage.sh: add 7 more tests --- coverage.sh | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) diff --git a/coverage.sh b/coverage.sh index 8e8927b..4de689d 100755 --- a/coverage.sh +++ b/coverage.sh @@ -209,6 +209,21 @@ END done done +print_header "test --help" +cat << END > shared/test.sh +#!/bin/sh +set -eu +export LC_ALL=C.UTF-8 +$CMD --help | grep --quiet SYNOPSIS +END +if [ "$HAVE_QEMU" = "yes" ]; then + ./run_qemu.sh +elif [ "$defaultmode" = "root" ]; then + ./run_null.sh SUDO +else + ./run_null.sh +fi + print_header "mode=root,variant=apt: create directory" cat << END > shared/test.sh #!/bin/sh @@ -224,6 +239,24 @@ else ./run_null.sh SUDO fi +print_header "mode=root,variant=apt: fail with unshare as root user" +cat << END > shared/test.sh +#!/bin/sh +set -eu +export LC_ALL=C.UTF-8 +ret=0 +$CMD --mode=unshare --variant=apt unstable /tmp/debian-unstable $mirror || ret=\$? +if [ "\$ret" = 0 ]; then + echo expected failure but got exit \$ret + exit 1 +fi +END +if [ "$HAVE_QEMU" = "yes" ]; then + ./run_qemu.sh +else + echo "HAVE_QEMU != yes -- Skipping test..." +fi + print_header "mode=root,variant=apt: test progress bars on fake tty" cat << END > shared/test.sh #!/bin/sh @@ -240,6 +273,22 @@ else ./run_null.sh SUDO fi +print_header "mode=root,variant=apt: test --debug output on fake tty" +cat << END > shared/test.sh +#!/bin/sh +set -eu +export LC_ALL=C.UTF-8 +script -qfc "$CMD --mode=root --debug --variant=apt unstable /tmp/unstable-chroot.tar $mirror" /dev/null +tar -tf /tmp/unstable-chroot.tar | sort > tar2.txt +diff -u tar1.txt tar2.txt +rm /tmp/unstable-chroot.tar +END +if [ "$HAVE_QEMU" = "yes" ]; then + ./run_qemu.sh +else + ./run_null.sh SUDO +fi + print_header "mode=root,variant=apt: existing empty directory" cat << END > shared/test.sh #!/bin/sh @@ -294,6 +343,24 @@ else echo "HAVE_QEMU != yes -- Skipping test..." fi +print_header "mode=root,variant=apt: fail with missing lz4" +cat << END > shared/test.sh +#!/bin/sh +set -eu +export LC_ALL=C.UTF-8 +ret=0 +$CMD --mode=root --variant=apt unstable /tmp/unstable-chroot.tar.lz4 $mirror || ret=\$? +if [ "\$ret" = 0 ]; then + echo expected failure but got exit \$ret + exit 1 +fi +END +if [ "$HAVE_QEMU" = "yes" ]; then + ./run_qemu.sh +else + ./run_null.sh SUDO +fi + print_header "mode=root,variant=apt: create tarball with /tmp mounted nodev" cat << END > shared/test.sh #!/bin/sh @@ -444,6 +511,27 @@ else ./run_null.sh fi +print_header "mode=$defaultmode,variant=apt: invalid mirror" +cat << END > shared/test.sh +#!/bin/sh +set -eu +export LC_ALL=C.UTF-8 +ret=0 +$CMD --mode=$defaultmode --variant=apt unstable /tmp/unstable-chroot.tar $mirror/invalid || ret=\$? +if [ "\$ret" = 0 ]; then + echo expected failure but got exit \$ret + exit 1 +fi +rm /tmp/unstable-chroot.tar +END +if [ "$HAVE_QEMU" = "yes" ]; then + ./run_qemu.sh +elif [ "$defaultmode" = "root" ]; then + ./run_null.sh SUDO +else + ./run_null.sh +fi + print_header "mode=root,variant=apt: test --include=libc6:armhf" cat << END > shared/test.sh #!/bin/sh @@ -608,6 +696,55 @@ else ./run_null.sh SUDO fi +print_header "mode=root,variant=apt: test failing --customize-hook" +cat << END > shared/test.sh +#!/bin/sh +set -eu +export LC_ALL=C.UTF-8 +ret=0 +$CMD --mode=root --variant=apt --customize-hook='chroot "\$1" sh -c "exit 1"' unstable /tmp/debian-unstable $mirror || ret=\$? +if [ "\$ret" = 0 ]; then + echo expected failure but got exit \$ret + exit 1 +fi +rm -r /tmp/debian-unstable +END +if [ "$HAVE_QEMU" = "yes" ]; then + ./run_qemu.sh +else + ./run_null.sh SUDO +fi + +print_header "mode=root,variant=apt: test sigint during --customize-hook" +cat << END > shared/test.sh +#!/bin/sh +set -eu +export LC_ALL=C.UTF-8 +setsid --wait $CMD --mode=root --variant=apt --customize-hook='touch done && sleep 10 && touch fail' unstable /tmp/debian-unstable $mirror & +pid=\$! +while sleep 1; do [ -e done ] && break; done +rm done +pgid=\$(echo \$(ps -p \$pid -o pgid=)) +/bin/kill --signal INT -- -\$pgid +ret=0 +wait \$pid || ret=\$? +if [ -e fail ]; then + echo customize hook was not interrupted + rm fail + exit 1 +fi +if [ "\$ret" = 0 ]; then + echo expected failure but got exit \$ret + exit 1 +fi +rm -r /tmp/debian-unstable +END +if [ "$HAVE_QEMU" = "yes" ]; then + ./run_qemu.sh +else + ./run_null.sh SUDO +fi + print_header "mode=root,variant=apt: debootstrap no-op options" cat << END > shared/test.sh #!/bin/sh