summaryrefslogtreecommitdiff
path: root/test/regress_bufferevent.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2010-09-03 18:48:31 -0400
committerNick Mathewson <nickm@torproject.org>2010-09-03 18:48:31 -0400
commita97320ac579e58e685c19393e2599accfb5edbe5 (patch)
tree35e76acfa2221b7b221a59d071731410c98f49e1 /test/regress_bufferevent.c
parent195214360c7cb107e86bfaa389812c879873f19c (diff)
downloadlibevent-a97320ac579e58e685c19393e2599accfb5edbe5.tar.gz
Allow more than one copy of regression tests to run at once
Mostly this was a matter of just removing all the hardwired ports in the test code. The http/connection_retry test is still a little screwy, though.
Diffstat (limited to 'test/regress_bufferevent.c')
-rw-r--r--test/regress_bufferevent.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/test/regress_bufferevent.c b/test/regress_bufferevent.c
index fd9c7e4e..8f4ca685 100644
--- a/test/regress_bufferevent.c
+++ b/test/regress_bufferevent.c
@@ -470,7 +470,10 @@ test_bufferevent_connect(void *arg)
struct evconnlistener *lev=NULL;
struct bufferevent *bev1=NULL, *bev2=NULL;
struct sockaddr_in localhost;
- struct sockaddr *sa = (struct sockaddr*)&localhost;
+ struct sockaddr_storage ss;
+ struct sockaddr *sa;
+ ev_socklen_t slen;
+
int be_flags=BEV_OPT_CLOSE_ON_FREE;
if (strstr((char*)data->setup_data, "defer")) {
@@ -494,14 +497,21 @@ test_bufferevent_connect(void *arg)
memset(&localhost, 0, sizeof(localhost));
- localhost.sin_port = htons(27015);
+ localhost.sin_port = 0; /* pick-a-port */
localhost.sin_addr.s_addr = htonl(0x7f000001L);
localhost.sin_family = AF_INET;
-
+ sa = (struct sockaddr *)&localhost;
lev = evconnlistener_new_bind(data->base, listen_cb, data->base,
LEV_OPT_CLOSE_ON_FREE|LEV_OPT_REUSEABLE,
16, sa, sizeof(localhost));
tt_assert(lev);
+
+ sa = (struct sockaddr *)&ss;
+ slen = sizeof(ss);
+ if (evconnlistener_get_address(lev, sa, &slen) < 0) {
+ tt_abort_perror("getsockname");
+ }
+
tt_assert(!evconnlistener_enable(lev));
bev1 = bufferevent_socket_new(data->base, -1, be_flags);
bev2 = bufferevent_socket_new(data->base, -1, be_flags);
@@ -584,7 +594,7 @@ test_bufferevent_connect_fail(void *arg)
test_ok = 0;
memset(&localhost, 0, sizeof(localhost));
- localhost.sin_port = 0;
+ localhost.sin_port = 0; /* have the kernel pick a port */
localhost.sin_addr.s_addr = htonl(0x7f000001L);
localhost.sin_family = AF_INET;