61 Commits

Author SHA1 Message Date
Peter Rosin
8fa030c032 Make sure TINYTEST_LOCAL is defined when building tinytest.c 2011-05-25 19:44:06 -04:00
Peter Rosin
7b819f2d97 Libtool brings in the dependencies of libevent_openssl.la automatically 2011-05-04 16:18:51 -04:00
Peter Rosin
274dd0369a libssl depends on libcrypto, not the other way around. 2011-05-04 16:18:46 -04:00
Nick Mathewson
ea0d019b71 Use AM_CONDITIONAL, not AC_SUBST, to tell automake to build regress
For some reason, this makes mingw much happier about building
regress.exe by default.  No, I'm afraid I don't know why.
2011-04-23 02:35:17 -04:00
Sebastian Hahn
3f79a3a01a Continue AM_CFLAGS to AM_CPPFLAGS correction
9c469db300e1b270a93c6b04c1709ac0f7751136 had started with the conversion
but left out another instance of incorrectly used AM_CFLAGS.

Dave Hart provided the suggestion for this fix.
2011-02-23 12:17:08 +01:00
Nick Mathewson
15b2408c9b Use $(), not @@, for LIBEVENT_GC_SECTIONS 2011-02-22 16:13:49 -05:00
Dave Hart
9c469db300 Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am 2011-02-22 00:29:12 -05:00
Dave Hart
49e9bb7fb0 Add configure options to disable installation, regression tests
The main reason for disabling installation is if you're building
libevent as a subpackage for embedding: you want to have your main
package's "make all" build libevent, but you don't want your main
package's "make install" to install libevent.
2011-02-22 00:28:37 -05:00
Dave Hart
0965c56356 Use the gcc -ffunction-segments feature to allow gc when linking with static libevent 2011-02-22 00:25:58 -05:00
Nick Mathewson
f0bd83ea88 Bump to the latest version of tinytest
This lets us do without libevent-specific code in tinytest.c, and
lets us add a feature to skip individual tests from the command
line.
2010-09-09 16:13:09 -04:00
Nick Mathewson
041989fb66 Rename regress_pthread.c to regress_thread.c 2010-08-24 12:42:24 -04:00
Nick Mathewson
d74ae381e0 Make the regress_pthread.c tests work on windows with current test APIs 2010-08-17 13:21:05 -04:00
Nick Mathewson
ec347b9225 Move event-config.h to include/event2
This change means that all required include files are in event2, and
all files not in event2/* are optional.
2010-08-06 20:21:27 -04:00
Mike Smellie
cf249e7d99 Possible fix to 100% cpu usage with epoll and openssl
I'm running a fairly simple bit of test code using libevent2 with epoll and
openssl bufferevents and I've run into a 100% cpu usage problem.

Looking into it 100% usage was caused by epoll_wait constantly
returning write events on the openssl socket when it shouldn't really have
been looking for write events at all (N_ACTIVE_CALLBACKS() was returning 0
also).

Looking a bit deeper eventbuffer_openssl socket seems to be requesting
that the EV_WRITE event be removed when it should, but the event isn't
actually being removed from epoll.

Continuing to follow this I think I've found a bug in
event_changelist_del.

For evpoll event_del calls event_changelist_del which caches the change
which is then actioned later when evpoll_dispatch is called.

In event_changlist_del there is a check so that if the currently changed
action is an add then the cached action is changed to a no-op rather than a
delete (which makes sense). The problem arises if there are more than
two add or delete operations between calls to dispatch, in this case it's
possible that the delete is turned into a no-op when it shouldn't have
been.

For example starting with the event on, a delete followed by an add and
then another delete results in a no-op when it should have been a delete (I
added a fair bit of debug output that seems to confirm this behaviour).

I've applied a small change that checks the original old_event stored with
the change and only converts the delete to a no-op if the event isn't on in
old_event. This seems to have fixed my problem.
2010-07-19 14:55:15 +02:00
Giuseppe Scrivano
10c4c90450 Do not inhibit automake dependencies generation
It fixes make parallel builds.
2010-04-13 02:01:04 -04:00
Nick Mathewson
b660edf9db Remove redundant stuff from EXTRA_DIST
To a first approximation, sources that are mentioned anywhere in an
automake file don't need to get mentioned in EXTRA_DIST.
2010-03-12 13:22:47 -05:00
Nick Mathewson
426c8fbe93 Support the standard 'make check' target in place of 'make verify'
Based on patch 2816088 from Zack Weinberg
2010-03-12 13:09:28 -05:00
Niels Provos
b8226390bc move dns utility functions into a separate file so that we can use them for http testing 2010-01-14 16:53:25 -08:00
Nick Mathewson
885b42734c Fix test-ratelim compilation on Linux.
I'd forgotten to include time.h, and to link against libm.
2009-12-30 13:50:52 -05:00
Nick Mathewson
f0c0124e60 Testing code for bufferevent rate-limiting.
This is not part of the regression tests, since running it necessarily
takes a while.  There is a new test-ratelim test; run it with '-h'
for an argument to see its options.
2009-12-28 16:58:22 -05:00
Nick Mathewson
8a3007efb9 More evconnlistener unit tests: bump its coverage from 71% to 83%.
svn:r1392
2009-07-30 17:01:38 +00:00
Nick Mathewson
709c21c48c Bufferevent support for openssl.
This code adds a new Bufferevent type that is only compiled when the
openssl library is present.  It supports using an SSL object and an
event alert mechanism, which can either be an fd or an underlying
bufferevent.

There is still more work to do: the unit tests are incomplete, and we
need to support flush and shutdown much better.  Sometimes events are
generated needlessly: this will hose performance.

There's a new encrypting proxy in sample/le-proxy.c.

This code has only been tested on OSX, and nowhere else.

svn:r1382
2009-07-28 04:03:57 +00:00
Nick Mathewson
ec1468832e Oops: actually commit changes to build and use regress_iocp
svn:r1255
2009-04-30 19:05:43 +00:00
Nick Mathewson
5c104cef51 Add a randomized test for heap correctness.
svn:r1229
2009-04-23 00:33:37 +00:00
Nick Mathewson
e4f24219ee Add a new bench_httpclient for a trivial codecon demo.
svn:r1198
2009-04-18 00:12:52 +00:00
Nick Mathewson
ec35eb5520 Make threading functions global, like the mm_ functions. Use the libevent_pthread.la library in regress_pthread.
svn:r1121
2009-02-12 22:19:54 +00:00
Nick Mathewson
ea4b8724c0 checkpoint work on big bufferevent refactoring
svn:r1095
2009-02-02 19:22:13 +00:00
Nick Mathewson
a30c9eb1ac Move evbuffer tests into their own file.
svn:r1087
2009-02-01 01:07:12 +00:00
Nick Mathewson
a8203b3490 Refactor unit tests using my spiffy new "tinytest" framework.
The big win here is that we can get process-level isolation.

This has been tested to work okay on at least Linux and Win32.  Only
the tests in regress.c have been converted wrapped in the new wrapper
functions; the others are still on the old system.

svn:r1073
2009-01-29 23:19:57 +00:00
Nick Mathewson
309fc7c4ad New functions to provide sane threading callbacks with pthreads and win32 threading implementations.
svn:r1031
2009-01-21 07:51:25 +00:00
Nick Mathewson
0d9d5cfe22 New functions in evutil to clone inet_pton and inet_ntop, with tests.
Adapted from Tor code.

svn:r983
2009-01-02 20:46:12 +00:00
Niels Provos
ffb3966ec2 minor compilation and regresson fixes; from Frank Denis
svn:r952
2008-11-27 19:34:07 +00:00
Niels Provos
e736991aea make it work with older versions of automake; from Scott Lamb
svn:r858
2008-06-22 16:00:48 +00:00
Nick Mathewson
39400e68b6 Patch from Valery Kholodkov: support for edge-triggered events with epoll and kqueue. Changed from original patch: made test into a regression test, with explicit success/failure for edge-triggered and non-edge-triggered cases. Closes SF request 1968284.
svn:r840
2008-05-30 16:56:34 +00:00
Niels Provos
c3c11f27b0 add a simple http server for potential benchmarking
svn:r823
2008-05-15 01:54:20 +00:00
Nick Mathewson
68fecb7ab6 r19633@catbus: nickm | 2008-05-07 16:10:00 -0400
Fix bug 1958901: stop overriding CPPFLAGS in test directory.


svn:r783
2008-05-07 20:29:11 +00:00
Niels Provos
ccb70f1bc7 provide example bufferevent filters doing compression and decompression as additional regression test
svn:r751
2008-04-30 04:31:10 +00:00
Niels Provos
558de9b377 Provide OpenSSL style support for multiple threads accessing the same event_base
svn:r684
2008-03-02 21:18:33 +00:00
Nick Mathewson
0e7cbe6508 r18482@catbus: nickm | 2008-02-28 12:38:40 -0500
Fix GCC 4.2 warnings; fix includes in subdirs.


svn:r675
2008-02-28 17:38:52 +00:00
Niels Provos
23ef0d0936 allow regression code to be build even without Python installed
svn:r645
2008-02-17 01:15:36 +00:00
Nick Mathewson
9859bc783a r15764@tombo: nickm | 2007-12-31 15:46:16 -0500
Forward-port from 1.4 branch: Make generated rpc files build-depend on event_rpcgen.


svn:r626
2007-12-31 20:47:12 +00:00
Niels Provos
876c3af7b0 add another benchmark that tests cascading events
svn:r566
2007-11-30 02:21:33 +00:00
Niels Provos
568095bfa1 srcdir for verify; from Christopher Layne
svn:r516
2007-11-12 05:34:10 +00:00
Niels Provos
881731028b split libevent into two extra libraries libevent_core and libevent_extra
svn:r469
2007-11-03 23:45:38 +00:00
Nick Mathewson
c895ee4618 r15094@catbus: nickm | 2007-09-18 10:52:11 -0400
Patch from Christopher Lane: Make regress.gen.* buildable from outside source directory.


svn:r434
2007-09-18 15:11:53 +00:00
Nick Mathewson
a36d4a930d r14699@catbus: nickm | 2007-08-20 10:42:57 -0400
Use $top_srcdir and $srcdir variables to refer to source paths in Makefile.am.  This makes it possible to build libevent from a separate directory.  Patch from Kelly Anderson.


svn:r400
2007-08-20 14:44:15 +00:00
Nick Mathewson
21a7e7ed67 r14498@catbus: nickm | 2007-08-10 11:58:32 -0400
Fix compilation warnings in trunk on linux with gcc 4.1.2.  In time-test.c, always include time.h, so that time() is defined.  In test/Makefile.am, put -I../compat in CPPFLAGS, and fix a typo.  In test/regress.c, cast unsigned char pointers to char* before passing them to str[n]cmp.


svn:r385
2007-08-10 15:59:31 +00:00
Niels Provos
f554234f74 first stab at an rpc layer; this breaks the regression test.
svn:r254
2006-11-16 07:36:20 +00:00
Niels Provos
07c3fb5067 add a simple regression test for the DNS resolver; requires internet access.
do some KNF on evdns.c; add checks to prevent potential buffer overflows.
fix one memory leak.


svn:r230
2006-08-27 20:04:20 +00:00
Niels Provos
ba7262ebdf reorganization of the http functionality; we separate http handling into a
connection object and a request object; also make it clear which buffers are
used for input and output; unittests not complete yet.


svn:r217
2006-07-17 00:33:57 +00:00