commit: r1759 - in neon/trunk/test: . common
joe at manyfish.co.uk
joe at manyfish.co.uk
Mon Dec 14 16:41:24 EST 2009
Author: joe
Date: Mon Dec 14 13:41:24 2009
New Revision: 1759
Modified:
neon/trunk/test/common/child.c
neon/trunk/test/common/child.h
neon/trunk/test/socket.c
neon/trunk/test/utils.c
Log:
* test/common/child.c (new_spawn_server): Take 'repeat' argument.
* test/socket.c, test/utils.c: Adjust accordingly.
Modified: neon/trunk/test/common/child.c
==============================================================================
--- neon/trunk/test/common/child.c (original)
+++ neon/trunk/test/common/child.c Mon Dec 14 13:41:24 2009
@@ -315,7 +315,8 @@
return OK;
}
-int new_spawn_server(server_fn fn, void *userdata, unsigned int *port)
+int new_spawn_server(int count, server_fn fn, void *userdata,
+ unsigned int *port)
{
struct sockaddr_in sa;
socklen_t salen = sizeof sa;
@@ -338,20 +339,29 @@
ONN("failed to fork server", child == -1);
if (child == 0) {
- ne_socket *sock = ne_sock_create();
- int ret;
+ int ret, iter = 1;
in_child();
- if (ne_sock_accept(sock, ls)) {
- t_context("Server child could not accept connection: %s",
- ne_sock_error(sock));
- exit(FAIL);
- }
+ do {
+ ne_socket *sock = ne_sock_create();
+
+ NE_DEBUG(NE_DBG_HTTP, "child iteration #%d (of %d), "
+ "awaiting connection...\n", iter, count);
+
+ if (ne_sock_accept(sock, ls)) {
+ t_context("Server child could not accept connection: %s",
+ ne_sock_error(sock));
+ exit(FAIL);
+ }
+
+ NE_DEBUG(NE_DBG_HTTP, "child got connection, invoking server\n");
+ ret = fn(sock, userdata);
+ NE_DEBUG(NE_DBG_HTTP, "child iteration #%d returns %d\n",
+ iter, ret);
- ret = fn(sock, userdata);
-
- close_socket(sock);
+ close_socket(sock);
+ } while (ret == 0 && ++iter <= count);
NE_DEBUG(NE_DBG_HTTP, "child terminating with %d\n", ret);
exit(ret);
Modified: neon/trunk/test/common/child.h
==============================================================================
--- neon/trunk/test/common/child.h (original)
+++ neon/trunk/test/common/child.h Mon Dec 14 13:41:24 2009
@@ -66,7 +66,8 @@
/* Forks a server child process running 'fn(userdata)' on an
* unspecified port. Sets test suite error on failure; on success,
* sets *port to bound port number. */
-int new_spawn_server(server_fn fn, void *userdata, unsigned int *port);
+int new_spawn_server(int count, server_fn fn, void *userdata,
+ unsigned int *port);
/* Blocks until child process exits, and gives return code of 'fn'. */
int await_server(void);
Modified: neon/trunk/test/socket.c
==============================================================================
--- neon/trunk/test/socket.c (original)
+++ neon/trunk/test/socket.c Mon Dec 14 13:41:24 2009
@@ -171,7 +171,7 @@
unsigned int port;
pair.fn = fn;
pair.userdata = ud;
- CALL(new_spawn_server(wrap_serve, &pair, &port));
+ CALL(new_spawn_server(1, wrap_serve, &pair, &port));
CALL(do_connect(sock, localhost, port));
ONV(ne_sock_connect_ssl(*sock, client_ctx, NULL),
("SSL negotation failed: %s", ne_sock_error(*sock)));
@@ -183,7 +183,7 @@
static int begin(ne_socket **sock, server_fn fn, void *ud)
{
unsigned int port;
- CALL(new_spawn_server(fn, ud, &port));
+ CALL(new_spawn_server(1, fn, ud, &port));
return do_connect(sock, localhost, port);
}
#endif
@@ -406,7 +406,7 @@
ia = ne_iaddr_make(ne_iaddr_ipv4, raw_127);
ONN("ne_iaddr_make returned NULL", ia == NULL);
- CALL(new_spawn_server(serve_close, NULL, &port));
+ CALL(new_spawn_server(1, serve_close, NULL, &port));
ONN("could not connect", ne_sock_connect(sock, ia, port));
ne_sock_close(sock);
CALL(await_server());
@@ -425,7 +425,7 @@
ia = ne_iaddr_make(ne_iaddr_ipv4, raw_127);
ONN("ne_iaddr_make returned NULL", ia == NULL);
- CALL(new_spawn_server(serve_close, NULL, &realport));
+ CALL(new_spawn_server(1, serve_close, NULL, &realport));
ONN("could not connect", ne_sock_connect(sock, ia, realport));
ia2 = ne_sock_peer(sock, &port);
@@ -1199,7 +1199,7 @@
ia = ne_iaddr_make(ne_iaddr_ipv4, raw_127);
ONN("ne_iaddr_make returned NULL", ia == NULL);
- CALL(new_spawn_server(serve_ppeer, NULL, &srvport));
+ CALL(new_spawn_server(1, serve_ppeer, NULL, &srvport));
ne_sock_prebind(sock, addr ? ia : NULL, port ? 7778 : 0);
@@ -1299,7 +1299,7 @@
srv->server = server;
srv->userdata = userdata;
srv->say_hello = 1;
- CALL(new_spawn_server(socks_server, srv, &port));
+ CALL(new_spawn_server(1, socks_server, srv, &port));
return do_connect(sock, localhost, port);
}
Modified: neon/trunk/test/utils.c
==============================================================================
--- neon/trunk/test/utils.c (original)
+++ neon/trunk/test/utils.c Mon Dec 14 13:41:24 2009
@@ -178,7 +178,7 @@
{
unsigned int port;
- CALL(new_spawn_server(fn, userdata, &port));
+ CALL(new_spawn_server(1, fn, userdata, &port));
*sess = ne_session_create("http", "localhost", port);
@@ -191,7 +191,7 @@
{
unsigned int port;
- CALL(new_spawn_server(fn, userdata, &port));
+ CALL(new_spawn_server(1, fn, userdata, &port));
*sess = ne_session_create(scheme, host, fakeport);
More information about the neon-commits
mailing list