]> granicus.if.org Git - libevent/commitdiff
test: run different tests under different options (in a wrapper)
authorAzat Khuzhin <a3at.mail@gmail.com>
Fri, 20 Jan 2017 13:29:02 +0000 (16:29 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Sun, 22 Jan 2017 00:21:43 +0000 (03:21 +0300)
test/test.sh

index b73c1adced674a20e8f047ce7fb7a1abf9da3a21..dd3d98673cf29a771ca658e3368bd899a89889ec 100755 (executable)
@@ -28,7 +28,7 @@ fi
 TEST_DIR=.
 TEST_SRC_DIR=.
 
-T=`echo "$0" | sed -e 's/test.sh$//' | sed -e 's/test-script.sh//' `
+T=`echo "$0" | sed -e 's/test.sh$//'`
 if test -x "$T/test-init"
 then
        TEST_DIR="$T"
@@ -146,15 +146,43 @@ do_test() {
        run_tests
 }
 
-announce "Running tests:"
+usage()
+{
+       cat <<EOL
+  -b   - specify backends
+  -t   - run timerfd test
+  -c   - run changelist test
+  -T   - run timerfd+changelist test
+EOL
+}
+main()
+{
+       backends=$BACKENDS
+       timerfd=0
+       changelist=0
+       timerfd_changelist=0
+
+       while getopts "b:tcT" c; do
+               case "$c" in
+                       b) backends="$OPTARG";;
+                       t) timerfd=1;;
+                       c) changelist=1;;
+                       T) timerfd_changelist=1;;
+                       ?*) usage && exit 1;;
+               esac
+       done
 
-do_test EPOLL "(timerfd)"
-do_test EPOLL "(changelist)"
-do_test EPOLL "(timerfd+changelist)"
-for i in $BACKENDS; do
-       do_test $i
-done
+       announce "Running tests:"
 
-if test "$FAILED" = "yes"; then
-       exit 1
-fi
+       [ $timerfd -eq 0 ] || do_test EPOLL "(timerfd)"
+       [ $changelist -eq 0 ] || do_test EPOLL "(changelist)"
+       [ $timerfd_changelist -eq 0 ] || do_test EPOLL "(timerfd+changelist)"
+       for i in $backends; do
+               do_test $i
+       done
+
+       if test "$FAILED" = "yes"; then
+               exit 1
+       fi
+}
+main "$@"