This approach should let Make work better, let libevent build faster
(especially when using a parallelized build), and basically make the
Makefiles easier to maintain.
See http://miller.emu.id.au/pmiller/books/rmch/ for more info on why
you'd want to do this.
This is due to an idea from Zack Weinberg; the patch is my own.
This function uses a C program to generate its output, and then uses a
Python program to check it for correctness. On systems without
Python, we just make sure that the C program doesn't crash.
It's likely that we should be requiring some particular python version.
This is an alpha, though: I'm sure somebody will tell us which.
This test opens a server socket, and forks a child which connects to that
server socket many times. It sets a low number for the max open file limit
to catch any file descriptor leaks.
It would not work on Windows since it uses fork() to be able to create both the
server and the clients.
Eventually test-changelist should expand to try more cases, maybe
query the status of the actual changelist somehow, and integrate it
with the rest of the unit tests.
Also, add test-changelist to gitignore.
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.