## Event-based
If curl is built with `Debug` enabled (see below), then the `runtests.pl`
- script offers a `-e` option that makes it perform *event-based*. Such tests
- invokes the curl tool with `--test-event`, a debug-only option made for this
- purpose.
+ script offers a `-e` option (or `--test-event`) that makes it perform
+ *event-based*. Such tests invokes the curl tool with `--test-event`, a
+ debug-only option made for this purpose.
Performing event-based means that the curl tool uses the
`curl_multi_socket_action()` API call to drive the transfer(s), instead of
To be able to use `--test-event` together with `--parallel`, curl requires
*libuv* to be present and enabled in the build: `configure --enable-libuv`
+## Duplicated handles
+
+ If curl is built with `Debug` enabled (see below), then the `runtests.pl`
+ script offers a `--test-duphandle` option. When enabled, curl always
+ duplicates the easy handle and does its transfers using the new one instead
+ of the original. This is done entirely for testing purpose to verify that
+ everything works exactly the same when this is done; confirming that the
+ `curl_easy_duphandle()` function duplicates everything that it should.
+
### Port numbers used by test servers
- All test servers run on "random" port numbers. All tests should be written
- to use suitable variables instead of fixed port numbers so that test cases
- continue to work independent on what port numbers the test servers actually
- use.
+ All test servers run on "random" port numbers. All tests must be written to
+ use the suitable variables instead of fixed port numbers so that test cases
+ continue to work independently of what port numbers the test servers
+ actually use.
See [`FILEFORMAT`](FILEFORMAT.md) for the port number variables.