run-xtests.sh 1.8 KB

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