tests.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/sh
  2. #
  3. # ngIRCd Test Suite
  4. # Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
  5. #
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # (at your option) any later version.
  10. # Please read the file COPYING, README and AUTHORS for more information.
  11. #
  12. # detect source directory
  13. [ -z "$srcdir" ] && srcdir=`dirname $0`
  14. name=`basename $0`
  15. test=`echo ${name} | cut -d '.' -f 1`
  16. [ -d logs ] || mkdir logs
  17. if [ ! -r "$test" ]; then
  18. echo "$test: test not found" >>tests-skipped.lst
  19. echo "${name}: test \"$test\" not found!"; exit 77
  20. exit 1
  21. fi
  22. # read in functions
  23. . ${srcdir}/functions.inc
  24. type expect > /dev/null 2>&1
  25. if [ $? -ne 0 ]; then
  26. echo "$test: \"expect\" not found" >>tests-skipped.lst
  27. echo "${name}: \"expect\" not found."; exit 77
  28. fi
  29. type telnet > /dev/null 2>&1
  30. if [ $? -ne 0 ]; then
  31. echo "$test: \"telnet\" not found" >>tests-skipped.lst
  32. echo "${name}: \"telnet\" not found."; exit 77
  33. fi
  34. # prepare expect script
  35. e_in="${srcdir}/${test}.e"
  36. e_tmp="${test}.e_"
  37. e_exec="$e_in"
  38. if test -t 1 2>/dev/null; then
  39. sed -e 's|^expect |puts -nonewline stderr "."; expect |g' \
  40. "$e_in" >"$e_tmp"
  41. [ $? -eq 0 ] && e_exec="$e_tmp"
  42. fi
  43. echo_n "running ${test} ..."
  44. expect "$e_exec" > logs/${test}.log; r=$?
  45. [ $r -eq 0 ] && echo " ok." || echo " failure!"
  46. rm -f "$e_tmp"
  47. exit $r
  48. # -eof-