Add option to specify location of backend command

This commit is contained in:
Filippo Squillace 2020-03-27 18:39:58 +01:00
parent 348b73ce73
commit 09b9c644d9
8 changed files with 273 additions and 148 deletions

View file

@ -32,20 +32,28 @@ function init_mocks() {
echo "chroot_cmd $@"
}
GROOT=chroot_cmd
mychroot() {
echo mychroot $@
}
}
function test_run_env_as_groot_cmd(){
assertCommandSuccess run_env_as_groot "" "false" pwd
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)"
}
function test_run_env_as_groot_no_cmd(){
assertCommandSuccess run_env_as_groot "" "false" ""
assertCommandSuccess run_env_as_groot "" "" "false" ""
assertEquals "chroot_cmd -b $HOME -b /tmp -b /proc -b /sys -b /dev $JUNEST_HOME /bin/sh --login -c /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 -c /bin/sh --login" "$(cat $STDOUTF)"
}
function test_run_env_as_groot_no_copy(){
assertCommandSuccess run_env_as_groot "" "true" pwd
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)"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
@ -60,27 +68,32 @@ function test_run_env_as_groot_no_copy(){
function test_run_env_as_groot_nested_env(){
JUNEST_ENV=1
assertCommandFailOnStatus 106 run_env_as_groot "" "false" ""
assertCommandFailOnStatus 106 run_env_as_groot "" "" "false" ""
unset JUNEST_ENV
}
function test_run_env_as_groot_cmd_with_backend_args(){
assertCommandSuccess run_env_as_groot "-n -b /home/blah" "false" pwd
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)"
}
function test_run_env_as_chroot_cmd(){
assertCommandSuccess run_env_as_chroot "" "false" pwd
assertCommandSuccess run_env_as_chroot "" "" "false" pwd
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" ""
assertCommandSuccess run_env_as_chroot "" "" "false" ""
assertEquals "chroot_cmd $JUNEST_HOME /bin/sh --login -c /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 -c /bin/sh --login" "$(cat $STDOUTF)"
}
function test_run_env_as_chroot_no_copy(){
assertCommandSuccess run_env_as_chroot "" "true" pwd
assertCommandSuccess run_env_as_chroot "" "" "true" pwd
assertEquals "chroot_cmd $JUNEST_HOME /bin/sh --login -c pwd" "$(cat $STDOUTF)"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
@ -95,12 +108,12 @@ function test_run_env_as_chroot_no_copy(){
function test_run_env_as_choot_nested_env(){
JUNEST_ENV=1
assertCommandFailOnStatus 106 run_env_as_chroot "" "false" ""
assertCommandFailOnStatus 106 run_env_as_chroot "" "" "false" ""
unset JUNEST_ENV
}
function test_run_env_as_chroot_cmd_with_backend_args(){
assertCommandSuccess run_env_as_chroot "-n -b /home/blah" "false" pwd
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)"
}

View file

@ -38,40 +38,46 @@ function setup_env(){
echo "setup_env($1)"
}
function run_env_as_proot_fakeroot(){
local backend_args="$1"
local no_copy_files="$2"
shift 2
echo "run_env_as_proot_fakeroot($backend_args,$no_copy_files,$@)"
local backend_command="$1"
local backend_args="$2"
local no_copy_files="$3"
shift 3
echo "run_env_as_proot_fakeroot($backend_command,$backend_args,$no_copy_files,$@)"
}
function run_env_as_groot(){
local backend_args="$1"
local no_copy_files="$2"
shift 2
echo "run_env_as_groot($backend_args,$no_copy_files,$@)"
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,$@)"
}
function run_env_as_chroot(){
local backend_args="$1"
local no_copy_files="$2"
shift 2
echo "run_env_as_chroot($backend_args,$no_copy_files,$@)"
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,$@)"
}
function run_env_as_proot_user(){
local backend_args="$1"
local no_copy_files="$2"
shift 2
echo "run_env_as_proot_user($backend_args,$no_copy_files,$@)"
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,$@)"
}
function run_env_as_bwrap_fakeroot(){
local backend_args="$1"
local no_copy_files="$2"
shift 2
echo "run_env_as_bwrap_fakeroot($backend_args,$no_copy_files,$@)"
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,$@)"
}
function run_env_as_bwrap_user(){
local backend_args="$1"
local no_copy_files="$2"
shift 2
echo "run_env_as_bwrap_user($backend_args,$no_copy_files,$@)"
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,$@)"
}
function test_help(){
@ -139,20 +145,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)"
assertCommandSuccess main proot -f --backend-command blah
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
@ -162,18 +173,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)"
assertCommandSuccess main proot --backend-command blah
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
@ -183,15 +199,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)"
assertCommandSuccess main groot --backend-command blah
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
@ -201,13 +223,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)"
assertCommandSuccess main root --backend-command blah
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
@ -217,34 +245,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)"
assertCommandSuccess main -f --backend-command blah
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
@ -254,34 +287,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)"
assertCommandSuccess main --backend-command blah
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

View file

@ -18,6 +18,9 @@ function init_mocks() {
function bwrap_cmd(){
echo "bwrap $@"
}
function mybwrap(){
echo "mybwrap $@"
}
}
function setUp(){
@ -100,22 +103,37 @@ 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"
assertCommandSuccess run_env_as_bwrap_fakeroot "" "" "false"
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try --uid 0 /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 --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try --uid 0 /bin/sh --login" "$(cat $STDOUTF)"
_test_copy_common_files
}
function test_run_env_as_bwrap_user() {
assertCommandSuccess run_env_as_bwrap_user "" "false"
assertCommandSuccess run_env_as_bwrap_user "" "" "false"
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try /bin/sh --login" "$(cat $STDOUTF)"
_test_copy_common_files
_test_copy_remaining_files
}
function test_run_env_as_bwrap_user_with_backend_command() {
assertCommandSuccess run_env_as_bwrap_user "mybwrap" "" "false"
assertEquals "mybwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try /bin/sh --login" "$(cat $STDOUTF)"
_test_copy_common_files
_test_copy_remaining_files
}
function test_run_env_as_bwrap_fakeroot_no_copy() {
assertCommandSuccess run_env_as_bwrap_fakeroot "" "true" ""
assertCommandSuccess run_env_as_bwrap_fakeroot "" "" "true" ""
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try --uid 0 /bin/sh --login" "$(cat $STDOUTF)"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
@ -141,7 +159,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" ""
assertCommandSuccess run_env_as_bwrap_user "" "" "true" ""
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try /bin/sh --login" "$(cat $STDOUTF)"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
@ -167,14 +185,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"
assertCommandSuccess run_env_as_bwrap_fakeroot "" "--bind /usr /usr" "false"
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try --uid 0 --bind /usr /usr /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"
assertCommandSuccess run_env_as_bwrap_user "" "--bind /usr /usr" "false"
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try --bind /usr /usr /bin/sh --login" "$(cat $STDOUTF)"
_test_copy_common_files
@ -182,14 +200,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"
assertCommandSuccess run_env_as_bwrap_fakeroot "" "" "false" "ls -la"
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try --uid 0 /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"
assertCommandSuccess run_env_as_bwrap_user "" "" "false" "ls -la"
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try /bin/sh --login -c \"ls -la\"" "$(cat $STDOUTF)"
_test_copy_common_files
@ -197,14 +215,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"
assertCommandSuccess run_env_as_bwrap_fakeroot "" "--bind /usr /usr" "false" "ls -la"
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try --uid 0 --bind /usr /usr /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"
assertCommandSuccess run_env_as_bwrap_user "" "--bind /usr /usr" "false" "ls -la"
assertEquals "bwrap --bind $JUNEST_HOME / --bind $HOME $HOME --bind /tmp /tmp --proc /proc --dev /dev --unshare-user-try --bind /usr /usr /bin/sh --login -c \"ls -la\"" "$(cat $STDOUTF)"
_test_copy_common_files
@ -213,13 +231,13 @@ function test_run_env_as_bwrap_user_with_backend_args_and_command() {
function test_run_env_as_bwrap_fakeroot_nested_env(){
JUNEST_ENV=1
assertCommandFailOnStatus 106 run_env_as_bwrap_fakeroot "" "false" ""
assertCommandFailOnStatus 106 run_env_as_bwrap_fakeroot "" "" "false" ""
unset JUNEST_ENV
}
function test_run_env_as_bwrap_user_nested_env(){
JUNEST_ENV=1
assertCommandFailOnStatus 106 run_env_as_bwrap_user "" "false" ""
assertCommandFailOnStatus 106 run_env_as_bwrap_user "" "" "false" ""
unset JUNEST_ENV
}

View file

@ -51,22 +51,37 @@ function test_run_env_as_proot_user(){
_run_env_with_qemu() {
echo $@
}
assertCommandSuccess run_env_as_proot_user "-k 3.10" "false" "/usr/bin/mkdir" "-v" "/newdir2"
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)"
SH=("/usr/bin/echo")
assertCommandSuccess run_env_as_proot_user "-k 3.10" "false"
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)"
_test_copy_common_files
_test_copy_remaining_files
}
function test_run_env_as_proot_user_with_backend_command(){
_run_env_with_qemu() {
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)"
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)"
_test_copy_common_files
_test_copy_remaining_files
}
function test_run_env_as_proot_user_no_copy(){
_run_env_with_qemu() {
echo $@
}
assertCommandSuccess run_env_as_proot_user "-k 3.10" "true" "/usr/bin/mkdir" "-v" "/newdir2"
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)"
[[ ! -e ${JUNEST_HOME}/etc/hosts ]]
@ -93,7 +108,7 @@ function test_run_env_as_proot_user_no_copy(){
function test_run_env_as_proot_user_nested_env(){
JUNEST_ENV=1
assertCommandFailOnStatus 106 run_env_as_proot_user "" "false"
assertCommandFailOnStatus 106 run_env_as_proot_user "" "" "false"
unset JUNEST_ENV
}
@ -101,19 +116,33 @@ function test_run_env_as_proot_fakeroot(){
_run_env_with_qemu() {
echo $@
}
assertCommandSuccess run_env_as_proot_fakeroot "-k 3.10" "false" "/usr/bin/mkdir" "-v" "/newdir2"
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)"
SH=("/usr/bin/echo")
assertCommandSuccess run_env_as_proot_fakeroot "-k 3.10" "false"
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)"
_test_copy_common_files
}
function test_run_env_as_proot_fakeroot_with_backend_command(){
_run_env_with_qemu() {
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)"
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)"
_test_copy_common_files
}
function test_run_env_as_proot_fakeroot_nested_env(){
JUNEST_ENV=1
assertCommandFailOnStatus 106 run_env_as_proot_fakeroot "" "false" ""
assertCommandFailOnStatus 106 run_env_as_proot_fakeroot "" "" "false" ""
unset JUNEST_ENV
}
@ -121,7 +150,7 @@ function test_run_env_with_quotes(){
_run_env_with_qemu() {
echo $@
}
assertCommandSuccess run_env_as_proot_user "-k 3.10" "false" "bash" "-c" "/usr/bin/mkdir -v /newdir2"
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)"
}
@ -131,10 +160,10 @@ function test_run_env_with_proot_args(){
echo $@
}
assertCommandSuccess _run_env_with_proot --help
assertCommandSuccess _run_env_with_proot "" "--help"
assertEquals "--help /bin/sh --login" "$(cat $STDOUTF)"
assertCommandSuccess _run_env_with_proot --help mycommand
assertCommandSuccess _run_env_with_proot "" "--help" mycommand
assertEquals "--help /bin/sh --login -c mycommand" "$(cat $STDOUTF)"
assertCommandFail _run_env_with_proot
@ -152,7 +181,7 @@ function test_qemu() {
echo $@
}
RANDOM=100 ARCH=x86_64 assertCommandSuccess _run_env_with_qemu ""
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)"
}