Edit

kc3-lang/libevent/test/test.sh

Branch :

  • Show log

    Commit

  • Author : Nick Mathewson
    Date : 2010-01-12 15:58:36
    Hash : 94131e92
    Message : Fix test.sh on shells without echo -n Some systems have a version of /bin/sh whose builtin echo doesn't support the -n option used in test/test.sh. /bin/echo, however, usually does. This patch makes us use /bin/echo for echo -n whenever it is present. Also, our use of echo -n really only made sense when suppressing all test output. Since test output isn't suppressed when logging to a file, this pach makes us stop using echo -n when logging to a file.

  • test/test.sh
  • #!/bin/sh
    
    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.
    if test -x /bin/echo
    then
    	ECHO=/bin/echo
    else
    	ECHO=echo
    fi
    
    touch "$TEST_OUTPUT_FILE" || exit 1
    
    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
    	EVENT_NOEVPORT=yes; export EVENT_NOEVPORT
    }
    
    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 ;
    	fi
    	announce_n " test-weof: "
    	if $TEST_DIR/test-weof >>"$TEST_OUTPUT_FILE" ;
    	then
    		announce OKAY ;
    	else
    		announce FAILED ;
    	fi
    	announce_n " test-time: "
    	if $TEST_DIR/test-time >>"$TEST_OUTPUT_FILE" ;
    	then
    		announce OKAY ;
    	else
    		announce FAILED ;
    	fi
    	announce_n " regress: "
    	if $TEST_DIR/regress >>"$TEST_OUTPUT_FILE" ;
    	then
    		announce OKAY ;
    	else
    		announce FAILED ;
    	fi
    }
    
    announce "Running tests:"
    
    # Need to do this by hand?
    setup
    unset EVENT_NOKQUEUE
    export EVENT_NOKQUEUE
    announce "KQUEUE"
    run_tests
    
    setup
    unset EVENT_NODEVPOLL
    export EVENT_NODEVPOLL
    announce "DEVPOLL"
    run_tests
    
    setup
    unset EVENT_NOPOLL
    export EVENT_NOPOLL
    announce "POLL"
    run_tests
    
    setup
    unset EVENT_NOSELECT
    export EVENT_NOSELECT
    announce "SELECT"
    run_tests
    
    setup
    unset EVENT_NOEPOLL
    export EVENT_NOEPOLL
    announce "EPOLL"
    run_tests
    
    setup
    unset EVENT_NOEVPORT
    export EVENT_NOEVPORT
    announce "EVPORT"
    run_tests