From 19440b9e58b3d824057abd3a0faf08fd7cb891ff Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 3 Jul 2015 14:37:16 -0400 Subject: [PATCH] Make test_workqueue.c faster, and on-by-default. Instead of having a 30-second timer be the only way to end the test, add a 2 second shutdown timer when the test is actually about to be over. --- changes/faster-workqueue-test | 3 +++ src/test/include.am | 2 +- src/test/test_workqueue.c | 7 ++++++- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 changes/faster-workqueue-test diff --git a/changes/faster-workqueue-test b/changes/faster-workqueue-test new file mode 100644 index 0000000000..16489e40ad --- /dev/null +++ b/changes/faster-workqueue-test @@ -0,0 +1,3 @@ + o Testing: + - The test_workqueue program now runs faster, and is enabled by + default as a part of "make check". diff --git a/src/test/include.am b/src/test/include.am index 0ef556a9bf..7406c84a1f 100644 --- a/src/test/include.am +++ b/src/test/include.am @@ -6,7 +6,7 @@ TESTSCRIPTS += src/test/test_ntor.sh src/test/test_bt.sh endif TESTS += src/test/test src/test/test-slow src/test/test-memwipe \ - $(TESTSCRIPTS) + src/test/test_workqueue $(TESTSCRIPTS) ### This is a lovely feature, but it requires automake >= 1.12, and Tor ### doesn't require that yet. Below is a kludge to work around. diff --git a/src/test/test_workqueue.c b/src/test/test_workqueue.c index 77053b0760..edefb292c0 100644 --- a/src/test/test_workqueue.c +++ b/src/test/test_workqueue.c @@ -214,6 +214,7 @@ add_n_work_items(threadpool_t *tp, int n) while (n_queued++ < n) { ent = add_work(tp); if (! ent) { + puts("Z"); tor_event_base_loopexit(tor_libevent_get_base(), NULL); return -1; } @@ -287,6 +288,10 @@ replysock_readable_cb(tor_socket_t sock, short what, void *arg) shutting_down = 1; threadpool_queue_update(tp, NULL, workqueue_do_shutdown, NULL, NULL); + { + struct timeval limit = { 2, 0 }; + tor_event_base_loopexit(tor_libevent_get_base(), &limit); + } } } @@ -392,7 +397,7 @@ main(int argc, char **argv) } { - struct timeval limit = { 30, 0 }; + struct timeval limit = { 180, 0 }; tor_event_base_loopexit(tor_libevent_get_base(), &limit); }