Browse Source

Add several test scripts wrapping test_workqueue

This is a fairly easy way for us to get our test coverage up on
compat_threads.c and workqueue.c -- I already implemented these
tests, so we might as well enable them.
Nick Mathewson 7 years ago
parent
commit
3cc374456b

+ 4 - 0
changes/workqueue_tests

@@ -0,0 +1,4 @@
+  o Testing:
+    - Run more workqueue tests as part of "make check". These had previously
+      been implemented, but you needed to know special command-line options
+      to enable them.

+ 16 - 2
src/test/include.am

@@ -9,6 +9,12 @@ TESTS_ENVIRONMENT = \
 	export TESTING_TOR_BINARY="$(TESTING_TOR_BINARY)";
 
 TESTSCRIPTS = src/test/test_zero_length_keys.sh \
+	src/test/test_workqueue_cancel.sh \
+	src/test/test_workqueue_efd.sh \
+	src/test/test_workqueue_efd2.sh \
+	src/test/test_workqueue_pipe.sh \
+	src/test/test_workqueue_pipe2.sh \
+	src/test/test_workqueue_socketpair.sh \
 	src/test/test_switch_id.sh
 
 if USEPYTHON
@@ -16,7 +22,8 @@ TESTSCRIPTS += src/test/test_ntor.sh src/test/test_bt.sh
 endif
 
 TESTS += src/test/test src/test/test-slow src/test/test-memwipe \
-	src/test/test_workqueue src/test/test_keygen.sh \
+	src/test/test_workqueue \
+	src/test/test_keygen.sh \
 	src/test/test-timers \
 	$(TESTSCRIPTS)
 
@@ -257,4 +264,11 @@ EXTRA_DIST += \
 	src/test/test_zero_length_keys.sh \
 	src/test/test_ntor.sh src/test/test_bt.sh \
 	src/test/test-network.sh \
-	src/test/test_switch_id.sh
+	src/test/test_switch_id.sh \
+	src/test/test_workqueue_cancel.sh \
+	src/test/test_workqueue_efd.sh \
+	src/test/test_workqueue_efd2.sh \
+	src/test/test_workqueue_pipe.sh \
+	src/test/test_workqueue_pipe2.sh \
+	src/test/test_workqueue_socketpair.sh
+

+ 3 - 0
src/test/test_workqueue.c

@@ -400,6 +400,9 @@ main(int argc, char **argv)
   }
 
   rq = replyqueue_new(as_flags);
+  if (as_flags && rq == NULL)
+    return 77; // 77 means "skipped".
+
   tor_assert(rq);
   tp = threadpool_new(opt_n_threads,
                       rq, new_state, free_state, NULL);

+ 4 - 0
src/test/test_workqueue_cancel.sh

@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${builddir:-.}/src/test/test_workqueue -C 1
+

+ 4 - 0
src/test/test_workqueue_efd.sh

@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${builddir:-.}/src/test/test_workqueue \
+	   --no-eventfd2 --no-pipe2 --no-pipe --no-socketpair

+ 4 - 0
src/test/test_workqueue_efd2.sh

@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${builddir:-.}/src/test/test_workqueue \
+	   --no-eventfd --no-pipe2 --no-pipe --no-socketpair

+ 4 - 0
src/test/test_workqueue_pipe.sh

@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${builddir:-.}/src/test/test_workqueue \
+	   --no-eventfd2 --no-eventfd --no-pipe2 --no-socketpair

+ 4 - 0
src/test/test_workqueue_pipe2.sh

@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${builddir:-.}/src/test/test_workqueue \
+	   --no-eventfd2 --no-eventfd --no-pipe --no-socketpair

+ 4 - 0
src/test/test_workqueue_socketpair.sh

@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${builddir:-.}/src/test/test_workqueue \
+	   --no-eventfd2 --no-eventfd --no-pipe2 --no-pipe