swift-nio/Tests
Joakim Hassila 8ea0afb4c4
Added second implementation of liburing as discussed in #1761. (#1804)
Motivation:

As outlined in #1761, io_uring is a new async I/O facility on Linux.

This commit includes a second stab at adding this to SwiftNIO.

Modifications:

Added Uring Selector implementation.

Added liburing support shims.

Disabled one assert that trips during normal usage likely due to async nature of poll updates, for discussion

Added shared kernel sqpoll ring support (can be run with normal user privs in 5.13)

Support for both single shot polls (should work all the way back to 5.1 kernels, needs testing) and multishot streaming polls and modifications for polls (scheduled due in 5.13) for slightly better performance (and better impedance match to SwiftNIO usage)

Added extensive debug logs which can be enabled with -D compiler flags (should likely be removed when bringup and testing is complete)

Adjusted tests.

Added documentation.

Result:

Basic liburing support is in place.

Co-authored-by: Johannes Weiss <johannesweiss@apple.com>
2021-04-29 10:40:27 +01:00
..
NIOConcurrencyHelpersTests forward #file to #filePath differently (#1560) 2020-06-18 15:12:11 +01:00
NIOFoundationCompatTests Ensure ByteBufferViewProtocolTests are run on linux (#1618) 2020-08-13 10:46:15 +01:00
NIOHTTP1Tests HTTP server upgrade tests: cosmetic improvements (#1763) 2021-02-23 15:34:37 +00:00
NIOTLSTests allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
NIOTestUtilsTests Add assertion helpers for NIOHTTP1TestServer (#1760) 2021-03-03 10:20:55 +00:00
NIOTests Added second implementation of liburing as discussed in #1761. (#1804) 2021-04-29 10:40:27 +01:00
NIOWebSocketTests Add static vars for common HTTP versions (#1723) 2021-01-19 17:27:02 +00:00
LinuxMain.swift Reduce selector wakeups. (#1820) 2021-04-28 15:09:07 +01:00