chiark / gitweb /
autopkgtests: Move much stuff into lib
[userv.git] / tests / lib
index ae2aa505512a5da3e9f0188bb91ce53b178211b7..ab13175ce6b95e699ace01b461c40b7ef4195129 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -1,12 +1,56 @@
 # -*- shell-script -*-
 
+prep_tmp () {
+    tmp="${AUTOPKGTEST_ARTIFACTS}"
+    if [ "x$tmp" = x ]; then
+       rm -rf tmp
+       mkdir tmp
+       tmp=tmp
+    fi
+}
+
 expect_output () {
     local e_status=$1; shift
     local e_stdout=$1; shift
     set +e
-    local g_stdout="$( "$@" )"
+    local g_stdout
+    g_stdout="$( "$@" )"
     local g_status=$?
     set -e
     test "$g_status" = "$e_status"
     test "$g_stdout" = "$e_stdout"
 }
+
+prep_cuser () {
+    cuser=${1-bin}
+
+    cuser_uid=$(id -u $cuser)
+    cuser_gid=$(id -g $cuser)
+}
+
+prep_config_t_env () {
+    local suser="$1"
+    local cfgdir="$2"
+    mkdir -p "$cfgdir"/services.d
+    cat >$cfgdir/services.d/userv-t-env <<END
+if ( glob calling-user $cuser
+   & glob service-user $suser
+   )
+       execute printenv
+fi
+END
+}
+
+check_expected_env () {
+    local got_env="$1"
+
+    for expect in                                      \
+       "USERV_SERVICE=userv-t-env"                     \
+       "USERV_USER=$cuser"                             \
+       "USERV_GROUP=$cuser $cuser"                     \
+       "USERV_UID=$cuser_uid"                          \
+       "USERV_GID=$cuser_gid $cuser_gid"               \
+    ; do
+       egrep "^$expect\$" $got_env
+    done
+}