diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2018-09-29 15:00:21 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2018-10-01 20:31:54 -0400 |
commit | f2294c82afae36bbd5772a86c6689fd4c12c50f0 (patch) | |
tree | 76c4b79054cdc8d58430db4d932cb94ebe49e290 /test/librechroot-test.sh | |
parent | 872b692162a44307161aa98a3c5edaccc3c7b61a (diff) |
(BATS) test: Move files around
But don't edit them yet.
This directory structure is based on that of dbscripts.
Diffstat (limited to 'test/librechroot-test.sh')
-rw-r--r-- | test/librechroot-test.sh | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/test/librechroot-test.sh b/test/librechroot-test.sh deleted file mode 100644 index e476f6f..0000000 --- a/test/librechroot-test.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/usr/bin/env roundup - -describe librechroot -. ./test-common.sh - -it_creates_repo_for_new_chroots() { - require network sudo || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - testsudo librechroot -l "$roundup_test_name" run test -r /repo/repo.db -} - -it_cleans_the_local_repo_correctly() { - require network sudo || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - testsudo librechroot -l "$roundup_test_name" make - testsudo librechroot -l "$roundup_test_name" clean-repo - testsudo librechroot -l "$roundup_test_name" run test -r /repo/repo.db - # TODO: inspect /repo/* more -} - -it_respects_exit_status_if_out_isnt_a_tty() ( - require network sudo || return 0 - set -o pipefail - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - { testsudo librechroot -l "$roundup_test_name" run bash -c 'exit 3' | cat; } || status=$? - - [[ $status == 3 ]] -) - -it_creates_ca_certificates() { - require network sudo || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - testsudo librechroot -l "$roundup_test_name" run test -r /etc/ssl/certs/ca-certificates.crt -} - -it_disables_networking_when_requested() { - require network sudo || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - - testsudo librechroot -l "$roundup_test_name" run curl https://repo.parabola.nu/ >/dev/null - not testsudo librechroot -l "$roundup_test_name" -N run curl https://repo.parabola.nu/ >/dev/null -} - -it_handles_CHROOTEXTRAPKG_correctly() { - require network sudo || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - - not testsudo librechroot -l "$roundup_test_name" run lsof - echo "CHROOTEXTRAPKG=(lsof)" >> "$XDG_CONFIG_HOME"/libretools/chroot.conf - testsudo librechroot -l "$roundup_test_name" install-name lsof - testsudo librechroot -l "$roundup_test_name" clean-pkgs - testsudo librechroot -l "$roundup_test_name" run lsof - echo "CHROOTEXTRAPKG=()" >> "$XDG_CONFIG_HOME"/libretools/chroot.conf - testsudo librechroot -l "$roundup_test_name" clean-pkgs - not testsudo librechroot -l "$roundup_test_name" run lsof -} - -it_obeys_depends_in_PKGBUILD() { - require network sudo || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - - # Make sure it's not in the base install - not testsudo librechroot -l "$roundup_test_name" run lsof - # Make sure it removes it without the PKGBUILD - testsudo librechroot -l "$roundup_test_name" install-name lsof - testsudo librechroot -l "$roundup_test_name" run lsof - testsudo librechroot -l "$roundup_test_name" clean-pkgs - not testsudo librechroot -l "$roundup_test_name" run lsof - # Make sure it leaves it with the PKGBUILD - testsudo librechroot -l "$roundup_test_name" install-name lsof - testsudo librechroot -l "$roundup_test_name" run sh -c 'printf "%s\n" "$1" > /startdir/PKGBUILD' -- "$(cat librechroot.d/PKGBUILD-arches)" - # uid=99 is 'nobody', but we say '99' because sometimes 'nobody' is uid=65534. - # https://bugs.archlinux.org/task/56828 - testsudo librechroot -l "$roundup_test_name" run chown -R 99:99 /startdir - testsudo librechroot -l "$roundup_test_name" clean-pkgs - testsudo librechroot -l "$roundup_test_name" run lsof -} - -it_can_install_libretools_with_chcleanup() { - require network sudo || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - - not testsudo librechroot -l "$roundup_test_name" run test -f /usr/bin/chcleanup - testsudo librechroot -l "$roundup_test_name" run mkdir /startdir - testsudo librechroot -l "$roundup_test_name" run sh -c 'printf "%s\n" "$1" > /startdir/PKGBUILD' -- "$(cat librechroot.d/PKGBUILD-libretools)" - # uid=99 is 'nobody', but we say '99' because sometimes 'nobody' is uid=65534. - # https://bugs.archlinux.org/task/56828 - testsudo librechroot -l "$roundup_test_name" run chown -R 99:99 /startdir - testsudo librechroot -l "$roundup_test_name" clean-pkgs - testsudo librechroot -l "$roundup_test_name" run test -f /usr/bin/chcleanup -} - -it_displays_help_as_normal_user() { - rm -rf "$XDG_CONFIG_HOME" - LC_ALL=C librechroot help >$tmpdir/stdout 2>$tmpdir/stderr - - [[ "$(sed 1q $tmpdir/stdout)" =~ Usage:.* ]] - empty $tmpdir/stderr -} - -it_otherwise_fails_as_normal_user() { - librechroot -l "$roundup_test_name" run true >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - - [[ $status != 0 ]] - empty $tmpdir/stdout - not empty $tmpdir/stderr -} - -it_displays_help_and_fails_with_0_args() { - LC_ALL=C librechroot -l "$roundup_test_name" >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - - [[ $status != 0 ]] - empty $tmpdir/stdout - [[ "$(sed -n 2p $tmpdir/stderr)" =~ Usage:.* ]] -} - -it_obeys_the_n_flag() { - require network sudo || return 0 - - not test -f "$chrootdir/$roundup_test_name/$roundup_test_name/$roundup_test_name.stamp" - - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - testsudo librechroot -n "$roundup_test_name" -l "$roundup_test_name" run touch /"$roundup_test_name.stamp" - - test -f "$chrootdir/$roundup_test_name/$roundup_test_name/$roundup_test_name.stamp" -} - -# requires sudo so we know it's not failing because it needs root -it_fails_for_unknown_commands() { - require sudo || return 0 - testsudo librechroot phony >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - - [[ $status != 0 ]] - empty $tmpdir/stdout - not empty $tmpdir/stderr -} - -# requires sudo so we know it's not failing because it needs root -it_fails_for_unknown_flags() { - require sudo || return 0 - testsudo librechroot -q >$tmpdir/stdout 2>$tmpdir/stderr || status=$? - - [[ $status != 0 ]] - empty $tmpdir/stdout - not empty $tmpdir/stderr -} - -it_fails_when_syncing_a_copy_with_itself() { - require sudo || return 0 - testsudo timeout 5 librechroot -l root sync || status=$? - case $status in - 0|124|137) # success|timeout+TERM|timeout+KILL - false;; - *) - true;; - esac -} - -it_deletes_copies() { - require network sudo || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - testsudo librechroot -l "$roundup_test_name" make - test -d "$chrootdir/default/$roundup_test_name" - testsudo librechroot -l "$roundup_test_name" delete - not test -e "$chrootdir/default/$roundup_test_name" -} - -it_deletes_subvolumes_recursively() { - require network sudo btrfs || return 0 - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - testsudo librechroot -l "$roundup_test_name" make - testsudo librechroot -l "$roundup_test_name" install-name btrfs-progs - test -d "$chrootdir/default/$roundup_test_name" - not test -e "$chrootdir/default/$roundup_test_name/var/subvolume" - testsudo librechroot -l "$roundup_test_name" run btrfs subvolume create /var/subvolume - test -d "$chrootdir/default/$roundup_test_name/var/subvolume" - testsudo librechroot -l "$roundup_test_name" delete - not test -e "$chrootdir/default/$roundup_test_name" -} - -it_cleans_up_TMPDIR() { - require network sudo || return 0 - - local dir="$tmpdir/tmp" - mkdir -- "$dir" - - libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty - TMPDIR=$dir testsudo librechroot -l "$roundup_test_name" -A x86_64 make - - # Make sure $dir is now empty - rmdir -- "$dir" -} |