Import Linux-PAM.
[profile/ivi/pam.git] / xtests / run-xtests.sh
1 #!/bin/bash
2
3 SRCDIR=$1
4 shift 1
5 [ -z "${SRCDIR}" ] && SRCDIR='.'
6
7 if test `id -u` -ne 0 ; then
8   echo "You need to be root to run the tests"
9   exit 1
10 fi
11
12 XTESTS="$@"
13
14 failed=0
15 pass=0
16 skiped=0
17 all=0
18
19 mkdir -p /etc/security
20 for config in access.conf group.conf time.conf limits.conf ; do
21         cp /etc/security/$config /etc/security/$config-pam-xtests
22         install -m 644 "${SRCDIR}"/$config /etc/security/$config
23 done
24 mv /etc/security/opasswd /etc/security/opasswd-pam-xtests
25
26 for testname in $XTESTS ; do
27           for cfg in "${SRCDIR}"/$testname*.pamd ; do
28             install -m 644 $cfg /etc/pam.d/$(basename $cfg .pamd)
29           done
30           if test -f "${SRCDIR}"/$testname.sh ; then
31             test -x "${SRCDIR}"/$testname.sh || chmod 755 "${SRCDIR}"/$testname.sh
32             "${SRCDIR}"/$testname.sh > /dev/null
33           else
34             ./$testname > /dev/null
35           fi
36           RETVAL=$?
37           if test $RETVAL -eq 77 ; then
38             echo "SKIP: $testname"
39             skiped=`expr $skiped + 1`
40           elif test $RETVAL -ne 0 ; then
41             echo "FAIL: $testname"
42             failed=`expr $failed + 1`
43           else
44             echo "PASS: $testname"
45             pass=`expr $pass + 1`
46           fi
47           all=`expr $all + 1`
48           rm -f /etc/pam.d/$testname*
49 done
50 mv /etc/security/access.conf-pam-xtests /etc/security/access.conf
51 mv /etc/security/group.conf-pam-xtests /etc/security/group.conf
52 mv /etc/security/time.conf-pam-xtests /etc/security/time.conf
53 mv /etc/security/limits.conf-pam-xtests /etc/security/limits.conf
54 mv /etc/security/opasswd-pam-xtests /etc/security/opasswd
55 if test "$failed" -ne 0; then
56           echo "==================="
57           echo "$failed of $all tests failed"
58           echo "$skiped tests not run"
59           echo "==================="
60           exit 1
61 else
62           echo "=================="
63           echo "$all tests passed"
64           echo "$skiped tests not run"
65           echo "=================="
66 fi
67 exit 0