#!/bin/sh FAILED=no if test "x$TEST_OUTPUT_FILE" = "x" then TEST_OUTPUT_FILE=/dev/null fi # /bin/echo is a little more likely to support -n than sh's builtin echo, # printf is even more likely if test "`printf %s hello 2>&1`" = "hello" then ECHO_N="printf %s" else if test -x /bin/echo then ECHO_N="/bin/echo -n" else ECHO_N="echo -n" fi fi if test "$TEST_OUTPUT_FILE" != "/dev/null" then touch "$TEST_OUTPUT_FILE" || exit 1 fi TEST_DIR=. T=`echo "$0" | sed -e 's/test.sh$//'` if test -x "$T/test-init" then TEST_DIR="$T" fi setup () { EVENT_NOKQUEUE=yes; export EVENT_NOKQUEUE EVENT_NODEVPOLL=yes; export EVENT_NODEVPOLL EVENT_NOPOLL=yes; export EVENT_NOPOLL EVENT_NOSELECT=yes; export EVENT_NOSELECT EVENT_NOEPOLL=yes; export EVENT_NOEPOLL unset EVENT_EPOLL_USE_CHANGELIST EVENT_NOEVPORT=yes; export EVENT_NOEVPORT EVENT_NOWIN32=yes; export EVENT_NOWIN32 } announce () { echo "$@" echo "$@" >>"$TEST_OUTPUT_FILE" } announce_n () { $ECHO_N "$@" echo "$@" >>"$TEST_OUTPUT_FILE" } run_tests () { if $TEST_DIR/test-init 2>>"$TEST_OUTPUT_FILE" ; then true else announce Skipping test return fi announce_n " test-eof: " if $TEST_DIR/test-eof >>"$TEST_OUTPUT_FILE" ; then announce OKAY ; else announce FAILED ; FAILED=yes fi announce_n " test-weof: " if $TEST_DIR/test-weof >>"$TEST_OUTPUT_FILE" ; then announce OKAY ; else announce FAILED ; FAILED=yes fi announce_n " test-time: " if $TEST_DIR/test-time >>"$TEST_OUTPUT_FILE" ; then announce OKAY ; else announce FAILED ; FAILED=yes fi announce_n " test-changelist: " if $TEST_DIR/test-changelist >>"$TEST_OUTPUT_FILE" ; then announce OKAY ; else announce FAILED ; FAILED=yes fi test -x $TEST_DIR/regress || return announce_n " regress: " if test "$TEST_OUTPUT_FILE" = "/dev/null" ; then $TEST_DIR/regress --quiet else $TEST_DIR/regress >>"$TEST_OUTPUT_FILE" fi if test "$?" = "0" ; then announce OKAY ; else announce FAILED ; FAILED=yes fi } announce "Running tests:" # Need to do this by hand? setup unset EVENT_NOEVPORT announce "EVPORT" run_tests setup unset EVENT_NOKQUEUE announce "KQUEUE" run_tests setup unset EVENT_NOEPOLL announce "EPOLL" run_tests setup unset EVENT_NOEPOLL EVENT_EPOLL_USE_CHANGELIST=yes; export EVENT_EPOLL_USE_CHANGELIST announce "EPOLL (changelist)" run_tests setup unset EVENT_NODEVPOLL announce "DEVPOLL" run_tests setup unset EVENT_NOPOLL announce "POLL" run_tests setup unset EVENT_NOSELECT announce "SELECT" run_tests setup unset EVENT_NOWIN32 announce "WIN32" run_tests if test "$FAILED" = "yes"; then exit 1 fi