mirror of
https://github.com/fsquillace/junest.git
synced 2026-07-28 05:24:11 +00:00
Fix the --backend-command option
This commit is contained in:
parent
38ab252f98
commit
7fe9c0e9ec
6 changed files with 27 additions and 24 deletions
|
|
@ -13,8 +13,12 @@ CHECK_SCRIPT=${JUNEST_BASE}/lib/checks/check.sh
|
|||
|
||||
$JUNEST_SCRIPT proot --fakeroot -- "$CHECK_SCRIPT" --skip-aur-tests
|
||||
$JUNEST_SCRIPT proot -- "$CHECK_SCRIPT" --skip-aur-tests --use-sudo
|
||||
# Test the backend command option
|
||||
$JUNEST_SCRIPT proot --backend-command "$JUNEST_HOME/usr/bin/proot-x86_64" -- exit
|
||||
$JUNEST_SCRIPT ns --fakeroot -- "$CHECK_SCRIPT" --skip-aur-tests
|
||||
$JUNEST_SCRIPT ns -- "$CHECK_SCRIPT" --use-sudo
|
||||
# Test the backend command option
|
||||
$JUNEST_SCRIPT ns --backend-command "$JUNEST_HOME/usr/bin/bwrap" -- exit
|
||||
sudo -E $JUNEST_SCRIPT groot -- "$CHECK_SCRIPT" --run-root-tests --skip-aur-tests
|
||||
|
||||
# Test the wrappers work
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ ORIGIN_WD=$(pwd)
|
|||
DEFAULT_SH=("/bin/sh" "--login")
|
||||
|
||||
# List of executables that are run in the host OS:
|
||||
BWRAP="${JUNEST_HOME}/usr/bin/bwrap"
|
||||
PROOT="${JUNEST_HOME}/usr/bin/proot-${ARCH}"
|
||||
GROOT="${JUNEST_HOME}/usr/bin/groot"
|
||||
CLASSIC_CHROOT=chroot
|
||||
|
|
@ -82,7 +83,6 @@ CP=cp
|
|||
# Used for checking user namespace in config.gz file
|
||||
ZGREP=zgrep
|
||||
UNSHARE=unshare
|
||||
BWRAP=bwrap
|
||||
|
||||
LD_EXEC="$LD_LIB --library-path ${JUNEST_HOME}/usr/lib:${JUNEST_HOME}/lib"
|
||||
|
||||
|
|
@ -146,9 +146,9 @@ function unshare_cmd(){
|
|||
}
|
||||
|
||||
function bwrap_cmd(){
|
||||
if $LD_EXEC ${JUNEST_HOME}/usr/bin/$BWRAP --dev-bind / / "${DEFAULT_SH[0]}" "-c" ":"
|
||||
if $LD_EXEC $BWRAP --dev-bind / / "${DEFAULT_SH[0]}" "-c" ":"
|
||||
then
|
||||
$LD_EXEC ${JUNEST_HOME}/usr/bin/$BWRAP "${@}"
|
||||
$LD_EXEC $BWRAP "${@}"
|
||||
else
|
||||
die "Error: Something went wrong while executing bwrap command. Exiting"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ function _check_user_namespace() {
|
|||
# Globals:
|
||||
# JUNEST_HOME (RO) : The JuNest home directory.
|
||||
# DEFAULT_SH (RO) : Contains the default command to run in JuNest.
|
||||
# BWRAP (RO): : The location of the bwrap binary.
|
||||
# Arguments:
|
||||
# backend_args ($1) : The arguments to pass to bwrap
|
||||
# no_copy_files ($2?) : If false it will copy some files in /etc
|
||||
|
|
@ -82,7 +83,7 @@ function _check_user_namespace() {
|
|||
function run_env_as_bwrap_fakeroot(){
|
||||
check_nested_env
|
||||
|
||||
local backend_command="${1:-bwrap_cmd}"
|
||||
local backend_command="${1:-$BWRAP}"
|
||||
local backend_args="$2"
|
||||
local no_copy_files="$3"
|
||||
shift 3
|
||||
|
|
@ -99,7 +100,7 @@ function run_env_as_bwrap_fakeroot(){
|
|||
local args=()
|
||||
[[ "$1" != "" ]] && args=("-c" "$(insert_quotes_on_spaces "${@}")")
|
||||
|
||||
JUNEST_ENV=1 "$backend_command" $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 $backend_args sudo "${DEFAULT_SH[@]}" "${args[@]}"
|
||||
BWRAP="${backend_command}" JUNEST_ENV=1 bwrap_cmd $COMMON_BWRAP_OPTION --cap-add ALL --uid 0 --gid 0 $backend_args sudo "${DEFAULT_SH[@]}" "${args[@]}"
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -109,6 +110,7 @@ function run_env_as_bwrap_fakeroot(){
|
|||
# Globals:
|
||||
# JUNEST_HOME (RO) : The JuNest home directory.
|
||||
# DEFAULT_SH (RO) : Contains the default command to run in JuNest.
|
||||
# BWRAP (RO): : The location of the bwrap binary.
|
||||
# Arguments:
|
||||
# backend_args ($1) : The arguments to pass to bwrap
|
||||
# no_copy_files ($2?) : If false it will copy some files in /etc
|
||||
|
|
@ -123,7 +125,7 @@ function run_env_as_bwrap_fakeroot(){
|
|||
function run_env_as_bwrap_user() {
|
||||
check_nested_env
|
||||
|
||||
local backend_command="${1:-bwrap_cmd}"
|
||||
local backend_command="${1:-$BWRAP}"
|
||||
local backend_args="$2"
|
||||
local no_copy_files="$3"
|
||||
shift 3
|
||||
|
|
@ -146,7 +148,7 @@ function run_env_as_bwrap_user() {
|
|||
local args=()
|
||||
[[ "$1" != "" ]] && args=("-c" "$(insert_quotes_on_spaces "${@}")")
|
||||
|
||||
JUNEST_ENV=1 "$backend_command" $COMMON_BWRAP_OPTION $backend_args "${DEFAULT_SH[@]}" "${args[@]}"
|
||||
BWRAP="${backend_command}" JUNEST_ENV=1 bwrap_cmd $COMMON_BWRAP_OPTION $backend_args "${DEFAULT_SH[@]}" "${args[@]}"
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@
|
|||
# vim: ft=sh
|
||||
|
||||
function _run_env_with_proot(){
|
||||
local backend_command="${1:-proot_cmd}"
|
||||
local backend_command="${1:-$PROOT}"
|
||||
local backend_args="$2"
|
||||
shift 2
|
||||
|
||||
local args=()
|
||||
[[ "$1" != "" ]] && args=("-c" "$(insert_quotes_on_spaces "${@}")")
|
||||
|
||||
JUNEST_ENV=1 "${backend_command}" "${backend_args}" "${DEFAULT_SH[@]}" "${args[@]}"
|
||||
PROOT="${backend_command}" JUNEST_ENV=1 proot_cmd "${backend_args}" "${DEFAULT_SH[@]}" "${args[@]}"
|
||||
}
|
||||
|
||||
function _run_env_with_qemu(){
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ function test_unshare(){
|
|||
|
||||
function test_bwrap(){
|
||||
assertCommandSuccess bwrap_cmd new_program
|
||||
assertEquals "$(echo -e "ld_exec ${JUNEST_HOME}/usr/bin/$BWRAP --dev-bind / / /bin/sh -c :\nld_exec ${JUNEST_HOME}/usr/bin/$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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,10 +16,7 @@ function oneTimeSetUp(){
|
|||
## Mock functions ##
|
||||
function init_mocks() {
|
||||
function bwrap_cmd(){
|
||||
echo "bwrap $@"
|
||||
}
|
||||
function mybwrap(){
|
||||
echo "mybwrap $@"
|
||||
echo "$BWRAP $@"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -104,7 +101,7 @@ 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
|
||||
}
|
||||
|
|
@ -118,7 +115,7 @@ function test_run_env_as_bwrap_fakeroot_with_backend_command() {
|
|||
|
||||
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
|
||||
|
|
@ -134,7 +131,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 $?
|
||||
|
|
@ -160,7 +157,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 $?
|
||||
|
|
@ -186,14 +183,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
|
||||
|
|
@ -201,14 +198,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
|
||||
|
|
@ -216,14 +213,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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue