diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lib-conf-test.sh | 13 | ||||
-rwxr-xr-x | test/testenv | 6 |
2 files changed, 16 insertions, 3 deletions
diff --git a/test/lib-conf-test.sh b/test/lib-conf-test.sh index d79c5f2..e1a27e6 100644 --- a/test/lib-conf-test.sh +++ b/test/lib-conf-test.sh @@ -23,6 +23,19 @@ it_figures_out_HOME_when_root() { [[ $LIBREHOME != /root ]] } +it_nests_LIBREUSER() { + require sudo || return 0 + [[ $USER != root ]] + cd "$tmpdir" + echo '. $(librelib conf.sh); echo "$LIBREUSER"' > test.sh + + LIBREUSER=$(testsudo bash ./test.sh) + [[ $LIBREUSER == "$USER" ]] + + LIBREUSER=$(testsudo testsudo -u "$USER" bash ./test.sh) + [[ $LIBREUSER == "$USER" ]] +} + it_respects_custom_HOME() { cd "$tmpdir" echo '. $(librelib conf.sh); echo "$LIBREHOME"' > test.sh diff --git a/test/testenv b/test/testenv index 7072326..3bb827f 100755 --- a/test/testenv +++ b/test/testenv @@ -51,12 +51,12 @@ export _librelib_conf_sh_pkgconfdir="$destdir/etc/libretools.d" # Hack to respect our variables in sudo _sudo() { local vars=(TMPDIR PATH LIBRETOOLS_LIBDIR XDG_CACHE_HOME XDG_CONFIG_HOME _librelib_conf_sh_sysconfdir) - local args=() + local env=() local var for var in "${vars[@]}"; do - args+=("$var=${!var}") + env+=("$var=${!var}") done - sudo env "${args[@]}" "$@" + sudo "${env[@]}" "$@" } printf '%s\n' \ '#!/bin/bash' \ |