about summary refs log tree commit diff
path: root/libevent/test
diff options
context:
space:
mode:
Diffstat (limited to 'libevent/test')
-rw-r--r--libevent/test/Makefile.am31
-rw-r--r--libevent/test/bench.c181
-rw-r--r--libevent/test/regress.c923
-rw-r--r--libevent/test/regress.h43
-rw-r--r--libevent/test/regress.rpc17
-rw-r--r--libevent/test/regress_dns.c144
-rw-r--r--libevent/test/regress_http.c426
-rw-r--r--libevent/test/test-eof.c68
-rw-r--r--libevent/test/test-init.c27
-rw-r--r--libevent/test/test-time.c68
-rw-r--r--libevent/test/test-weof.c68
-rwxr-xr-xlibevent/test/test.sh91
12 files changed, 0 insertions, 2087 deletions
diff --git a/libevent/test/Makefile.am b/libevent/test/Makefile.am
deleted file mode 100644
index 66f0e31..0000000
--- a/libevent/test/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-AUTOMAKE_OPTIONS = foreign no-dependencies
-
-LDADD = ../libevent.la
-CPPFPLAGS = -I.. 
-CFLAGS = -I../compat @CFLAGS@
-
-EXTRA_DIST = regress.rpc
-
-noinst_PROGRAMS = test-init test-eof test-weof test-time regress bench
-
-BUILT_SOURCES = regress.gen.c regress.gen.h
-test_init_SOURCES = test-init.c
-test_eof_SOURCES = test-eof.c
-test_weof_SOURCES = test-weof.c
-test_time_SOURCES = test-time.c
-regress_SOURCES = regress.c regress.h regress_http.c regress_dns.c \
-	regress.gen.c regress.gen.h
-bench_SOURCES = bench.c
-
-regress.gen.c regress.gen.h: regress.rpc
-	../event_rpcgen.py regress.rpc || echo "No Python installed"
-
-DISTCLEANFILES = *~
-CLEANFILES = regress.gen.h regress.gen.c
-
-test: test-init test-eof test-weof test-time regress
-
-verify: test
-	@./test.sh
-
-bench test-init test-eof test-weof test-time: ../libevent.la
diff --git a/libevent/test/bench.c b/libevent/test/bench.c
deleted file mode 100644
index 61b0502..0000000
--- a/libevent/test/bench.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright 2003 Niels Provos <provos@citi.umich.edu>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * Mon 03/10/2003 - Modified by Davide Libenzi <davidel@xmailserver.org>
- *
- *     Added chain event propagation to improve the sensitivity of
- *     the measure respect to the event loop efficency.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/signal.h>
-#include <sys/resource.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <event.h>
-
-
-static int count, writes, fired;
-static int *pipes;
-static int num_pipes, num_active, num_writes;
-static struct event *events;
-
-
-
-void
-read_cb(int fd, short which, void *arg)
-{
-	int idx = (int) arg, widx = idx + 1;
-	u_char ch;
-
-	count += read(fd, &ch, sizeof(ch));
-	if (writes) {
-		if (widx >= num_pipes)
-			widx -= num_pipes;
-		write(pipes[2 * widx + 1], "e", 1);
-		writes--;
-		fired++;
-	}
-}
-
-struct timeval *
-run_once(void)
-{
-	int *cp, i, space;
-	static struct timeval ts, te;
-
-	for (cp = pipes, i = 0; i < num_pipes; i++, cp += 2) {
-		event_del(&events[i]);
-		event_set(&events[i], cp[0], EV_READ | EV_PERSIST, read_cb, (void *) i);
-		event_add(&events[i], NULL);
-	}
-
-	event_loop(EVLOOP_ONCE | EVLOOP_NONBLOCK);
-
-	fired = 0;
-	space = num_pipes / num_active;
-	space = space * 2;
-	for (i = 0; i < num_active; i++, fired++)
-		write(pipes[i * space + 1], "e", 1);
-
-	count = 0;
-	writes = num_writes;
-	{ int xcount = 0;
-	gettimeofday(&ts, NULL);
-	do {
-		event_loop(EVLOOP_ONCE | EVLOOP_NONBLOCK);
-		xcount++;
-	} while (count != fired);
-	gettimeofday(&te, NULL);
-
-	if (xcount != count) fprintf(stderr, "Xcount: %d, Rcount: %d\n", xcount, count);
-	}
-
-	timersub(&te, &ts, &te);
-
-	return (&te);
-}
-
-int
-main (int argc, char **argv)
-{
-	struct rlimit rl;
-	int i, c;
-	struct timeval *tv;
-	int *cp;
-	extern char *optarg;
-
-	num_pipes = 100;
-	num_active = 1;
-	num_writes = num_pipes;
-	while ((c = getopt(argc, argv, "n:a:w:")) != -1) {
-		switch (c) {
-		case 'n':
-			num_pipes = atoi(optarg);
-			break;
-		case 'a':
-			num_active = atoi(optarg);
-			break;
-		case 'w':
-			num_writes = atoi(optarg);
-			break;
-		default:
-			fprintf(stderr, "Illegal argument \"%c\"\n", c);
-			exit(1);
-		}
-	}
-
-	rl.rlim_cur = rl.rlim_max = num_pipes * 2 + 50;
-	if (setrlimit(RLIMIT_NOFILE, &rl) == -1) {
-		perror("setrlimit");
-		exit(1);
-	}
-
-	events = calloc(num_pipes, sizeof(struct event));
-	pipes = calloc(num_pipes * 2, sizeof(int));
-	if (events == NULL || pipes == NULL) {
-		perror("malloc");
-		exit(1);
-	}
-
-	event_init();
-
-	for (cp = pipes, i = 0; i < num_pipes; i++, cp += 2) {
-#ifdef USE_PIPES
-		if (pipe(cp) == -1) {
-#else
-		if (socketpair(AF_UNIX, SOCK_STREAM, 0, cp) == -1) {
-#endif
-			perror("pipe");
-			exit(1);
-		}
-	}
-
-	for (i = 0; i < 25; i++) {
-		tv = run_once();
-		if (tv == NULL)
-			exit(1);
-		fprintf(stdout, "%ld\n",
-			tv->tv_sec * 1000000L + tv->tv_usec);
-	}
-
-	exit(0);
-}
diff --git a/libevent/test/regress.c b/libevent/test/regress.c
deleted file mode 100644
index d0f135c..0000000
--- a/libevent/test/regress.c
+++ /dev/null
@@ -1,923 +0,0 @@
-/*
- * Copyright (c) 2003, 2004 Niels Provos <provos@citi.umich.edu>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifdef WIN32
-#include <winsock2.h>
-#include <windows.h>
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <sys/queue.h>
-#ifndef WIN32
-#include <sys/socket.h>
-#include <sys/signal.h>
-#include <unistd.h>
-#endif
-#include <netdb.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#include "event.h"
-#include "log.h"
-
-#include "regress.h"
-#include "regress.gen.h"
-
-int pair[2];
-int test_ok;
-static int called;
-static char wbuf[4096];
-static char rbuf[4096];
-static int woff;
-static int roff;
-static int usepersist;
-static struct timeval tset;
-static struct timeval tcalled;
-static struct event_base *event_base;
-
-#define TEST1	"this is a test"
-#define SECONDS	1
-
-void
-simple_read_cb(int fd, short event, void *arg)
-{
-	char buf[256];
-	int len;
-
-	len = read(fd, buf, sizeof(buf));
-
-	if (len) {
-		if (!called) {
-			if (event_add(arg, NULL) == -1)
-				exit(1);
-		}
-	} else if (called == 1)
-		test_ok = 1;
-
-	called++;
-}
-
-void
-simple_write_cb(int fd, short event, void *arg)
-{
-	int len;
-
-	len = write(fd, TEST1, strlen(TEST1) + 1);
-	if (len == -1)
-		test_ok = 0;
-	else
-		test_ok = 1;
-}
-
-void
-multiple_write_cb(int fd, short event, void *arg)
-{
-	struct event *ev = arg;
-	int len;
-
-	len = 128;
-	if (woff + len >= sizeof(wbuf))
-		len = sizeof(wbuf) - woff;
-
-	len = write(fd, wbuf + woff, len);
-	if (len == -1) {
-		fprintf(stderr, "%s: write\n", __func__);
-		if (usepersist)
-			event_del(ev);
-		return;
-	}
-
-	woff += len;
-
-	if (woff >= sizeof(wbuf)) {
-		shutdown(fd, SHUT_WR);
-		if (usepersist)
-			event_del(ev);
-		return;
-	}
-
-	if (!usepersist) {
-		if (event_add(ev, NULL) == -1)
-			exit(1);
-	}
-}
-
-void
-multiple_read_cb(int fd, short event, void *arg)
-{
-	struct event *ev = arg;
-	int len;
-
-	len = read(fd, rbuf + roff, sizeof(rbuf) - roff);
-	if (len == -1)
-		fprintf(stderr, "%s: read\n", __func__);
-	if (len <= 0) {
-		if (usepersist)
-			event_del(ev);
-		return;
-	}
-
-	roff += len;
-	if (!usepersist) {
-		if (event_add(ev, NULL) == -1) 
-			exit(1);
-	}
-}
-
-void
-timeout_cb(int fd, short event, void *arg)
-{
-	struct timeval tv;
-	int diff;
-
-	gettimeofday(&tcalled, NULL);
-	if (timercmp(&tcalled, &tset, >))
-		timersub(&tcalled, &tset, &tv);
-	else
-		timersub(&tset, &tcalled, &tv);
-
-	diff = tv.tv_sec*1000 + tv.tv_usec/1000 - SECONDS * 1000;
-	if (diff < 0)
-		diff = -diff;
-
-	if (diff < 100)
-		test_ok = 1;
-}
-
-void
-signal_cb(int fd, short event, void *arg)
-{
-	struct event *ev = arg;
-
-	signal_del(ev);
-	test_ok = 1;
-}
-
-struct both {
-	struct event ev;
-	int nread;
-};
-
-void
-combined_read_cb(int fd, short event, void *arg)
-{
-	struct both *both = arg;
-	char buf[128];
-	int len;
-
-	len = read(fd, buf, sizeof(buf));
-	if (len == -1)
-		fprintf(stderr, "%s: read\n", __func__);
-	if (len <= 0)
-		return;
-
-	both->nread += len;
-	if (event_add(&both->ev, NULL) == -1)
-		exit(1);
-}
-
-void
-combined_write_cb(int fd, short event, void *arg)
-{
-	struct both *both = arg;
-	char buf[128];
-	int len;
-
-	len = sizeof(buf);
-	if (len > both->nread)
-		len = both->nread;
-
-	len = write(fd, buf, len);
-	if (len == -1)
-		fprintf(stderr, "%s: write\n", __func__);
-	if (len <= 0) {
-		shutdown(fd, SHUT_WR);
-		return;
-	}
-
-	both->nread -= len;
-	if (event_add(&both->ev, NULL) == -1)
-		exit(1);
-}
-
-/* Test infrastructure */
-
-int
-setup_test(char *name)
-{
-
-	fprintf(stdout, "%s", name);
-
-	if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) {
-		fprintf(stderr, "%s: socketpair\n", __func__);
-		exit(1);
-	}
-
-#ifdef HAVE_FCNTL
-        if (fcntl(pair[0], F_SETFL, O_NONBLOCK) == -1)
-		fprintf(stderr, "fcntl(O_NONBLOCK)");
-
-        if (fcntl(pair[1], F_SETFL, O_NONBLOCK) == -1)
-		fprintf(stderr, "fcntl(O_NONBLOCK)");
-#endif
-
-	test_ok = 0;
-	called = 0;
-	return (0);
-}
-
-int
-cleanup_test(void)
-{
-#ifndef WIN32
-	close(pair[0]);
-	close(pair[1]);
-#else
-	CloseHandle((HANDLE)pair[0]);
-	CloseHandle((HANDLE)pair[1]);
-#endif
-	if (test_ok)
-		fprintf(stdout, "OK\n");
-	else {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-
-	return (0);
-}
-
-void
-test_simpleread(void)
-{
-	struct event ev;
-
-	/* Very simple read test */
-	setup_test("Simple read: ");
-	
-	write(pair[0], TEST1, strlen(TEST1)+1);
-	shutdown(pair[0], SHUT_WR);
-
-	event_set(&ev, pair[1], EV_READ, simple_read_cb, &ev);
-	if (event_add(&ev, NULL) == -1)
-		exit(1);
-	event_dispatch();
-
-	cleanup_test();
-}
-
-void
-test_simplewrite(void)
-{
-	struct event ev;
-
-	/* Very simple write test */
-	setup_test("Simple write: ");
-	
-	event_set(&ev, pair[0], EV_WRITE, simple_write_cb, &ev);
-	if (event_add(&ev, NULL) == -1)
-		exit(1);
-	event_dispatch();
-
-	cleanup_test();
-}
-
-void
-test_multiple(void)
-{
-	struct event ev, ev2;
-	int i;
-
-	/* Multiple read and write test */
-	setup_test("Multiple read/write: ");
-	memset(rbuf, 0, sizeof(rbuf));
-	for (i = 0; i < sizeof(wbuf); i++)
-		wbuf[i] = i;
-
-	roff = woff = 0;
-	usepersist = 0;
-
-	event_set(&ev, pair[0], EV_WRITE, multiple_write_cb, &ev);
-	if (event_add(&ev, NULL) == -1)
-		exit(1);
-	event_set(&ev2, pair[1], EV_READ, multiple_read_cb, &ev2);
-	if (event_add(&ev2, NULL) == -1)
-		exit(1);
-	event_dispatch();
-
-	if (roff == woff)
-		test_ok = memcmp(rbuf, wbuf, sizeof(wbuf)) == 0;
-
-	cleanup_test();
-}
-
-void
-test_persistent(void)
-{
-	struct event ev, ev2;
-	int i;
-
-	/* Multiple read and write test with persist */
-	setup_test("Persist read/write: ");
-	memset(rbuf, 0, sizeof(rbuf));
-	for (i = 0; i < sizeof(wbuf); i++)
-		wbuf[i] = i;
-
-	roff = woff = 0;
-	usepersist = 1;
-
-	event_set(&ev, pair[0], EV_WRITE|EV_PERSIST, multiple_write_cb, &ev);
-	if (event_add(&ev, NULL) == -1)
-		exit(1);
-	event_set(&ev2, pair[1], EV_READ|EV_PERSIST, multiple_read_cb, &ev2);
-	if (event_add(&ev2, NULL) == -1)
-		exit(1);
-	event_dispatch();
-
-	if (roff == woff)
-		test_ok = memcmp(rbuf, wbuf, sizeof(wbuf)) == 0;
-
-	cleanup_test();
-}
-
-void
-test_combined(void)
-{
-	struct both r1, r2, w1, w2;
-
-	setup_test("Combined read/write: ");
-	memset(&r1, 0, sizeof(r1));
-	memset(&r2, 0, sizeof(r2));
-	memset(&w1, 0, sizeof(w1));
-	memset(&w2, 0, sizeof(w2));
-
-	w1.nread = 4096;
-	w2.nread = 8192;
-
-	event_set(&r1.ev, pair[0], EV_READ, combined_read_cb, &r1);
-	event_set(&w1.ev, pair[0], EV_WRITE, combined_write_cb, &w1);
-	event_set(&r2.ev, pair[1], EV_READ, combined_read_cb, &r2);
-	event_set(&w2.ev, pair[1], EV_WRITE, combined_write_cb, &w2);
-	if (event_add(&r1.ev, NULL) == -1)
-		exit(1);
-	if (event_add(&w1.ev, NULL))
-		exit(1);
-	if (event_add(&r2.ev, NULL))
-		exit(1);
-	if (event_add(&w2.ev, NULL))
-		exit(1);
-
-	event_dispatch();
-
-	if (r1.nread == 8192 && r2.nread == 4096)
-		test_ok = 1;
-
-	cleanup_test();
-}
-
-void
-test_simpletimeout(void)
-{
-	struct timeval tv;
-	struct event ev;
-
-	setup_test("Simple timeout: ");
-
-	tv.tv_usec = 0;
-	tv.tv_sec = SECONDS;
-	evtimer_set(&ev, timeout_cb, NULL);
-	evtimer_add(&ev, &tv);
-
-	gettimeofday(&tset, NULL);
-	event_dispatch();
-
-	cleanup_test();
-}
-
-#ifndef WIN32
-void
-test_simplesignal(void)
-{
-	struct event ev;
-	struct itimerval itv;
-
-	setup_test("Simple signal: ");
-	signal_set(&ev, SIGALRM, signal_cb, &ev);
-	signal_add(&ev, NULL);
-
-	memset(&itv, 0, sizeof(itv));
-	itv.it_value.tv_sec = 1;
-	if (setitimer(ITIMER_REAL, &itv, NULL) == -1)
-		goto skip_simplesignal;
-
-	event_dispatch();
- skip_simplesignal:
-	if (signal_del(&ev) == -1)
-		test_ok = 0;
-
-	cleanup_test();
-}
-#endif
-
-void
-test_loopexit(void)
-{
-	struct timeval tv, tv_start, tv_end;
-	struct event ev;
-
-	setup_test("Loop exit: ");
-
-	tv.tv_usec = 0;
-	tv.tv_sec = 60*60*24;
-	evtimer_set(&ev, timeout_cb, NULL);
-	evtimer_add(&ev, &tv);
-
-	tv.tv_usec = 0;
-	tv.tv_sec = 1;
-	event_loopexit(&tv);
-
-	gettimeofday(&tv_start, NULL);
-	event_dispatch();
-	gettimeofday(&tv_end, NULL);
-	timersub(&tv_end, &tv_start, &tv_end);
-
-	evtimer_del(&ev);
-
-	if (tv.tv_sec < 2)
-		test_ok = 1;
-
-	cleanup_test();
-}
-
-void
-test_evbuffer(void) {
-	setup_test("Evbuffer: ");
-
-	struct evbuffer *evb = evbuffer_new();
-
-	evbuffer_add_printf(evb, "%s/%d", "hello", 1);
-
-	if (EVBUFFER_LENGTH(evb) == 7 &&
-	    strcmp(EVBUFFER_DATA(evb), "hello/1") == 0)
-	    test_ok = 1;
-	
-	cleanup_test();
-}
-
-void
-readcb(struct bufferevent *bev, void *arg)
-{
-	if (EVBUFFER_LENGTH(bev->input) == 8333) {
-		bufferevent_disable(bev, EV_READ);
-		test_ok++;
-	}
-}
-
-void
-writecb(struct bufferevent *bev, void *arg)
-{
-	if (EVBUFFER_LENGTH(bev->output) == 0)
-		test_ok++;
-}
-
-void
-errorcb(struct bufferevent *bev, short what, void *arg)
-{
-	test_ok = -2;
-}
-
-void
-test_bufferevent(void)
-{
-	struct bufferevent *bev1, *bev2;
-	char buffer[8333];
-	int i;
-
-	setup_test("Bufferevent: ");
-
-	bev1 = bufferevent_new(pair[0], readcb, writecb, errorcb, NULL);
-	bev2 = bufferevent_new(pair[1], readcb, writecb, errorcb, NULL);
-
-	bufferevent_disable(bev1, EV_READ);
-	bufferevent_enable(bev2, EV_READ);
-
-	for (i = 0; i < sizeof(buffer); i++)
-		buffer[0] = i;
-
-	bufferevent_write(bev1, buffer, sizeof(buffer));
-
-	event_dispatch();
-
-	bufferevent_free(bev1);
-	bufferevent_free(bev2);
-
-	if (test_ok != 2)
-		test_ok = 0;
-
-	cleanup_test();
-}
-
-struct test_pri_event {
-	struct event ev;
-	int count;
-};
-
-void
-test_priorities_cb(int fd, short what, void *arg)
-{
-	struct test_pri_event *pri = arg;
-	struct timeval tv;
-
-	if (pri->count == 3) {
-		event_loopexit(NULL);
-		return;
-	}
-
-	pri->count++;
-
-	timerclear(&tv);
-	event_add(&pri->ev, &tv);
-}
-
-void
-test_priorities(int npriorities)
-{
-	char buf[32];
-	struct test_pri_event one, two;
-	struct timeval tv;
-
-	snprintf(buf, sizeof(buf), "Priorities %d: ", npriorities);
-	setup_test(buf);
-
-	event_base_priority_init(event_base, npriorities);
-
-	memset(&one, 0, sizeof(one));
-	memset(&two, 0, sizeof(two));
-
-	timeout_set(&one.ev, test_priorities_cb, &one);
-	if (event_priority_set(&one.ev, 0) == -1) {
-		fprintf(stderr, "%s: failed to set priority", __func__);
-		exit(1);
-	}
-
-	timeout_set(&two.ev, test_priorities_cb, &two);
-	if (event_priority_set(&two.ev, npriorities - 1) == -1) {
-		fprintf(stderr, "%s: failed to set priority", __func__);
-		exit(1);
-	}
-
-	timerclear(&tv);
-
-	if (event_add(&one.ev, &tv) == -1)
-		exit(1);
-	if (event_add(&two.ev, &tv) == -1)
-		exit(1);
-
-	event_dispatch();
-
-	event_del(&one.ev);
-	event_del(&two.ev);
-
-	if (npriorities == 1) {
-		if (one.count == 3 && two.count == 3)
-			test_ok = 1;
-	} else if (npriorities == 2) {
-		/* Two is called once because event_loopexit is priority 1 */
-		if (one.count == 3 && two.count == 1)
-			test_ok = 1;
-	} else {
-		if (one.count == 3 && two.count == 0)
-			test_ok = 1;
-	}
-
-	cleanup_test();
-}
-
-static void
-test_multiple_cb(int fd, short event, void *arg)
-{
-	if (event & EV_READ)
-		test_ok |= 1;
-	else if (event & EV_WRITE)
-		test_ok |= 2;
-}
-
-void
-test_multiple_events_for_same_fd(void)
-{
-   struct event e1, e2;
-
-   setup_test("Multiple events for same fd: ");
-
-   event_set(&e1, pair[0], EV_READ, test_multiple_cb, NULL);
-   event_add(&e1, NULL);
-   event_set(&e2, pair[0], EV_WRITE, test_multiple_cb, NULL);
-   event_add(&e2, NULL);
-   event_loop(EVLOOP_ONCE);
-   event_del(&e2);
-   write(pair[1], TEST1, strlen(TEST1)+1);
-   event_loop(EVLOOP_ONCE);
-   event_del(&e1);
-   
-   if (test_ok != 3)
-	   test_ok = 0;
-
-   cleanup_test();
-}
-
-int decode_int(u_int32_t *pnumber, struct evbuffer *evbuf);
-
-void
-read_once_cb(int fd, short event, void *arg)
-{
-	char buf[256];
-	int len;
-
-	len = read(fd, buf, sizeof(buf));
-
-	if (called) {
-		test_ok = 0;
-	} else if (len) {
-		/* Assumes global pair[0] can be used for writing */
-		write(pair[0], TEST1, strlen(TEST1)+1);
-		test_ok = 1;
-	}
-
-	called++;
-}
-
-void
-test_want_only_once(void)
-{
-	struct event ev;
-	struct timeval tv;
-
-	/* Very simple read test */
-	setup_test("Want read only once: ");
-	
-	write(pair[0], TEST1, strlen(TEST1)+1);
-
-	/* Setup the loop termination */
-	timerclear(&tv);
-	tv.tv_sec = 1;
-	event_loopexit(&tv);
-	
-	event_set(&ev, pair[1], EV_READ, read_once_cb, &ev);
-	if (event_add(&ev, NULL) == -1)
-		exit(1);
-	event_dispatch();
-
-	cleanup_test();
-}
-
-#define TEST_MAX_INT	6
-
-void
-evtag_int_test(void)
-{
-	struct evbuffer *tmp = evbuffer_new();
-	u_int32_t integers[TEST_MAX_INT] = {
-		0xaf0, 0x1000, 0x1, 0xdeadbeef, 0x00, 0xbef000
-	};
-	u_int32_t integer;
-	int i;
-
-	for (i = 0; i < TEST_MAX_INT; i++) {
-		int oldlen, newlen;
-		oldlen = EVBUFFER_LENGTH(tmp);
-		encode_int(tmp, integers[i]);
-		newlen = EVBUFFER_LENGTH(tmp);
-		fprintf(stdout, "\t\tencoded 0x%08x with %d bytes\n",
-		    integers[i], newlen - oldlen);
-	}
-
-	for (i = 0; i < TEST_MAX_INT; i++) {
-		if (decode_int(&integer, tmp) == -1) {
-			fprintf(stderr, "decode %d failed", i);
-			exit(1);
-		}
-		if (integer != integers[i]) {
-			fprintf(stderr, "got %x, wanted %x",
-			    integer, integers[i]);
-			exit(1);
-		}
-	}
-
-	if (EVBUFFER_LENGTH(tmp) != 0) {
-		fprintf(stderr, "trailing data");
-		exit(1);
-	}
-	evbuffer_free(tmp);
-
-	fprintf(stdout, "\t%s: OK\n", __func__);
-}
-
-void
-evtag_fuzz()
-{
-	u_char buffer[4096];
-	struct evbuffer *tmp = evbuffer_new();
-	struct timeval tv;
-	int i, j;
-
-	int not_failed = 0;
-	for (j = 0; j < 100; j++) {
-		for (i = 0; i < sizeof(buffer); i++)
-			buffer[i] = rand();
-		evbuffer_drain(tmp, -1);
-		evbuffer_add(tmp, buffer, sizeof(buffer));
-
-		if (evtag_unmarshal_timeval(tmp, 0, &tv) != -1)
-			not_failed++;
-	}
-
-	/* The majority of decodes should fail */
-	if (not_failed >= 10) {
-		fprintf(stderr, "evtag_unmarshal should have failed");
-		exit(1);
-	}
-
-	/* Now insert some corruption into the tag length field */
-	evbuffer_drain(tmp, -1);
-	timerclear(&tv);
-	tv.tv_sec = 1;
-	evtag_marshal_timeval(tmp, 0, &tv);
-	evbuffer_add(tmp, buffer, sizeof(buffer));
-
-	EVBUFFER_DATA(tmp)[1] = 0xff;
-	if (evtag_unmarshal_timeval(tmp, 0, &tv) != -1) {
-		fprintf(stderr, "evtag_unmarshal_timeval should have failed");
-		exit(1);
-	}
-
-	evbuffer_free(tmp);
-
-	fprintf(stdout, "\t%s: OK\n", __func__);
-}
-
-void
-evtag_test(void)
-{
-	fprintf(stdout, "Testing Tagging:\n");
-
-	evtag_init();
-	evtag_int_test();
-	evtag_fuzz();
-
-	fprintf(stdout, "OK\n");
-}
-
-void
-rpc_test(void)
-{
-	struct msg *msg, *msg2;
-	struct kill *kill;
-	struct run *run;
-	struct evbuffer *tmp = evbuffer_new();
-	int i;
-
-	fprintf(stdout, "Testing RPC: ");
-
-	msg = msg_new();
-	EVTAG_ASSIGN(msg, from_name, "niels");
-	EVTAG_ASSIGN(msg, to_name, "phoenix");
-
-	if (EVTAG_GET(msg, kill, &kill) == -1) {
-		fprintf(stderr, "Failed to set kill message.\n");
-		exit(1);
-	}
-
-	EVTAG_ASSIGN(kill, weapon, "feather");
-	EVTAG_ASSIGN(kill, action, "tickle");
-
-	for (i = 0; i < 3; ++i) {
-		run = EVTAG_ADD(msg, run);
-		if (run == NULL) {
-			fprintf(stderr, "Failed to add run message.\n");
-			exit(1);
-		}
-		EVTAG_ASSIGN(run, how, "very fast");
-	}
-
-	if (msg_complete(msg) == -1) {
-		fprintf(stderr, "Failed to make complete message.\n");
-		exit(1);
-	}
-
-	evtag_marshal_msg(tmp, 0, msg);
-
-	msg2 = msg_new();
-	if (evtag_unmarshal_msg(tmp, 0, msg2) == -1) {
-		fprintf(stderr, "Failed to unmarshal message.\n");
-		exit(1);
-	}
-
-	if (!EVTAG_HAS(msg2, from_name) ||
-	    !EVTAG_HAS(msg2, to_name) ||
-	    !EVTAG_HAS(msg2, kill)) {
-		fprintf(stderr, "Missing data structures.\n");
-		exit(1);
-	}
-
-	if (EVTAG_LEN(msg2, run) != 3) {
-		fprintf(stderr, "Wrong number of run messages.\n");
-		exit(1);
-	}
-
-	msg_free(msg);
-	msg_free(msg2);
-
-	fprintf(stdout, "OK\n");
-}
-
-int
-main (int argc, char **argv)
-{
-#ifdef WIN32
-	WORD wVersionRequested;
-	WSADATA wsaData;
-	int	err;
-
-	wVersionRequested = MAKEWORD( 2, 2 );
-
-	err = WSAStartup( wVersionRequested, &wsaData );
-#endif
-
-	setvbuf(stdout, NULL, _IONBF, 0);
-
-	/* Initalize the event library */
-	event_base = event_init();
-
-	http_suite();
-
-	dns_suite();
-	
-	test_simpleread();
-
-	test_simplewrite();
-
-	test_multiple();
-
-	test_persistent();
-
-	test_combined();
-
-	test_simpletimeout();
-#ifndef WIN32
-	test_simplesignal();
-#endif
-	test_loopexit();
-
-	test_evbuffer();
-	
-	test_bufferevent();
-
-	test_priorities(1);
-	test_priorities(2);
-	test_priorities(3);
-
-	test_multiple_events_for_same_fd();
-
-	test_want_only_once();
-	
-	evtag_test();
-
-	rpc_test();
-
-	return (0);
-}
-
diff --git a/libevent/test/regress.h b/libevent/test/regress.h
deleted file mode 100644
index 296c93c..0000000
--- a/libevent/test/regress.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Niels Provos <provos@citi.umich.edu>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _REGRESS_H_
-#define _REGRESS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void http_suite(void);
-void http_basic_test(void);
-
-void dns_suite(void);
-	
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _REGRESS_H_ */
diff --git a/libevent/test/regress.rpc b/libevent/test/regress.rpc
deleted file mode 100644
index 7bc6b75..0000000
--- a/libevent/test/regress.rpc
+++ /dev/null
@@ -1,17 +0,0 @@
-/* tests data packing and unpacking */
-
-struct msg {
-	string from_name = 1;
-	string to_name = 2;
-	optional struct[kill] kill = 3;
-	array struct[run] run = 4;
-}
-
-struct kill {
-	string weapon = 1;
-	string action = 2;
-}
-
-struct run {
-	string how = 1;
-}
diff --git a/libevent/test/regress_dns.c b/libevent/test/regress_dns.c
deleted file mode 100644
index ce94187..0000000
--- a/libevent/test/regress_dns.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2003-2006 Niels Provos <provos@citi.umich.edu>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifdef WIN32
-#include <winsock2.h>
-#include <windows.h>
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <sys/queue.h>
-#ifndef WIN32
-#include <sys/socket.h>
-#include <sys/signal.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#endif
-#include <netdb.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#include "event.h"
-#include "evdns.h"
-#include "log.h"
-
-static int dns_ok = 0;
-
-void
-dns_gethostbyname_cb(int result, char type, int count, int ttl,
-    void *addresses, void *arg)
-{
-	dns_ok = 0;
-
-	if (result != DNS_ERR_NONE)
-		goto out;
-
-	fprintf(stderr, "type: %d, count: %d, ttl: %d: ", type, count, ttl);
-
-	switch (type) {
-	case DNS_IPv4_A: {
-		struct in_addr *in_addrs = addresses;
-		int i;
-		/* a resolution that's not valid does not help */
-		if (ttl < 0)
-			goto out;
-		for (i = 0; i < count; ++i)
-			fprintf(stderr, "%s ", inet_ntoa(in_addrs[0]));
-		break;
-	}
-	case DNS_PTR:
-		/* may get at most one PTR */
-		if (count != 1)
-			goto out;
-
-		fprintf(stderr, "%s ", *(char **)addresses);
-		break;
-	default:
-		goto out;
-	}
-
-	dns_ok = 1;
-
-out:
-	event_loopexit(NULL);
-}
-
-void
-dns_gethostbyname()
-{
-	fprintf(stdout, "Simple DNS resolve: ");
-	dns_ok = 0;
-	evdns_resolve_ipv4("www.monkey.org", 0, dns_gethostbyname_cb, NULL);
-	event_dispatch();
-
-	if (dns_ok) {
-		fprintf(stdout, "OK\n");
-	} else {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-}
-
-void
-dns_gethostbyaddr()
-{
-	struct in_addr in;
-	in.s_addr = htonl(0x7f000001ul); /* 127.0.0.1 */
-	fprintf(stdout, "Simple reverse DNS resolve: ");
-	dns_ok = 0;
-	evdns_resolve_reverse(&in, 0, dns_gethostbyname_cb, NULL);
-	event_dispatch();
-
-	if (dns_ok) {
-		fprintf(stdout, "OK\n");
-	} else {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-}
-
-void
-dns_suite(void)
-{
-	evdns_init();
-	dns_gethostbyname();
-	dns_gethostbyaddr();
-
-	evdns_shutdown(0);
-}
diff --git a/libevent/test/regress_http.c b/libevent/test/regress_http.c
deleted file mode 100644
index a905b03..0000000
--- a/libevent/test/regress_http.c
+++ /dev/null
@@ -1,426 +0,0 @@
-/*
- * Copyright (c) 2003-2006 Niels Provos <provos@citi.umich.edu>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifdef WIN32
-#include <winsock2.h>
-#include <windows.h>
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <sys/queue.h>
-#ifndef WIN32
-#include <sys/socket.h>
-#include <sys/signal.h>
-#include <unistd.h>
-#endif
-#include <netdb.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#include "event.h"
-#include "evhttp.h"
-#include "log.h"
-#include "http-internal.h"
-
-extern int pair[];
-extern int test_ok;
-
-static struct evhttp *http;
-
-void http_basic_cb(struct evhttp_request *req, void *arg);
-void http_post_cb(struct evhttp_request *req, void *arg);
-
-struct evhttp *
-http_setup(short *pport)
-{
-	int i;
-	struct evhttp *myhttp;
-	short port = -1;
-
-	/* Try a few different ports */
-	for (i = 0; i < 50; ++i) {
-		myhttp = evhttp_start("127.0.0.1", 8080 + i);
-		if (myhttp != NULL) {
-			port = 8080 + i;
-			break;
-		}
-	}
-
-	if (port == -1)
-		event_errx(1, "Could not start web server");
-
-	/* Register a callback for certain types of requests */
-	evhttp_set_cb(myhttp, "/test", http_basic_cb, NULL);
-	evhttp_set_cb(myhttp, "/postit", http_post_cb, NULL);
-
-	*pport = port;
-	return (myhttp);
-}
-
-int
-http_connect(const char *address, u_short port)
-{
-	/* Stupid code for connecting */
-	struct addrinfo ai, *aitop;
-	char strport[NI_MAXSERV];
-	int fd;
-	
-	memset(&ai, 0, sizeof (ai));
-	ai.ai_family = AF_INET;
-	ai.ai_socktype = SOCK_STREAM;
-	snprintf(strport, sizeof (strport), "%d", port);
-	if (getaddrinfo(address, strport, &ai, &aitop) != 0) {
-		event_warn("getaddrinfo");
-		return (-1);
-	}
-        
-	fd = socket(AF_INET, SOCK_STREAM, 0);
-	if (fd == -1)
-		event_err(1, "socket failed");
-
-	if (connect(fd, aitop->ai_addr, aitop->ai_addrlen) == -1)
-		event_err(1, "connect failed");
-
-	freeaddrinfo(aitop);
-
-	return (fd);
-}
-
-void
-http_readcb(struct bufferevent *bev, void *arg)
-{
-	const char *what = "This is funny";
-
- 	event_debug(("%s: %s\n", __func__, EVBUFFER_DATA(bev->input)));
-	
-	if (evbuffer_find(bev->input, what, strlen(what)) != NULL) {
-		struct evhttp_request *req = evhttp_request_new(NULL, NULL);
-		req->kind = EVHTTP_RESPONSE;
-		int done = evhttp_parse_lines(req, bev->input);
-
-		if (done == 1 &&
-		    evhttp_find_header(req->input_headers,
-			"Content-Type") != NULL)
-			test_ok++;
-		evhttp_request_free(req);
-		bufferevent_disable(bev, EV_READ);
-		event_loopexit(NULL);
-	}
-}
-
-void
-http_writecb(struct bufferevent *bev, void *arg)
-{
-	if (EVBUFFER_LENGTH(bev->output) == 0) {
-		/* enable reading of the reply */
-		bufferevent_enable(bev, EV_READ);
-		test_ok++;
-	}
-}
-
-void
-http_errorcb(struct bufferevent *bev, short what, void *arg)
-{
-	test_ok = -2;
-	event_loopexit(NULL);
-}
-
-void
-http_basic_cb(struct evhttp_request *req, void *arg)
-{
-	event_debug((stderr, "%s: called\n", __func__));
-
-	struct evbuffer *evb = evbuffer_new();
-	evbuffer_add_printf(evb, "This is funny");
-
-	evhttp_send_reply(req, HTTP_OK, "Everything is fine", evb);
-
-	evbuffer_free(evb);
-}
-
-void
-http_basic_test(void)
-{
-	struct bufferevent *bev;
-	int fd;
-	char *http_request;
-	short port = -1;
-
-	test_ok = 0;
-	fprintf(stdout, "Testing Basic HTTP Server: ");
-
-	http = http_setup(&port);
-	
-	fd = http_connect("127.0.0.1", port);
-
-	/* Stupid thing to send a request */
-	bev = bufferevent_new(fd, http_readcb, http_writecb,
-	    http_errorcb, NULL);
-
-	http_request =
-	    "GET /test HTTP/1.1\r\n"
-	    "Host: somehost \r\n"
-	    "\r\n";
-
-	bufferevent_write(bev, http_request, strlen(http_request));
-	
-	event_dispatch();
-
-	bufferevent_free(bev);
-	close(fd);
-
-	evhttp_free(http);
-	
-	if (test_ok != 2) {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-	
-	fprintf(stdout, "OK\n");
-}
-
-void http_request_done(struct evhttp_request *, void *);
-
-void
-http_connection_test(void)
-{
-	short port = -1;
-	struct evhttp_connection *evcon = NULL;
-	struct evhttp_request *req = NULL;
-	
-	test_ok = 0;
-	fprintf(stdout, "Testing Basic HTTP Connection: ");
-
-	http = http_setup(&port);
-
-	evcon = evhttp_connection_new("127.0.0.1", port);
-	if (evcon == NULL) {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-
-	/*
-	 * At this point, we want to schedule a request to the HTTP
-	 * server using our make request method.
-	 */
-
-	req = evhttp_request_new(http_request_done, NULL);
-
-	/* Add the information that we care about */
-	evhttp_add_header(req->output_headers, "Host", "somehost");
-
-	/* We give ownership of the request to the connection */
-	if (evhttp_make_request(evcon, req, EVHTTP_REQ_GET, "/test") == -1) {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-
-	event_dispatch();
-
-	evhttp_connection_free(evcon);
-	evhttp_free(http);
-	
-	if (test_ok != 1) {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-	
-	fprintf(stdout, "OK\n");
-}
-
-void
-http_request_done(struct evhttp_request *req, void *arg)
-{
-	const char *what = "This is funny";
-
-	if (req->response_code != HTTP_OK) {
-	
-		fprintf(stderr, "FAILED\n");
-		exit(1);
-	}
-
-	if (evhttp_find_header(req->input_headers, "Content-Type") == NULL) {
-		fprintf(stderr, "FAILED\n");
-		exit(1);
-	}
-
-	if (EVBUFFER_LENGTH(req->input_buffer) != strlen(what)) {
-		fprintf(stderr, "FAILED\n");
-		exit(1);
-	}
-	
-	if (memcmp(EVBUFFER_DATA(req->input_buffer), what, strlen(what)) != 0) {
-		fprintf(stderr, "FAILED\n");
-		exit(1);
-	}
-
-	test_ok = 1;
-	event_loopexit(NULL);
-}
-
-/*
- * HTTP POST test.
- */
-
-void http_postrequest_done(struct evhttp_request *, void *);
-
-#define POST_DATA "Okay.  Not really printf"
-
-void
-http_post_test(void)
-{
-	short port = -1;
-	struct evhttp_connection *evcon = NULL;
-	struct evhttp_request *req = NULL;
-
-	test_ok = 0;
-	fprintf(stdout, "Testing HTTP POST Request: ");
-
-	http = http_setup(&port);
-
-	evcon = evhttp_connection_new("127.0.0.1", port);
-	if (evcon == NULL) {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-
-	/*
-	 * At this point, we want to schedule an HTTP POST request
-	 * server using our make request method.
-	 */
-
-	req = evhttp_request_new(http_postrequest_done, NULL);
-	if (req == NULL) {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-
-	/* Add the information that we care about */
-	evhttp_add_header(req->output_headers, "Host", "somehost");
-	evbuffer_add_printf(req->output_buffer, POST_DATA);
-	
-	if (evhttp_make_request(evcon, req, EVHTTP_REQ_POST, "/postit") == -1) {
-		fprintf(stdout, "FAILED\n");
-		exit(1);
-	}
-
-	event_dispatch();
-
-	evhttp_connection_free(evcon);
-	evhttp_free(http);
-	
-	if (test_ok != 1) {
-		fprintf(stdout, "FAILED: %d\n", test_ok);
-		exit(1);
-	}
-	
-	fprintf(stdout, "OK\n");
-}
-
-void
-http_post_cb(struct evhttp_request *req, void *arg)
-{
-	event_debug((stderr, "%s: called\n", __func__));
-
-	/* Yes, we are expecting a post request */
-	if (req->type != EVHTTP_REQ_POST) {
-		fprintf(stdout, "FAILED (post type)\n");
-		exit(1);
-	}
-
-	if (EVBUFFER_LENGTH(req->input_buffer) != strlen(POST_DATA)) {
-		fprintf(stdout, "FAILED (length: %ld vs %ld)\n",
-		    EVBUFFER_LENGTH(req->input_buffer), strlen(POST_DATA));
-		exit(1);
-	}
-
-	if (memcmp(EVBUFFER_DATA(req->input_buffer), POST_DATA,
-		strlen(POST_DATA))) {
-		fprintf(stdout, "FAILED (data)\n");
-		fprintf(stdout, "Got :%s\n", EVBUFFER_DATA(req->input_buffer));
-		fprintf(stdout, "Want:%s\n", POST_DATA);
-		exit(1);
-	}
-	
-	struct evbuffer *evb = evbuffer_new();
-	evbuffer_add_printf(evb, "This is funny");
-
-	evhttp_send_reply(req, HTTP_OK, "Everything is fine", evb);
-
-	evbuffer_free(evb);
-}
-
-void
-http_postrequest_done(struct evhttp_request *req, void *arg)
-{
-	const char *what = "This is funny";
-
-	if (req->response_code != HTTP_OK) {
-	
-		fprintf(stderr, "FAILED (response code)\n");
-		exit(1);
-	}
-
-	if (evhttp_find_header(req->input_headers, "Content-Type") == NULL) {
-		fprintf(stderr, "FAILED (content type)\n");
-		exit(1);
-	}
-
-	if (EVBUFFER_LENGTH(req->input_buffer) != strlen(what)) {
-		fprintf(stderr, "FAILED (length %ld vs %ld)\n",
-		    EVBUFFER_LENGTH(req->input_buffer), strlen(what));
-		exit(1);
-	}
-	
-	if (memcmp(EVBUFFER_DATA(req->input_buffer), what, strlen(what)) != 0) {
-		fprintf(stderr, "FAILED (data)\n");
-		exit(1);
-	}
-
-	test_ok = 1;
-	event_loopexit(NULL);
-}
-
-
-void
-http_suite(void)
-{
-	http_basic_test();
-	http_connection_test();
-	http_post_test();
-}
diff --git a/libevent/test/test-eof.c b/libevent/test/test-eof.c
deleted file mode 100644
index 020c661..0000000
--- a/libevent/test/test-eof.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Compile with:
- * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <event.h>
-
-int test_okay = 1;
-int called = 0;
-
-void
-read_cb(int fd, short event, void *arg)
-{
-	char buf[256];
-	int len;
-
-	len = read(fd, buf, sizeof(buf));
-
-	printf("%s: read %d%s\n", __func__,
-	    len, len ? "" : " - means EOF");
-
-	if (len) {
-		if (!called)
-			event_add(arg, NULL);
-	} else if (called == 1)
-		test_okay = 0;
-
-	called++;
-}
-
-int
-main (int argc, char **argv)
-{
-	struct event ev;
-	char *test = "test string";
-	int pair[2];
-
-	if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1)
-		return (1);
-
-	
-	write(pair[0], test, strlen(test)+1);
-	shutdown(pair[0], SHUT_WR);
-
-	/* Initalize the event library */
-	event_init();
-
-	/* Initalize one event */
-	event_set(&ev, pair[1], EV_READ, read_cb, &ev);
-
-	event_add(&ev, NULL);
-
-	event_dispatch();
-
-	return (test_okay);
-}
-
diff --git a/libevent/test/test-init.c b/libevent/test/test-init.c
deleted file mode 100644
index 32806ba..0000000
--- a/libevent/test/test-init.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Compile with:
- * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <event.h>
-
-int
-main(int argc, char **argv)
-{
-	/* Initalize the event library */
-	event_init();
-
-	return (0);
-}
-
diff --git a/libevent/test/test-time.c b/libevent/test/test-time.c
deleted file mode 100644
index a26c973..0000000
--- a/libevent/test/test-time.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Compile with:
- * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <event.h>
-
-int called = 0;
-
-#define NEVENT	20000
-
-struct event *ev[NEVENT];
-
-void
-time_cb(int fd, short event, void *arg)
-{
-	struct timeval tv;
-	int i, j;
-
-	called++;
-
-	if (called < 10*NEVENT) {
-		for (i = 0; i < 10; i++) {
-			j = random() % NEVENT;
-			tv.tv_sec = 0;
-			tv.tv_usec = random() % 50000L;
-			if (tv.tv_usec % 2)
-				evtimer_add(ev[j], &tv);
-			else
-				evtimer_del(ev[j]);
-		}
-	}
-}
-
-int
-main (int argc, char **argv)
-{
-	struct timeval tv;
-	int i;
-
-	/* Initalize the event library */
-	event_init();
-
-	for (i = 0; i < NEVENT; i++) {
-		ev[i] = malloc(sizeof(struct event));
-
-		/* Initalize one event */
-		evtimer_set(ev[i], time_cb, ev[i]);
-		tv.tv_sec = 0;
-		tv.tv_usec = random() % 50000L;
-		evtimer_add(ev[i], &tv);
-	}
-
-	event_dispatch();
-
-	return (called < NEVENT);
-}
-
diff --git a/libevent/test/test-weof.c b/libevent/test/test-weof.c
deleted file mode 100644
index 5f3be27..0000000
--- a/libevent/test/test-weof.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Compile with:
- * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <signal.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <event.h>
-
-int pair[2];
-int test_okay = 1;
-int called = 0;
-
-void
-write_cb(int fd, short event, void *arg)
-{
-	char *test = "test string";
-	int len;
-
-	len = write(fd, test, strlen(test) + 1);
-
-	printf("%s: write %d%s\n", __func__,
-	    len, len ? "" : " - means EOF");
-
-	if (len > 0) {
-		if (!called)
-			event_add(arg, NULL);
-		close(pair[0]);
-	} else if (called == 1)
-		test_okay = 0;
-
-	called++;
-}
-
-int
-main (int argc, char **argv)
-{
-	struct event ev;
-
-	if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)
-		return (1);
-
-	if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1)
-		return (1);
-
-	/* Initalize the event library */
-	event_init();
-
-	/* Initalize one event */
-	event_set(&ev, pair[1], EV_WRITE, write_cb, &ev);
-
-	event_add(&ev, NULL);
-
-	event_dispatch();
-
-	return (test_okay);
-}
-
diff --git a/libevent/test/test.sh b/libevent/test/test.sh
deleted file mode 100755
index 878d468..0000000
--- a/libevent/test/test.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/sh
-
-setup () {
-	 EVENT_NOKQUEUE=yes; export EVENT_NOKQUEUE
-	 EVENT_NODEVPOLL=yes; export EVENT_NODEVPOLL
-	 EVENT_NOPOLL=yes; export EVENT_NOPOLL
-	 EVENT_NOSELECT=yes; export EVENT_NOSELECT
-	 EVENT_NOEPOLL=yes; export EVENT_NOEPOLL
-	 EVENT_NORTSIG=yes; export EVENT_NORTSIG
-}
-
-test () {
-	if ./test-init 2>/dev/null ;
-	then
-	        true
-	else
-		echo Skipping test
-		return
-	fi	
-
-echo -n " test-eof: "
-if ./test-eof >/dev/null ; 
-then 
-	echo OKAY ; 
-else 
-	echo FAILED ; 
-fi
-echo -n " test-weof: "
-if ./test-weof >/dev/null ; 
-then 
-	echo OKAY ; 
-else 
-	echo FAILED ; 
-fi
-echo -n " test-time: "
-if ./test-time >/dev/null ; 
-then 
-	echo OKAY ; 
-else 
-	echo FAILED ; 
-fi
-echo -n " regress: "
-if ./regress >/dev/null ; 
-then 
-	echo OKAY ; 
-else 
-	echo FAILED ; 
-fi
-}
-
-echo "Running tests:"
-
-# Need to do this by hand?
-setup
-unset EVENT_NOKQUEUE
-export EVENT_NOKQUEUE
-echo "KQUEUE"
-test
-
-setup
-unset EVENT_NODEVPOLL
-export EVENT_NODEVPOLL
-echo "DEVPOLL"
-test
-
-setup
-unset EVENT_NOPOLL
-export EVENT_NOPOLL
-echo "POLL"
-test
-
-setup
-unset EVENT_NOSELECT
-export EVENT_NOSELECT
-echo "SELECT"
-test
-
-setup
-unset EVENT_NORTSIG
-export EVENT_NORTSIG
-echo "RTSIG"
-test
-
-setup
-unset EVENT_NOEPOLL
-export EVENT_NOEPOLL
-echo "EPOLL"
-test
-
-
-