chiark / gitweb /
autopkgtests: Test user rc file
[userv.git] / tests / lib
1 # -*- shell-script -*-
2
3 prep_tmp () {
4     tmp="${AUTOPKGTEST_ARTIFACTS}"
5     if [ "x$tmp" = x ]; then
6         rm -rf tmp
7         mkdir tmp
8         tmp=tmp
9     fi
10 }
11
12 expect_output () {
13     local e_status=$1; shift
14     local e_stdout=$1; shift
15     set +e
16     local g_stdout
17     g_stdout="$( "$@" )"
18     local g_status=$?
19     set -e
20     test "$g_status" = "$e_status"
21     test "$g_stdout" = "$e_stdout"
22 }
23
24 prep_cuser () {
25     cuser=${1-bin}
26
27     cuser_uid=$(id -u $cuser)
28     cuser_gid=$(id -g $cuser)
29 }
30
31 prep_config_t_env () {
32     local suser="$1"
33     local cfgdir="$2"
34     mkdir -p "$cfgdir"/services.d
35     cat >$cfgdir/services.d/userv-t-env <<END
36 if ( glob calling-user $cuser
37    & glob service-user $suser
38    )
39         execute printenv
40 fi
41 END
42 }
43
44 check_expected_env () {
45     local got_env="$1"
46
47     for expect in                                       \
48         "USERV_SERVICE=userv-t-env"                     \
49         "USERV_USER=$cuser"                             \
50         "USERV_GROUP=$cuser $cuser"                     \
51         "USERV_UID=$cuser_uid"                          \
52         "USERV_GID=$cuser_gid $cuser_gid"               \
53     ; do
54         egrep "^$expect\$" $got_env
55     done
56 }