Add shellcheck

This commit is contained in:
Filippo Squillace 2022-02-27 22:43:12 +01:00
parent e7d7056e9c
commit 0295f37758
24 changed files with 519 additions and 456 deletions

View file

@ -1,6 +1,7 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
source "$(dirname $0)/../utils/utils.sh"
source "$(dirname "$0")/../utils/utils.sh"
# Disable the exiterr
set +e
@ -10,12 +11,12 @@ function oneTimeSetUp(){
}
function test_check_no_tabs(){
assertCommandFailOnStatus 1 grep -R "$(printf '\t')" $(dirname $0)/../../bin/*
assertEquals "" "$(cat $STDOUTF)"
assertEquals "" "$(cat $STDERRF)"
assertCommandFailOnStatus 1 grep -R "$(printf '\t')" $(dirname $0)/../../lib/*
assertEquals "" "$(cat $STDOUTF)"
assertEquals "" "$(cat $STDERRF)"
assertCommandFailOnStatus 1 grep -R "$(printf '\t')" "$(dirname "$0")"/../../bin/*
assertEquals "" "$(cat "$STDOUTF")"
assertEquals "" "$(cat "$STDERRF")"
assertCommandFailOnStatus 1 grep -R "$(printf '\t')" "$(dirname "$0")"/../../lib/*
assertEquals "" "$(cat "$STDOUTF")"
assertEquals "" "$(cat "$STDERRF")"
}
source $(dirname $0)/../utils/shunit2
source "$(dirname "$0")"/../utils/shunit2

View file

@ -1,6 +1,7 @@
#!/bin/bash
# shellcheck disable=SC1091
JUNEST_ROOT=$(readlink -f $(dirname $0)/../..)
JUNEST_ROOT=$(readlink -f "$(dirname "$0")"/../..)
source "$JUNEST_ROOT/tests/utils/utils.sh"
@ -29,32 +30,33 @@ function tearDown(){
function init_mocks() {
chroot_cmd() {
[ "$JUNEST_ENV" != "1" ] && return 1
echo "chroot_cmd $@"
echo "chroot_cmd $*"
}
# shellcheck disable=SC2034
GROOT=chroot_cmd
mychroot() {
echo mychroot $@
echo mychroot "$*"
}
}
function test_run_env_as_groot_cmd(){
assertCommandSuccess run_env_as_groot "" "" "false" pwd
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login -c pwd" "$(cat $STDOUTF)"
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login -c pwd" "$(cat "$STDOUTF")"
}
function test_run_env_as_groot_no_cmd(){
assertCommandSuccess run_env_as_groot "" "" "false" ""
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login" "$(cat "$STDOUTF")"
}
function test_run_env_as_groot_with_backend_command(){
assertCommandSuccess run_env_as_groot "mychroot" "" "false" ""
assertEquals "mychroot -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "mychroot -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login" "$(cat "$STDOUTF")"
}
function test_run_env_as_groot_no_copy(){
assertCommandSuccess run_env_as_groot "" "" "true" pwd
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login -c pwd" "$(cat $STDOUTF)"
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login -c pwd" "$(cat "$STDOUTF")"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
assertEquals 0 $?
@ -74,27 +76,27 @@ function test_run_env_as_groot_nested_env(){
function test_run_env_as_groot_cmd_with_backend_args(){
assertCommandSuccess run_env_as_groot "" "-n -b /home/blah" "false" pwd
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev -n -b /home/blah $JUNEST_HOME /bin/sh --login -c pwd" "$(cat $STDOUTF)"
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev -n -b /home/blah $JUNEST_HOME /bin/sh --login -c pwd" "$(cat "$STDOUTF")"
}
function test_run_env_as_chroot_cmd(){
assertCommandSuccess run_env_as_chroot "" "" "false" pwd
assertEquals "chroot_cmd $JUNEST_HOME /bin/sh --login -c pwd" "$(cat $STDOUTF)"
assertEquals "chroot_cmd $JUNEST_HOME /bin/sh --login -c pwd" "$(cat "$STDOUTF")"
}
function test_run_env_as_chroot_no_cmd(){
assertCommandSuccess run_env_as_chroot "" "" "false" ""
assertEquals "chroot_cmd $JUNEST_HOME /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "chroot_cmd $JUNEST_HOME /bin/sh --login" "$(cat "$STDOUTF")"
}
function test_run_env_as_chroot_with_backend_command(){
assertCommandSuccess run_env_as_chroot "mychroot" "" "false" ""
assertEquals "mychroot $JUNEST_HOME /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "mychroot $JUNEST_HOME /bin/sh --login" "$(cat "$STDOUTF")"
}
function test_run_env_as_chroot_no_copy(){
assertCommandSuccess run_env_as_chroot "" "" "true" pwd
assertEquals "chroot_cmd $JUNEST_HOME /bin/sh --login -c pwd" "$(cat $STDOUTF)"
assertEquals "chroot_cmd $JUNEST_HOME /bin/sh --login -c pwd" "$(cat "$STDOUTF")"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
assertEquals 0 $?
@ -114,7 +116,7 @@ function test_run_env_as_choot_nested_env(){
function test_run_env_as_chroot_cmd_with_backend_args(){
assertCommandSuccess run_env_as_chroot "" "-n -b /home/blah" "false" pwd
assertEquals "chroot_cmd -n -b /home/blah $JUNEST_HOME /bin/sh --login -c pwd" "$(cat $STDOUTF)"
assertEquals "chroot_cmd -n -b /home/blah $JUNEST_HOME /bin/sh --login -c pwd" "$(cat "$STDOUTF")"
}
source $JUNEST_ROOT/tests/utils/shunit2
source "$JUNEST_ROOT"/tests/utils/shunit2

View file

@ -1,6 +1,7 @@
#!/bin/bash
# shellcheck disable=SC1091
JUNEST_ROOT=$(readlink -f $(dirname $0)/../..)
JUNEST_ROOT=$(readlink -f "$(dirname "$0")"/../..)
source "$JUNEST_ROOT/tests/utils/utils.sh"
@ -21,52 +22,55 @@ function oneTimeTearDown(){
function setUp(){
ld_exec_mock() {
echo "ld_exec $@"
echo "ld_exec $*"
}
ld_exec_mock_false() {
echo "ld_exec $@"
echo "ld_exec $*"
return 1
}
# shellcheck disable=SC2034
LD_EXEC=ld_exec_mock
unshare_mock() {
echo "unshare $@"
echo "unshare $*"
}
# shellcheck disable=SC2034
UNSHARE=unshare_mock
bwrap_mock() {
echo "bwrap $@"
echo "bwrap $*"
}
# shellcheck disable=SC2034
BWRAP=bwrap_mock
}
function test_ln(){
LN=echo assertCommandSuccess ln_cmd -s ln_file new_file
assertEquals "-s ln_file new_file" "$(cat $STDOUTF)"
LN="echo" assertCommandSuccess ln_cmd -s ln_file new_file
assertEquals "-s ln_file new_file" "$(cat "$STDOUTF")"
LN=false assertCommandSuccess ln_cmd -s ln_file new_file
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false -s ln_file new_file" "$(cat $STDOUTF)"
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false -s ln_file new_file" "$(cat "$STDOUTF")"
LN=false LD_EXEC=false assertCommandFail ln_cmd
}
function test_getent(){
GETENT=echo assertCommandSuccess getent_cmd passwd
assertEquals "passwd" "$(cat $STDOUTF)"
GETENT="echo" assertCommandSuccess getent_cmd passwd
assertEquals "passwd" "$(cat "$STDOUTF")"
GETENT=false assertCommandSuccess getent_cmd passwd
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false passwd" "$(cat $STDOUTF)"
GETENT="false" assertCommandSuccess getent_cmd passwd
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false passwd" "$(cat "$STDOUTF")"
GETENT=false LD_EXEC=false assertCommandFail getent_cmd
}
function test_cp(){
CP=echo assertCommandSuccess cp_cmd passwd
assertEquals "passwd" "$(cat $STDOUTF)"
CP="echo" assertCommandSuccess cp_cmd passwd
assertEquals "passwd" "$(cat "$STDOUTF")"
CP=false assertCommandSuccess cp_cmd passwd
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false passwd" "$(cat $STDOUTF)"
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false passwd" "$(cat "$STDOUTF")"
CP=false LD_EXEC=false assertCommandFail cp_cmd
}
@ -76,7 +80,9 @@ function test_download(){
CURL=/bin/false
assertCommandSuccess download_cmd
# shellcheck disable=SC2034
WGET=/bin/false
# shellcheck disable=SC2034
CURL=/bin/true
assertCommandSuccess download_cmd
@ -84,76 +90,77 @@ function test_download(){
}
function test_rm(){
RM=echo assertCommandSuccess rm_cmd rm_file
assertEquals "rm_file" "$(cat $STDOUTF)"
RM="echo" assertCommandSuccess rm_cmd rm_file
assertEquals "rm_file" "$(cat "$STDOUTF")"
RM=false assertCommandSuccess rm_cmd rm_file
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false rm_file" "$(cat $STDOUTF)"
RM="false" assertCommandSuccess rm_cmd rm_file
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false rm_file" "$(cat "$STDOUTF")"
RM=false LD_EXEC=false assertCommandFail rm_cmd rm_file
}
function test_chown(){
local id=$(id -u)
local id
id=$(id -u)
CHOWN=echo assertCommandSuccess chown_cmd $id chown_file
assertEquals "$id chown_file" "$(cat $STDOUTF)"
CHOWN="echo" assertCommandSuccess chown_cmd "$id" chown_file
assertEquals "$id chown_file" "$(cat "$STDOUTF")"
CHOWN=false assertCommandSuccess chown_cmd $id chown_file
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false $id chown_file" "$(cat $STDOUTF)"
CHOWN="false" assertCommandSuccess chown_cmd "$id" chown_file
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false $id chown_file" "$(cat "$STDOUTF")"
CHOWN=false LD_EXEC=false assertCommandFail chown_cmd $id chown_file
CHOWN=false LD_EXEC=false assertCommandFail chown_cmd "$id" chown_file
}
function test_mkdir(){
MKDIR=echo assertCommandSuccess mkdir_cmd -p new_dir/new_dir
assertEquals "-p new_dir/new_dir" "$(cat $STDOUTF)"
MKDIR="echo" assertCommandSuccess mkdir_cmd -p new_dir/new_dir
assertEquals "-p new_dir/new_dir" "$(cat "$STDOUTF")"
MKDIR=false assertCommandSuccess mkdir_cmd -p new_dir/new_dir
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false -p new_dir/new_dir" "$(cat $STDOUTF)"
assertEquals "ld_exec ${JUNEST_HOME}/usr/bin/false -p new_dir/new_dir" "$(cat "$STDOUTF")"
MKDIR=false LD_EXEC=false assertCommandFail mkdir_cmd -p new_dir/new_dir
}
function test_zgrep(){
ZGREP=echo assertCommandSuccess zgrep_cmd new_file
assertEquals "new_file" "$(cat $STDOUTF)"
ZGREP="echo" assertCommandSuccess zgrep_cmd new_file
assertEquals "new_file" "$(cat "$STDOUTF")"
mkdir -p ${JUNEST_HOME}/usr/bin
touch ${JUNEST_HOME}/usr/bin/false
chmod +x ${JUNEST_HOME}/usr/bin/false
mkdir -p "${JUNEST_HOME}"/usr/bin
touch "${JUNEST_HOME}"/usr/bin/false
chmod +x "${JUNEST_HOME}"/usr/bin/false
echo -e "#!/bin/bash\necho zgrep" > ${JUNEST_HOME}/usr/bin/false
echo -e "#!/bin/bash\necho zgrep" > "${JUNEST_HOME}"/usr/bin/false
ZGREP=false assertCommandSuccess zgrep_cmd new_file
assertEquals "zgrep" "$(cat $STDOUTF)"
assertEquals "zgrep" "$(cat "$STDOUTF")"
echo -e "#!/bin/bash\nexit 1" > ${JUNEST_HOME}/usr/bin/false
echo -e "#!/bin/bash\nexit 1" > "${JUNEST_HOME}"/usr/bin/false
ZGREP=false assertCommandFail zgrep_cmd new_file
}
function test_unshare(){
assertCommandSuccess unshare_cmd new_program
assertEquals "$(echo -e "ld_exec ${JUNEST_HOME}/usr/bin/$UNSHARE --user /bin/sh -c :\nld_exec ${JUNEST_HOME}/usr/bin/$UNSHARE new_program")" "$(cat $STDOUTF)"
assertEquals "$(echo -e "ld_exec ${JUNEST_HOME}/usr/bin/$UNSHARE --user /bin/sh -c :\nld_exec ${JUNEST_HOME}/usr/bin/$UNSHARE new_program")" "$(cat "$STDOUTF")"
LD_EXEC=ld_exec_mock_false assertCommandSuccess unshare_cmd new_program
assertEquals "$(echo -e "ld_exec ${JUNEST_HOME}/usr/bin/unshare_mock --user /bin/sh -c :\nunshare --user /bin/sh -c :\nunshare new_program")" "$(cat $STDOUTF)"
assertEquals "$(echo -e "ld_exec ${JUNEST_HOME}/usr/bin/unshare_mock --user /bin/sh -c :\nunshare --user /bin/sh -c :\nunshare new_program")" "$(cat "$STDOUTF")"
UNSHARE=false LD_EXEC=false assertCommandFail unshare_cmd new_program
}
function test_bwrap(){
assertCommandSuccess bwrap_cmd new_program
assertEquals "$(echo -e "ld_exec $BWRAP --dev-bind / / /bin/sh -c :\nld_exec $BWRAP new_program")" "$(cat $STDOUTF)"
assertEquals "$(echo -e "ld_exec $BWRAP --dev-bind / / /bin/sh -c :\nld_exec $BWRAP new_program")" "$(cat "$STDOUTF")"
BWRAP=false LD_EXEC=false assertCommandFail bwrap_cmd new_program
}
function test_chroot(){
CLASSIC_CHROOT=echo assertCommandSuccess chroot_cmd root
assertEquals "root" "$(cat $STDOUTF)"
CLASSIC_CHROOT="echo" assertCommandSuccess chroot_cmd root
assertEquals "root" "$(cat "$STDOUTF")"
CLASSIC_CHROOT=false assertCommandSuccess chroot_cmd root
assertEquals "ld_exec $JUNEST_HOME/usr/bin/false root" "$(cat $STDOUTF)"
assertEquals "ld_exec $JUNEST_HOME/usr/bin/false root" "$(cat "$STDOUTF")"
CLASSIC_CHROOT=false LD_EXEC=false assertCommandFail chroot_cmd root
}
@ -170,34 +177,35 @@ function test_proot_cmd_seccomp(){
}
PROOT=envv
assertCommandSuccess proot_cmd cmd
assertEquals "" "$(cat $STDOUTF | grep "^PROOT_NO_SECCOMP")"
assertEquals "" "$(grep "^PROOT_NO_SECCOMP" "$STDOUTF")"
envv(){
env | grep "^PROOT_NO_SECCOMP"
}
# shellcheck disable=SC2034
PROOT=envv
assertCommandSuccess proot_cmd cmd
# The variable PROOT_NO_SECCOMP will be produced
# twice due to the fallback mechanism
assertEquals "PROOT_NO_SECCOMP=1
PROOT_NO_SECCOMP=1" "$(cat $STDOUTF | grep "^PROOT_NO_SECCOMP")"
PROOT_NO_SECCOMP=1" "$(grep "^PROOT_NO_SECCOMP" "$STDOUTF")"
}
function test_copy_passwd_and_group(){
getent_cmd_mock() {
echo $@
echo "$*"
}
GETENT=getent_cmd_mock assertCommandSuccess copy_passwd_and_group
assertEquals "$(echo -e "passwd\npasswd $USER")" "$(cat $JUNEST_HOME/etc/passwd)"
assertEquals "group" "$(cat $JUNEST_HOME/etc/group)"
assertEquals "$(echo -e "passwd\npasswd $USER")" "$(cat "$JUNEST_HOME"/etc/passwd)"
assertEquals "group" "$(cat "$JUNEST_HOME"/etc/group)"
}
function test_copy_passwd_and_group_fallback(){
cp_cmd_mock() {
echo $@
echo "$*"
}
CP=cp_cmd_mock GETENT=false LD_EXEC=false assertCommandSuccess copy_passwd_and_group
assertEquals "$(echo -e "-f /etc/passwd $JUNEST_HOME//etc/passwd\n-f /etc/group $JUNEST_HOME//etc/group")" "$(cat $STDOUTF)"
assertEquals "$(echo -e "-f /etc/passwd $JUNEST_HOME//etc/passwd\n-f /etc/group $JUNEST_HOME//etc/group")" "$(cat "$STDOUTF")"
}
function test_copy_passwd_and_group_failure(){
@ -213,14 +221,14 @@ function test_nested_env_not_set_variable(){
}
function test_check_same_arch_not_same(){
echo "JUNEST_ARCH=XXX" > ${JUNEST_HOME}/etc/junest/info
echo "JUNEST_ARCH=XXX" > "${JUNEST_HOME}"/etc/junest/info
assertCommandFailOnStatus 104 check_same_arch
}
function test_check_same_arch(){
echo "JUNEST_ARCH=$ARCH" > ${JUNEST_HOME}/etc/junest/info
echo "JUNEST_ARCH=$ARCH" > "${JUNEST_HOME}"/etc/junest/info
assertCommandSuccess check_same_arch
}
source $JUNEST_ROOT/tests/utils/shunit2
source "$JUNEST_ROOT"/tests/utils/shunit2

View file

@ -1,8 +1,10 @@
#!/bin/bash
source "$(dirname $0)/../utils/utils.sh"
# shellcheck disable=SC1091
JUNEST_BASE="$(dirname $0)/../.."
source $JUNEST_BASE/bin/junest -h &> /dev/null
source "$(dirname "$0")/../utils/utils.sh"
JUNEST_BASE="$(dirname "$0")/../.."
source "$JUNEST_BASE"/bin/junest -h &> /dev/null
# Disable the exiterr
set +e
@ -37,42 +39,42 @@ function setUp(){
local backend_args="$2"
local no_copy_files="$3"
shift 3
echo "run_env_as_proot_fakeroot($backend_command,$backend_args,$no_copy_files,$@)"
echo "run_env_as_proot_fakeroot($backend_command,$backend_args,$no_copy_files,$*)"
}
function run_env_as_groot(){
local backend_command="$1"
local backend_args="$2"
local no_copy_files="$3"
shift 3
echo "run_env_as_groot($backend_command,$backend_args,$no_copy_files,$@)"
echo "run_env_as_groot($backend_command,$backend_args,$no_copy_files,$*)"
}
function run_env_as_chroot(){
local backend_command="$1"
local backend_args="$2"
local no_copy_files="$3"
shift 3
echo "run_env_as_chroot($backend_command,$backend_args,$no_copy_files,$@)"
echo "run_env_as_chroot($backend_command,$backend_args,$no_copy_files,$*)"
}
function run_env_as_proot_user(){
local backend_command="$1"
local backend_args="$2"
local no_copy_files="$3"
shift 3
echo "run_env_as_proot_user($backend_command,$backend_args,$no_copy_files,$@)"
echo "run_env_as_proot_user($backend_command,$backend_args,$no_copy_files,$*)"
}
function run_env_as_bwrap_fakeroot(){
local backend_command="$1"
local backend_args="$2"
local no_copy_files="$3"
shift 3
echo "run_env_as_bwrap_fakeroot($backend_command,$backend_args,$no_copy_files,$@)"
echo "run_env_as_bwrap_fakeroot($backend_command,$backend_args,$no_copy_files,$*)"
}
function run_env_as_bwrap_user(){
local backend_command="$1"
local backend_args="$2"
local no_copy_files="$3"
shift 3
echo "run_env_as_bwrap_user($backend_command,$backend_args,$no_copy_files,$@)"
echo "run_env_as_bwrap_user($backend_command,$backend_args,$no_copy_files,$*)"
}
function is_env_installed(){
return 0
@ -84,25 +86,25 @@ function setUp(){
function test_help(){
assertCommandSuccess main -h
assertEquals "usage" "$(cat $STDOUTF)"
assertEquals "usage" "$(cat "$STDOUTF")"
assertCommandSuccess main --help
assertEquals "usage" "$(cat $STDOUTF)"
assertEquals "usage" "$(cat "$STDOUTF")"
}
function test_version(){
assertCommandSuccess main -V
assertEquals "version" "$(cat $STDOUTF)"
assertEquals "version" "$(cat "$STDOUTF")"
assertCommandSuccess main --version
assertEquals "version" "$(cat $STDOUTF)"
assertEquals "version" "$(cat "$STDOUTF")"
}
function test_build_image_env(){
assertCommandSuccess main b
assertEquals "build_image_env(false)" "$(cat $STDOUTF)"
assertEquals "build_image_env(false)" "$(cat "$STDOUTF")"
assertCommandSuccess main build
assertEquals "build_image_env(false)" "$(cat $STDOUTF)"
assertEquals "build_image_env(false)" "$(cat "$STDOUTF")"
assertCommandSuccess main b -n
assertEquals "build_image_env(true)" "$(cat $STDOUTF)"
assertEquals "build_image_env(true)" "$(cat "$STDOUTF")"
assertCommandSuccess main build --disable-check
assertEquals "build_image_env(true)" "$(cat $STDOUTF)"
assertEquals "build_image_env(true)" "$(cat "$STDOUTF")"
}
function test_create_wrappers(){
@ -111,26 +113,26 @@ function test_create_wrappers(){
echo "create_wrappers($force)"
}
assertCommandSuccess main create-bin-wrappers
assertEquals "create_wrappers(false)" "$(cat $STDOUTF)"
assertEquals "create_wrappers(false)" "$(cat "$STDOUTF")"
assertCommandSuccess main create-bin-wrappers --force
assertEquals "create_wrappers(true)" "$(cat $STDOUTF)"
assertEquals "create_wrappers(true)" "$(cat "$STDOUTF")"
}
function test_delete_env(){
assertCommandSuccess main s -d
assertEquals "delete_env" "$(cat $STDOUTF)"
assertEquals "delete_env" "$(cat "$STDOUTF")"
assertCommandSuccess main setup --delete
assertEquals "delete_env" "$(cat $STDOUTF)"
assertEquals "delete_env" "$(cat "$STDOUTF")"
}
function test_setup_env_from_file(){
is_env_installed(){
return 1
}
assertCommandSuccess main s -i myimage
assertEquals "setup_env_from_file(myimage)" "$(cat $STDOUTF)"
assertEquals "setup_env_from_file(myimage)" "$(cat "$STDOUTF")"
assertCommandSuccess main setup --from-file myimage
assertEquals "setup_env_from_file(myimage)" "$(cat $STDOUTF)"
assertEquals "setup_env_from_file(myimage)" "$(cat "$STDOUTF")"
is_env_installed(){
return 0
@ -143,13 +145,13 @@ function test_setup_env(){
return 1
}
assertCommandSuccess main s
assertEquals "setup_env()" "$(cat $STDOUTF)"
assertEquals "setup_env()" "$(cat "$STDOUTF")"
assertCommandSuccess main setup
assertEquals "setup_env()" "$(cat $STDOUTF)"
assertEquals "setup_env()" "$(cat "$STDOUTF")"
assertCommandSuccess main s -a arm
assertEquals "setup_env(arm)" "$(cat $STDOUTF)"
assertEquals "setup_env(arm)" "$(cat "$STDOUTF")"
assertCommandSuccess main setup --arch arm
assertEquals "setup_env(arm)" "$(cat $STDOUTF)"
assertEquals "setup_env(arm)" "$(cat "$STDOUTF")"
is_env_installed(){
return 0
@ -159,25 +161,25 @@ function test_setup_env(){
function test_run_env_as_proot_fakeroot(){
assertCommandSuccess main p -f
assertEquals "run_env_as_proot_fakeroot(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot --fakeroot
assertEquals "run_env_as_proot_fakeroot(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main p -f -n
assertEquals "run_env_as_proot_fakeroot(,,true,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(,,true,)" "$(cat "$STDOUTF")"
assertCommandSuccess main p -f --backend-command blah
assertEquals "run_env_as_proot_fakeroot(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot -f --backend-command blah
assertEquals "run_env_as_proot_fakeroot(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot -f -b "-b arg"
assertEquals "run_env_as_proot_fakeroot(,-b arg,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(,-b arg,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot -f -b "-b arg" -- command -kv
assertEquals "run_env_as_proot_fakeroot(,-b arg,false,command -kv)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(,-b arg,false,command -kv)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot -f command --as
assertEquals "run_env_as_proot_fakeroot(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(,,false,command --as)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot -f -- command --as
assertEquals "run_env_as_proot_fakeroot(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_fakeroot(,,false,command --as)" "$(cat "$STDOUTF")"
is_env_installed(){
return 1
@ -187,23 +189,23 @@ function test_run_env_as_proot_fakeroot(){
function test_run_env_as_user(){
assertCommandSuccess main proot
assertEquals "run_env_as_proot_user(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_user(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main p -n
assertEquals "run_env_as_proot_user(,,true,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_user(,,true,)" "$(cat "$STDOUTF")"
assertCommandSuccess main p --backend-command blah
assertEquals "run_env_as_proot_user(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_user(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot --backend-command blah
assertEquals "run_env_as_proot_user(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_user(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot -b "-b arg"
assertEquals "run_env_as_proot_user(,-b arg,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_user(,-b arg,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot -b "-b arg" -- command -ll
assertEquals "run_env_as_proot_user(,-b arg,false,command -ll)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_user(,-b arg,false,command -ll)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot command -ls
assertEquals "run_env_as_proot_user(,,false,command -ls)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_user(,,false,command -ls)" "$(cat "$STDOUTF")"
assertCommandSuccess main proot -- command -ls
assertEquals "run_env_as_proot_user(,,false,command -ls)" "$(cat $STDOUTF)"
assertEquals "run_env_as_proot_user(,,false,command -ls)" "$(cat "$STDOUTF")"
is_env_installed(){
return 1
@ -213,21 +215,21 @@ function test_run_env_as_user(){
function test_run_env_as_groot(){
assertCommandSuccess main g
assertEquals "run_env_as_groot(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_groot(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main g -n
assertEquals "run_env_as_groot(,,true,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_groot(,,true,)" "$(cat "$STDOUTF")"
assertCommandSuccess main g -b "-b arg"
assertEquals "run_env_as_groot(,-b arg,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_groot(,-b arg,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main g --backend-command blah
assertEquals "run_env_as_groot(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_groot(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main groot --backend-command blah
assertEquals "run_env_as_groot(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_groot(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main groot command
assertEquals "run_env_as_groot(,,false,command)" "$(cat $STDOUTF)"
assertEquals "run_env_as_groot(,,false,command)" "$(cat "$STDOUTF")"
assertCommandSuccess main groot -- command
assertEquals "run_env_as_groot(,,false,command)" "$(cat $STDOUTF)"
assertEquals "run_env_as_groot(,,false,command)" "$(cat "$STDOUTF")"
is_env_installed(){
return 1
@ -237,19 +239,19 @@ function test_run_env_as_groot(){
function test_run_env_as_chroot(){
assertCommandSuccess main r
assertEquals "run_env_as_chroot(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_chroot(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main r -b "-b arg"
assertEquals "run_env_as_chroot(,-b arg,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_chroot(,-b arg,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main r --backend-command blah
assertEquals "run_env_as_chroot(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_chroot(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main root --backend-command blah
assertEquals "run_env_as_chroot(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_chroot(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main root command
assertEquals "run_env_as_chroot(,,false,command)" "$(cat $STDOUTF)"
assertEquals "run_env_as_chroot(,,false,command)" "$(cat "$STDOUTF")"
assertCommandSuccess main root -- command
assertEquals "run_env_as_chroot(,,false,command)" "$(cat $STDOUTF)"
assertEquals "run_env_as_chroot(,,false,command)" "$(cat "$STDOUTF")"
is_env_installed(){
return 1
@ -259,39 +261,39 @@ function test_run_env_as_chroot(){
function test_run_env_as_bwrap_fakeroot(){
assertCommandSuccess main n -f
assertEquals "run_env_as_bwrap_fakeroot(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -f
assertEquals "run_env_as_bwrap_fakeroot(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -n -f
assertEquals "run_env_as_bwrap_fakeroot(,,true,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,true,)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -f -b "-b arg"
assertEquals "run_env_as_bwrap_fakeroot(,-b arg,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,-b arg,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -f -b "-b arg" -- command -kv
assertEquals "run_env_as_bwrap_fakeroot(,-b arg,false,command -kv)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,-b arg,false,command -kv)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -f command --as
assertEquals "run_env_as_bwrap_fakeroot(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,false,command --as)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -f -- command --as
assertEquals "run_env_as_bwrap_fakeroot(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,false,command --as)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -f --backend-command blah
assertEquals "run_env_as_bwrap_fakeroot(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main -f --backend-command blah
assertEquals "run_env_as_bwrap_fakeroot(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main -f
assertEquals "run_env_as_bwrap_fakeroot(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main -f
assertEquals "run_env_as_bwrap_fakeroot(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main -f -b "-b arg"
assertEquals "run_env_as_bwrap_fakeroot(,-b arg,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,-b arg,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main -f -b "-b arg" -- command -kv
assertEquals "run_env_as_bwrap_fakeroot(,-b arg,false,command -kv)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,-b arg,false,command -kv)" "$(cat "$STDOUTF")"
assertCommandSuccess main -f command --as
assertEquals "run_env_as_bwrap_fakeroot(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,false,command --as)" "$(cat "$STDOUTF")"
assertCommandSuccess main -f -- command --as
assertEquals "run_env_as_bwrap_fakeroot(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_fakeroot(,,false,command --as)" "$(cat "$STDOUTF")"
is_env_installed(){
return 1
@ -301,39 +303,39 @@ function test_run_env_as_bwrap_fakeroot(){
function test_run_env_as_bwrap_user(){
assertCommandSuccess main n
assertEquals "run_env_as_bwrap_user(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns
assertEquals "run_env_as_bwrap_user(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -n
assertEquals "run_env_as_bwrap_user(,,true,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,true,)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -b "-b arg"
assertEquals "run_env_as_bwrap_user(,-b arg,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,-b arg,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -b "-b arg" -- command -kv
assertEquals "run_env_as_bwrap_user(,-b arg,false,command -kv)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,-b arg,false,command -kv)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns command --as
assertEquals "run_env_as_bwrap_user(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,false,command --as)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns -- command --as
assertEquals "run_env_as_bwrap_user(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,false,command --as)" "$(cat "$STDOUTF")"
assertCommandSuccess main ns --backend-command blah
assertEquals "run_env_as_bwrap_user(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main --backend-command blah
assertEquals "run_env_as_bwrap_user(blah,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(blah,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main
assertEquals "run_env_as_bwrap_user(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main
assertEquals "run_env_as_bwrap_user(,,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main -b "-b arg"
assertEquals "run_env_as_bwrap_user(,-b arg,false,)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,-b arg,false,)" "$(cat "$STDOUTF")"
assertCommandSuccess main -b "-b arg" -- command -kv
assertEquals "run_env_as_bwrap_user(,-b arg,false,command -kv)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,-b arg,false,command -kv)" "$(cat "$STDOUTF")"
assertCommandSuccess main command --as
assertEquals "run_env_as_bwrap_user(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,false,command --as)" "$(cat "$STDOUTF")"
assertCommandSuccess main -- command --as
assertEquals "run_env_as_bwrap_user(,,false,command --as)" "$(cat $STDOUTF)"
assertEquals "run_env_as_bwrap_user(,,false,command --as)" "$(cat "$STDOUTF")"
is_env_installed(){
return 1
@ -353,4 +355,4 @@ function test_invalid_option(){
assertCommandFail main s --no-option
}
source $(dirname $0)/../utils/shunit2
source "$(dirname "$0")"/../utils/shunit2

View file

@ -1,6 +1,7 @@
#!/bin/bash
# shellcheck disable=SC1091
JUNEST_ROOT=$(readlink -f $(dirname $0)/../..)
JUNEST_ROOT=$(readlink -f "$(dirname "$0")"/../..)
source "$JUNEST_ROOT/tests/utils/utils.sh"
@ -16,7 +17,7 @@ function oneTimeSetUp(){
## Mock functions ##
function init_mocks() {
function bwrap_cmd(){
echo "$BWRAP $@"
echo "$BWRAP $*"
}
}
@ -39,16 +40,16 @@ function tearDown(){
}
function _test_copy_common_files() {
[[ -e /etc/hosts ]] && assertEquals "$(cat /etc/hosts)" "$(cat ${JUNEST_HOME}/etc/hosts)"
[[ -e /etc/host.conf ]] && assertEquals "$(cat /etc/host.conf)" "$(cat ${JUNEST_HOME}/etc/host.conf)"
[[ -e /etc/nsswitch.conf ]] && assertEquals "$(cat /etc/nsswitch.conf)" "$(cat ${JUNEST_HOME}/etc/nsswitch.conf)"
[[ -e /etc/resolv.conf ]] && assertEquals "$(cat /etc/resolv.conf)" "$(cat ${JUNEST_HOME}/etc/resolv.conf)"
[[ -e /etc/hosts ]] && assertEquals "$(cat /etc/hosts)" "$(cat "${JUNEST_HOME}"/etc/hosts)"
[[ -e /etc/host.conf ]] && assertEquals "$(cat /etc/host.conf)" "$(cat "${JUNEST_HOME}"/etc/host.conf)"
[[ -e /etc/nsswitch.conf ]] && assertEquals "$(cat /etc/nsswitch.conf)" "$(cat "${JUNEST_HOME}"/etc/nsswitch.conf)"
[[ -e /etc/resolv.conf ]] && assertEquals "$(cat /etc/resolv.conf)" "$(cat "${JUNEST_HOME}"/etc/resolv.conf)"
}
function _test_copy_remaining_files() {
[[ -e /etc/hosts.equiv ]] && assertEquals "$(cat /etc/hosts.equiv)" "$(cat ${JUNEST_HOME}/etc/hosts.equiv)"
[[ -e /etc/netgroup ]] && assertEquals "$(cat /etc/netgroup)" "$(cat ${JUNEST_HOME}/etc/netgroup)"
[[ -e /etc/networks ]] && assertEquals "$(cat /etc/networks)" "$(cat ${JUNEST_HOME}/etc/networks)"
[[ -e /etc/hosts.equiv ]] && assertEquals "$(cat /etc/hosts.equiv)" "$(cat "${JUNEST_HOME}"/etc/hosts.equiv)"
[[ -e /etc/netgroup ]] && assertEquals "$(cat /etc/netgroup)" "$(cat "${JUNEST_HOME}"/etc/netgroup)"
[[ -e /etc/networks ]] && assertEquals "$(cat /etc/networks)" "$(cat "${JUNEST_HOME}"/etc/networks)"
[[ -e ${JUNEST_HOME}/etc/passwd ]]
assertEquals 0 $?
@ -59,7 +60,7 @@ function _test_copy_remaining_files() {
function test_is_user_namespace_enabled_no_config_file(){
CONFIG_PROC_FILE="blah"
CONFIG_BOOT_FILE="blah"
assertCommandFailOnStatus $NOT_EXISTING_FILE _is_user_namespace_enabled
assertCommandFailOnStatus "$NOT_EXISTING_FILE" _is_user_namespace_enabled
}
function test_is_user_namespace_enabled_no_config(){
@ -67,7 +68,7 @@ function test_is_user_namespace_enabled_no_config(){
gzip config
CONFIG_PROC_FILE="config.gz"
CONFIG_BOOT_FILE="blah"
assertCommandFailOnStatus $NO_CONFIG_FOUND _is_user_namespace_enabled
assertCommandFailOnStatus "$NO_CONFIG_FOUND" _is_user_namespace_enabled
}
function test_is_user_namespace_enabled_with_config(){
@ -86,13 +87,15 @@ function test_is_user_namespace_enabled_with_userns_clone_file_disabled(){
CONFIG_BOOT_FILE="blah"
PROC_USERNS_CLONE_FILE="unprivileged_userns_clone"
echo "0" > $PROC_USERNS_CLONE_FILE
assertCommandFailOnStatus $UNPRIVILEGED_USERNS_DISABLED _is_user_namespace_enabled
assertCommandFailOnStatus "$UNPRIVILEGED_USERNS_DISABLED" _is_user_namespace_enabled
}
function test_is_user_namespace_enabled_with_userns_clone_file_enabled(){
echo "CONFIG_USER_NS=y" > config
gzip config
# shellcheck disable=SC2034
CONFIG_PROC_FILE="config.gz"
# shellcheck disable=SC2034
CONFIG_BOOT_FILE="blah"
PROC_USERNS_CLONE_FILE="unprivileged_userns_clone"
echo "1" > $PROC_USERNS_CLONE_FILE
@ -101,21 +104,21 @@ function test_is_user_namespace_enabled_with_userns_clone_file_enabled(){
function test_run_env_as_bwrap_fakeroot() {
assertCommandSuccess run_env_as_bwrap_fakeroot "" "" "false"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 sudo /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 sudo /bin/sh --login" "$(cat "$STDOUTF")"
_test_copy_common_files
}
function test_run_env_as_bwrap_fakeroot_with_backend_command() {
assertCommandSuccess run_env_as_bwrap_fakeroot "mybwrap" "" "false"
assertEquals "mybwrap $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 sudo /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "mybwrap $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 sudo /bin/sh --login" "$(cat "$STDOUTF")"
_test_copy_common_files
}
function test_run_env_as_bwrap_user() {
assertCommandSuccess run_env_as_bwrap_user "" "" "false"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION /bin/sh --login" "$(cat "$STDOUTF")"
_test_copy_common_files
_test_copy_remaining_files
@ -123,7 +126,7 @@ function test_run_env_as_bwrap_user() {
function test_run_env_as_bwrap_user_with_backend_command() {
assertCommandSuccess run_env_as_bwrap_user "mybwrap" "" "false"
assertEquals "mybwrap $COMMON_BWRAP_OPTION /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "mybwrap $COMMON_BWRAP_OPTION /bin/sh --login" "$(cat "$STDOUTF")"
_test_copy_common_files
_test_copy_remaining_files
@ -131,7 +134,7 @@ function test_run_env_as_bwrap_user_with_backend_command() {
function test_run_env_as_bwrap_fakeroot_no_copy() {
assertCommandSuccess run_env_as_bwrap_fakeroot "" "" "true" ""
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 sudo /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 sudo /bin/sh --login" "$(cat "$STDOUTF")"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
assertEquals 0 $?
@ -157,7 +160,7 @@ function test_run_env_as_bwrap_fakeroot_no_copy() {
function test_run_env_as_bwrap_user_no_copy() {
assertCommandSuccess run_env_as_bwrap_user "" "" "true" ""
assertEquals "$BWRAP $COMMON_BWRAP_OPTION /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION /bin/sh --login" "$(cat "$STDOUTF")"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
assertEquals 0 $?
@ -183,14 +186,14 @@ function test_run_env_as_bwrap_user_no_copy() {
function test_run_env_as_bwrap_fakeroot_with_backend_args() {
assertCommandSuccess run_env_as_bwrap_fakeroot "" "--bind /usr /usr" "false"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 --bind /usr /usr sudo /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 --bind /usr /usr sudo /bin/sh --login" "$(cat "$STDOUTF")"
_test_copy_common_files
}
function test_run_env_as_bwrap_user_with_backend_args() {
assertCommandSuccess run_env_as_bwrap_user "" "--bind /usr /usr" "false"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --bind /usr /usr /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --bind /usr /usr /bin/sh --login" "$(cat "$STDOUTF")"
_test_copy_common_files
_test_copy_remaining_files
@ -198,14 +201,14 @@ function test_run_env_as_bwrap_user_with_backend_args() {
function test_run_env_as_bwrap_fakeroot_with_command() {
assertCommandSuccess run_env_as_bwrap_fakeroot "" "" "false" "ls -la"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 sudo /bin/sh --login -c \"ls -la\"" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 sudo /bin/sh --login -c \"ls -la\"" "$(cat "$STDOUTF")"
_test_copy_common_files
}
function test_run_env_as_bwrap_user_with_command() {
assertCommandSuccess run_env_as_bwrap_user "" "" "false" "ls -la"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION /bin/sh --login -c \"ls -la\"" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION /bin/sh --login -c \"ls -la\"" "$(cat "$STDOUTF")"
_test_copy_common_files
_test_copy_remaining_files
@ -213,14 +216,14 @@ function test_run_env_as_bwrap_user_with_command() {
function test_run_env_as_bwrap_fakeroot_with_backend_args_and_command() {
assertCommandSuccess run_env_as_bwrap_fakeroot "" "--bind /usr /usr" "false" "ls -la"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 --bind /usr /usr sudo /bin/sh --login -c \"ls -la\"" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 --bind /usr /usr sudo /bin/sh --login -c \"ls -la\"" "$(cat "$STDOUTF")"
_test_copy_common_files
}
function test_run_env_as_bwrap_user_with_backend_args_and_command() {
assertCommandSuccess run_env_as_bwrap_user "" "--bind /usr /usr" "false" "ls -la"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --bind /usr /usr /bin/sh --login -c \"ls -la\"" "$(cat $STDOUTF)"
assertEquals "$BWRAP $COMMON_BWRAP_OPTION --bind /usr /usr /bin/sh --login -c \"ls -la\"" "$(cat "$STDOUTF")"
_test_copy_common_files
_test_copy_remaining_files
@ -233,9 +236,10 @@ function test_run_env_as_bwrap_fakeroot_nested_env(){
}
function test_run_env_as_bwrap_user_nested_env(){
# shellcheck disable=SC2034
JUNEST_ENV=1
assertCommandFailOnStatus 106 run_env_as_bwrap_user "" "" "false" ""
unset JUNEST_ENV
}
source $JUNEST_ROOT/tests/utils/shunit2
source "$JUNEST_ROOT"/tests/utils/shunit2

View file

@ -1,6 +1,7 @@
#!/bin/bash
# shellcheck disable=SC1091
JUNEST_ROOT=$(readlink -f $(dirname $0)/../..)
JUNEST_ROOT=$(readlink -f "$(dirname "$0")"/../..)
source "$JUNEST_ROOT/tests/utils/utils.sh"
@ -30,16 +31,16 @@ function tearDown(){
}
function _test_copy_common_files() {
[[ -e /etc/hosts ]] && assertEquals "$(cat /etc/hosts)" "$(cat ${JUNEST_HOME}/etc/hosts)"
[[ -e /etc/host.conf ]] && assertEquals "$(cat /etc/host.conf)" "$(cat ${JUNEST_HOME}/etc/host.conf)"
[[ -e /etc/nsswitch.conf ]] && assertEquals "$(cat /etc/nsswitch.conf)" "$(cat ${JUNEST_HOME}/etc/nsswitch.conf)"
[[ -e /etc/resolv.conf ]] && assertEquals "$(cat /etc/resolv.conf)" "$(cat ${JUNEST_HOME}/etc/resolv.conf)"
[[ -e /etc/hosts ]] && assertEquals "$(cat /etc/hosts)" "$(cat "${JUNEST_HOME}"/etc/hosts)"
[[ -e /etc/host.conf ]] && assertEquals "$(cat /etc/host.conf)" "$(cat "${JUNEST_HOME}"/etc/host.conf)"
[[ -e /etc/nsswitch.conf ]] && assertEquals "$(cat /etc/nsswitch.conf)" "$(cat "${JUNEST_HOME}"/etc/nsswitch.conf)"
[[ -e /etc/resolv.conf ]] && assertEquals "$(cat /etc/resolv.conf)" "$(cat "${JUNEST_HOME}"/etc/resolv.conf)"
}
function _test_copy_remaining_files() {
[[ -e /etc/hosts.equiv ]] && assertEquals "$(cat /etc/hosts.equiv)" "$(cat ${JUNEST_HOME}/etc/hosts.equiv)"
[[ -e /etc/netgroup ]] && assertEquals "$(cat /etc/netgroup)" "$(cat ${JUNEST_HOME}/etc/netgroup)"
[[ -e /etc/networks ]] && assertEquals "$(cat /etc/networks)" "$(cat ${JUNEST_HOME}/etc/networks)"
[[ -e /etc/hosts.equiv ]] && assertEquals "$(cat /etc/hosts.equiv)" "$(cat "${JUNEST_HOME}"/etc/hosts.equiv)"
[[ -e /etc/netgroup ]] && assertEquals "$(cat /etc/netgroup)" "$(cat "${JUNEST_HOME}"/etc/netgroup)"
[[ -e /etc/networks ]] && assertEquals "$(cat /etc/networks)" "$(cat "${JUNEST_HOME}"/etc/networks)"
[[ -e ${JUNEST_HOME}/etc/passwd ]]
assertEquals 0 $?
@ -49,14 +50,16 @@ function _test_copy_remaining_files() {
function test_run_env_as_proot_user(){
_run_env_with_qemu() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
assertCommandSuccess run_env_as_proot_user "" "-k 3.10" "false" "/usr/bin/mkdir" "-v" "/newdir2"
assertEquals "-b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat $STDOUTF)"
assertEquals "-b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat "$STDOUTF")"
SH=("/usr/bin/echo")
assertCommandSuccess run_env_as_proot_user "" "-k 3.10" "false"
assertEquals "-b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10" "$(cat $STDOUTF)"
assertEquals "-b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10" "$(cat "$STDOUTF")"
_test_copy_common_files
_test_copy_remaining_files
@ -64,14 +67,16 @@ function test_run_env_as_proot_user(){
function test_run_env_as_proot_user_with_backend_command(){
_run_env_with_qemu() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
assertCommandSuccess run_env_as_proot_user "myproot" "-k 3.10" "false" "/usr/bin/mkdir" "-v" "/newdir2"
assertEquals "myproot -b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat $STDOUTF)"
assertEquals "myproot -b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat "$STDOUTF")"
SH=("/usr/bin/echo")
assertCommandSuccess run_env_as_proot_user "myproot" "-k 3.10" "false"
assertEquals "myproot -b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10" "$(cat $STDOUTF)"
assertEquals "myproot -b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10" "$(cat "$STDOUTF")"
_test_copy_common_files
_test_copy_remaining_files
@ -79,10 +84,12 @@ function test_run_env_as_proot_user_with_backend_command(){
function test_run_env_as_proot_user_no_copy(){
_run_env_with_qemu() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
assertCommandSuccess run_env_as_proot_user "" "-k 3.10" "true" "/usr/bin/mkdir" "-v" "/newdir2"
assertEquals "-b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat $STDOUTF)"
assertEquals "-b $HOME -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat "$STDOUTF")"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
assertEquals 0 $?
@ -114,28 +121,33 @@ function test_run_env_as_proot_user_nested_env(){
function test_run_env_as_proot_fakeroot(){
_run_env_with_qemu() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
assertCommandSuccess run_env_as_proot_fakeroot "" "-k 3.10" "false" "/usr/bin/mkdir" "-v" "/newdir2"
assertEquals "-0 -b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat $STDOUTF)"
assertEquals "-0 -b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat "$STDOUTF")"
SH=("/usr/bin/echo")
assertCommandSuccess run_env_as_proot_fakeroot "" "-k 3.10" "false"
assertEquals "-0 -b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10" "$(cat $STDOUTF)"
assertEquals "-0 -b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10" "$(cat "$STDOUTF")"
_test_copy_common_files
}
function test_run_env_as_proot_fakeroot_with_backend_command(){
_run_env_with_qemu() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
assertCommandSuccess run_env_as_proot_fakeroot "myproot" "-k 3.10" "false" "/usr/bin/mkdir" "-v" "/newdir2"
assertEquals "myproot -0 -b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat $STDOUTF)"
assertEquals "myproot -0 -b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 /usr/bin/mkdir -v /newdir2" "$(cat "$STDOUTF")"
# shellcheck disable=SC2034
SH=("/usr/bin/echo")
assertCommandSuccess run_env_as_proot_fakeroot "myproot" "-k 3.10" "false"
assertEquals "myproot -0 -b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10" "$(cat $STDOUTF)"
assertEquals "myproot -0 -b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10" "$(cat "$STDOUTF")"
_test_copy_common_files
}
@ -148,41 +160,51 @@ function test_run_env_as_proot_fakeroot_nested_env(){
function test_run_env_with_quotes(){
_run_env_with_qemu() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
assertCommandSuccess run_env_as_proot_user "" "-k 3.10" "false" "bash" "-c" "/usr/bin/mkdir -v /newdir2"
assertEquals "-b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 bash -c /usr/bin/mkdir -v /newdir2" "$(cat $STDOUTF)"
assertEquals "-b ${HOME} -b /tmp -b /proc -b /sys -b /dev -r ${JUNEST_HOME} -k 3.10 bash -c /usr/bin/mkdir -v /newdir2" "$(cat "$STDOUTF")"
}
function test_run_env_with_proot_args(){
proot_cmd() {
[ "$JUNEST_ENV" != "1" ] && return 1
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
assertCommandSuccess _run_env_with_proot "" "--help"
assertEquals "--help /bin/sh --login" "$(cat $STDOUTF)"
assertEquals "--help /bin/sh --login" "$(cat "$STDOUTF")"
assertCommandSuccess _run_env_with_proot "" "--help" mycommand
assertEquals "--help /bin/sh --login -c mycommand" "$(cat $STDOUTF)"
assertEquals "--help /bin/sh --login -c mycommand" "$(cat "$STDOUTF")"
assertCommandFail _run_env_with_proot
}
function test_qemu() {
echo "JUNEST_ARCH=arm" > ${JUNEST_HOME}/etc/junest/info
echo "JUNEST_ARCH=arm" > "${JUNEST_HOME}"/etc/junest/info
rm_cmd() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
ln_cmd() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
_run_env_with_proot() {
echo $@
# shellcheck disable=SC2086
# shellcheck disable=SC2048
echo $*
}
RANDOM=100 ARCH=x86_64 assertCommandSuccess _run_env_with_qemu "" ""
assertEquals "$(echo -e "-s $JUNEST_HOME/bin/qemu-arm-static-x86_64 /tmp/qemu-arm-static-x86_64-100\n-q /tmp/qemu-arm-static-x86_64-100")" "$(cat $STDOUTF)"
assertEquals "$(echo -e "-s $JUNEST_HOME/bin/qemu-arm-static-x86_64 /tmp/qemu-arm-static-x86_64-100\n-q /tmp/qemu-arm-static-x86_64-100")" "$(cat "$STDOUTF")"
}
source $JUNEST_ROOT/tests/utils/shunit2
source "$JUNEST_ROOT"/tests/utils/shunit2

View file

@ -1,6 +1,7 @@
#!/bin/bash
# shellcheck disable=SC1091
JUNEST_ROOT=$(readlink -f $(dirname $0)/../..)
JUNEST_ROOT=$(readlink -f "$(dirname "$0")"/../..)
source "$JUNEST_ROOT/tests/utils/utils.sh"
@ -26,24 +27,26 @@ function tearDown(){
}
function test_is_env_installed(){
rm -rf $JUNEST_HOME/*
rm -rf "${JUNEST_HOME:?}"/*
assertCommandFail is_env_installed
touch $JUNEST_HOME/just_file
touch "$JUNEST_HOME"/just_file
assertCommandSuccess is_env_installed
}
function test_setup_env(){
rm -rf $JUNEST_HOME/*
rm -rf "${JUNEST_HOME:?}"/*
wget_mock(){
# Proof that the setup is happening
# inside $JUNEST_TEMPDIR
local cwd=${PWD#${JUNEST_TEMPDIR}}
local parent_dir=${PWD%${cwd}}
local cwd=${PWD#"${JUNEST_TEMPDIR}"}
local parent_dir=${PWD%"${cwd}"}
assertEquals "$JUNEST_TEMPDIR" "${parent_dir}"
touch file
tar -czvf ${CMD}-${ARCH}.tar.gz file
tar -czvf "${CMD}-${ARCH}".tar.gz file
}
# shellcheck disable=SC2034
WGET=wget_mock
# shellcheck disable=SC2119
setup_env 1> /dev/null
assertTrue "[ -e $JUNEST_HOME/file ]"
@ -52,10 +55,10 @@ function test_setup_env(){
function test_setup_env_from_file(){
rm -rf $JUNEST_HOME/*
rm -rf "${JUNEST_HOME:?}"/*
touch file
tar -czvf ${CMD}-${ARCH}.tar.gz file 1> /dev/null
assertCommandSuccess setup_env_from_file ${CMD}-${ARCH}.tar.gz
tar -czvf "${CMD}-${ARCH}".tar.gz file 1> /dev/null
assertCommandSuccess setup_env_from_file "${CMD}-${ARCH}.tar.gz"
assertTrue "[ -e $JUNEST_HOME/file ]"
}
@ -64,10 +67,10 @@ function test_setup_env_from_file_not_existing_file(){
}
function test_setup_env_from_file_with_absolute_path(){
rm -rf $JUNEST_HOME/*
rm -rf "${JUNEST_HOME:?}"/*
touch file
tar -czf ${CMD}-${ARCH}.tar.gz file
assertCommandSuccess setup_env_from_file ${CMD}-${ARCH}.tar.gz
tar -czf "${CMD}-${ARCH}".tar.gz file
assertCommandSuccess setup_env_from_file "${CMD}-${ARCH}.tar.gz"
assertTrue "[ -e $JUNEST_HOME/file ]"
}
@ -78,4 +81,4 @@ function test_delete_env(){
assertCommandFail is_env_installed
}
source $JUNEST_ROOT/tests/utils/shunit2
source "$JUNEST_ROOT"/tests/utils/shunit2

View file

@ -1,10 +1,13 @@
#!/bin/bash
source "$(dirname $0)/../utils/utils.sh"
# shellcheck disable=SC1091
source "$(dirname "$0")/../utils/utils.sh"
unset HOME
export HOME=$(TMPDIR=/tmp mktemp -d -t pearl-user-home.XXXXXXX)
export HOME
HOME=$(TMPDIR=/tmp mktemp -d -t pearl-user-home.XXXXXXX)
source "$(dirname $0)/../../lib/utils/utils.sh"
source "$(dirname "$0")/../../lib/utils/utils.sh"
# Disable the exiterr
set +e
@ -20,37 +23,42 @@ function test_check_not_null(){
function test_echoerr(){
assertCommandSuccess echoerr "Test"
assertEquals "Test" "$(cat $STDERRF)"
assertEquals "Test" "$(cat "$STDERRF")"
}
function test_error(){
assertCommandSuccess error "Test"
local expected=$(echo -e "\033[1;31mTest\033[0m")
assertEquals "$expected" "$(cat $STDERRF)"
local expected
expected=$(echo -e "\033[1;31mTest\033[0m")
assertEquals "$expected" "$(cat "$STDERRF")"
}
function test_warn(){
assertCommandSuccess warn "Test"
local expected=$(echo -e "\033[1;33mTest\033[0m")
assertEquals "$expected" "$(cat $STDERRF)"
local expected
expected=$(echo -e "\033[1;33mTest\033[0m")
assertEquals "$expected" "$(cat "$STDERRF")"
}
function test_info(){
assertCommandSuccess info "Test"
local expected=$(echo -e "\033[1;36mTest\033[0m")
assertEquals "$expected" "$(cat $STDOUTF)"
local expected
expected=$(echo -e "\033[1;36mTest\033[0m")
assertEquals "$expected" "$(cat "$STDOUTF")"
}
function test_die(){
assertCommandFail die "Test"
local expected=$(echo -e "\033[1;31mTest\033[0m")
assertEquals "$expected" "$(cat $STDERRF)"
local expected
expected=$(echo -e "\033[1;31mTest\033[0m")
assertEquals "$expected" "$(cat "$STDERRF")"
}
function test_die_on_status(){
assertCommandFailOnStatus 222 die_on_status 222 "Test"
local expected=$(echo -e "\033[1;31mTest\033[0m")
assertEquals "$expected" "$(cat $STDERRF)"
local expected
expected=$(echo -e "\033[1;31mTest\033[0m")
assertEquals "$expected" "$(cat "$STDERRF")"
}
function test_ask_null_question(){
@ -79,34 +87,12 @@ function test_ask_wrong_default_answer() {
assertEquals 33 $?
}
function test_check_and_trap_fail() {
trap echo EXIT
trap ls QUIT
assertCommandFailOnStatus 1 check_and_trap 'pwd' EXIT QUIT
}
function test_check_and_trap() {
trap - EXIT QUIT
assertCommandSuccess check_and_trap 'echo' EXIT QUIT
}
function test_check_and_force_trap_fail() {
trap echo EXIT
trap ls QUIT
assertCommandSuccess check_and_force_trap 'echo' EXIT QUIT
}
function test_check_and_force_trap() {
trap - EXIT QUIT
assertCommandSuccess check_and_force_trap 'echo' EXIT QUIT
}
function test_insert_quotes_on_spaces(){
assertCommandSuccess insert_quotes_on_spaces this is "a test"
assertEquals "this is \"a test\"" "$(cat $STDOUTF)"
assertEquals "this is \"a test\"" "$(cat "$STDOUTF")"
assertCommandSuccess insert_quotes_on_spaces this is 'a test'
assertEquals "this is \"a test\"" "$(cat $STDOUTF)"
assertEquals "this is \"a test\"" "$(cat "$STDOUTF")"
}
function test_contains_element(){
@ -116,4 +102,4 @@ function test_contains_element(){
assertCommandFailOnStatus 1 contains_element "blabla" "${array[@]}"
}
source $(dirname $0)/../utils/shunit2
source "$(dirname "$0")"/../utils/shunit2

View file

@ -1,7 +1,9 @@
#!/bin/bash
source "$(dirname $0)/../utils/utils.sh"
# shellcheck disable=SC1091
source "$(dirname $0)/../../lib/core/wrappers.sh"
source "$(dirname "$0")/../utils/utils.sh"
source "$(dirname "$0")/../../lib/core/wrappers.sh"
# Disable the exiterr
set +e
@ -20,61 +22,61 @@ function tearDown(){
function test_create_wrappers_empty_bin(){
assertCommandSuccess create_wrappers
assertEquals "" "$(cat $STDOUTF)"
assertEquals "" "$(cat "$STDOUTF")"
assertTrue "bin_wrappers does not exist" "[ -e $JUNEST_HOME/usr/bin_wrappers ]"
}
function test_create_wrappers_not_executable_file(){
touch $JUNEST_HOME/usr/bin/myfile
touch "$JUNEST_HOME"/usr/bin/myfile
assertCommandSuccess create_wrappers
assertEquals "" "$(cat $STDOUTF)"
assertEquals "" "$(cat "$STDOUTF")"
assertTrue "bin_wrappers should exist" "[ -e $JUNEST_HOME/usr/bin_wrappers ]"
assertTrue "myfile wrapper should not exist" "[ ! -x $JUNEST_HOME/usr/bin_wrappers/myfile ]"
}
function test_create_wrappers_executable_file(){
touch $JUNEST_HOME/usr/bin/myfile
chmod +x $JUNEST_HOME/usr/bin/myfile
touch "$JUNEST_HOME"/usr/bin/myfile
chmod +x "$JUNEST_HOME"/usr/bin/myfile
assertCommandSuccess create_wrappers
assertEquals "" "$(cat $STDOUTF)"
assertEquals "" "$(cat "$STDOUTF")"
assertTrue "bin_wrappers should exist" "[ -e $JUNEST_HOME/usr/bin_wrappers ]"
assertTrue "myfile wrapper should exist" "[ -x $JUNEST_HOME/usr/bin_wrappers/myfile ]"
}
function test_create_wrappers_already_exist(){
touch $JUNEST_HOME/usr/bin/myfile
chmod +x $JUNEST_HOME/usr/bin/myfile
mkdir -p $JUNEST_HOME/usr/bin_wrappers
echo "original" > $JUNEST_HOME/usr/bin_wrappers/myfile
chmod +x $JUNEST_HOME/usr/bin_wrappers/myfile
touch "$JUNEST_HOME"/usr/bin/myfile
chmod +x "$JUNEST_HOME"/usr/bin/myfile
mkdir -p "$JUNEST_HOME"/usr/bin_wrappers
echo "original" > "$JUNEST_HOME"/usr/bin_wrappers/myfile
chmod +x "$JUNEST_HOME"/usr/bin_wrappers/myfile
assertCommandSuccess create_wrappers false
assertEquals "" "$(cat $STDOUTF)"
assertEquals "" "$(cat "$STDOUTF")"
assertTrue "bin_wrappers should exist" "[ -e $JUNEST_HOME/usr/bin_wrappers ]"
assertTrue "myfile wrapper should exist" "[ -x $JUNEST_HOME/usr/bin_wrappers/myfile ]"
assertEquals "original" "$(cat $JUNEST_HOME/usr/bin_wrappers/myfile)"
assertEquals "original" "$(cat "$JUNEST_HOME"/usr/bin_wrappers/myfile)"
}
function test_create_wrappers_forced_already_exist(){
echo "new" > $JUNEST_HOME/usr/bin/myfile
chmod +x $JUNEST_HOME/usr/bin/myfile
mkdir -p $JUNEST_HOME/usr/bin_wrappers
echo "original" > $JUNEST_HOME/usr/bin_wrappers/myfile
chmod +x $JUNEST_HOME/usr/bin_wrappers/myfile
echo "new" > "$JUNEST_HOME"/usr/bin/myfile
chmod +x "$JUNEST_HOME"/usr/bin/myfile
mkdir -p "$JUNEST_HOME"/usr/bin_wrappers
echo "original" > "$JUNEST_HOME"/usr/bin_wrappers/myfile
chmod +x "$JUNEST_HOME"/usr/bin_wrappers/myfile
assertCommandSuccess create_wrappers true
assertEquals "" "$(cat $STDOUTF)"
assertEquals "" "$(cat "$STDOUTF")"
assertTrue "bin_wrappers should exist" "[ -e $JUNEST_HOME/usr/bin_wrappers ]"
assertTrue "myfile wrapper should exist" "[ -x $JUNEST_HOME/usr/bin_wrappers/myfile ]"
assertNotEquals "original" "$(cat $JUNEST_HOME/usr/bin_wrappers/myfile)"
assertNotEquals "original" "$(cat "$JUNEST_HOME"/usr/bin_wrappers/myfile)"
}
function test_create_wrappers_executable_no_longer_exist(){
mkdir -p $JUNEST_HOME/usr/bin_wrappers
touch $JUNEST_HOME/usr/bin_wrappers/myfile
chmod +x $JUNEST_HOME/usr/bin_wrappers/myfile
mkdir -p "$JUNEST_HOME"/usr/bin_wrappers
touch "$JUNEST_HOME"/usr/bin_wrappers/myfile
chmod +x "$JUNEST_HOME"/usr/bin_wrappers/myfile
assertCommandSuccess create_wrappers
assertEquals "" "$(cat $STDOUTF)"
assertEquals "" "$(cat "$STDOUTF")"
assertTrue "bin_wrappers should exist" "[ -e $JUNEST_HOME/usr/bin_wrappers ]"
assertTrue "myfile wrapper should not exist" "[ ! -x $JUNEST_HOME/usr/bin_wrappers/myfile ]"
}
source $(dirname $0)/../utils/shunit2
source "$(dirname "$0")"/../utils/shunit2

View file

@ -1,6 +1,7 @@
#!/bin/bash
tests_succeded=true
for tst in $(ls $(dirname $0)/test* | grep -v $(basename $0))
# shellcheck disable=SC2010
for tst in $(ls "$(dirname "$0")"/test* | grep -v "$(basename "$0")")
do
$tst || tests_succeded=false
done

View file

@ -1,26 +1,28 @@
#!/usr/bin/env bash
OLD_CWD=${PWD}
function cwdSetUp(){
ORIGIN_CWD=$(TMPDIR=/tmp mktemp -d -t junest-cwd.XXXXXXXXXX)
cd $ORIGIN_CWD
cd "$ORIGIN_CWD" || return 1
}
function cwdTearDown(){
rm -rf $ORIGIN_CWD
cd $OLD_CWD
rm -rf "$ORIGIN_CWD"
cd "$OLD_CWD" || return 1
}
function junestSetUp(){
JUNEST_HOME=$(TMPDIR=/tmp mktemp -d -t junest-home.XXXXXXXXXX)
mkdir -p ${JUNEST_HOME}/usr/bin
mkdir -p ${JUNEST_HOME}/etc/junest
echo "JUNEST_ARCH=x86_64" > ${JUNEST_HOME}/etc/junest/info
mkdir -p ${JUNEST_HOME}/etc/ca-certificates
mkdir -p "${JUNEST_HOME}/usr/bin"
mkdir -p "${JUNEST_HOME}/etc/junest"
echo "JUNEST_ARCH=x86_64" > "${JUNEST_HOME}/etc/junest/info"
mkdir -p "${JUNEST_HOME}/etc/ca-certificates"
}
function junestTearDown(){
# the CA directories are read only and can be deleted only by changing the mod
[ -d ${JUNEST_HOME}/etc/ca-certificates ] && chmod -R +w ${JUNEST_HOME}/etc/ca-certificates
rm -rf $JUNEST_HOME
[ -d "${JUNEST_HOME}/etc/ca-certificates" ] && chmod -R +w "${JUNEST_HOME}/etc/ca-certificates"
rm -rf "$JUNEST_HOME"
unset JUNEST_HOME
}
@ -32,15 +34,17 @@ function setUpUnitTests(){
}
function assertCommandSuccess(){
# shellcheck disable=SC2091
$(set -e
"$@" > $STDOUTF 2> $STDERRF
"$@" > "$STDOUTF" 2> "$STDERRF"
)
assertTrue "The command $1 did not return 0 exit status" $?
}
function assertCommandFail(){
# shellcheck disable=SC2091
$(set -e
"$@" > $STDOUTF 2> $STDERRF
"$@" > "$STDOUTF" 2> "$STDERRF"
)
assertFalse "The command $1 returned 0 exit status" $?
}
@ -50,8 +54,9 @@ function assertCommandFail(){
function assertCommandFailOnStatus(){
local status=$1
shift
# shellcheck disable=SC2091
$(set -e
"$@" > $STDOUTF 2> $STDERRF
"$@" > "$STDOUTF" 2> "$STDERRF"
)
assertEquals $status $?
assertEquals "$status" $?
}