swift-nio/Tests/NIOTests
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
..
AcceptBackoffHandlerTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
AcceptBackoffHandlerTest.swift make some unnecessarily slow tests faster (#1365) 2020-01-29 15:26:57 +00:00
BaseObjectsTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
BaseObjectsTest.swift rename FileHandle to NIOFileHandle (#818) 2019-02-19 16:52:00 +00:00
BlockingIOThreadPoolTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
BlockingIOThreadPoolTest.swift address #186: rename BlockingIOThreadPool to NIOThreadPool (#838) 2019-02-25 16:51:47 +00:00
BootstrapTest+XCTest.swift Shorthand way of setting options in universal bootstrap (#1547) 2020-06-15 17:24:20 +01:00
BootstrapTest.swift NIO: Implement BSD sockets APIs for Windows (#1471) 2020-07-03 10:14:36 +01:00
ByteBufferTest+XCTest.swift Fix crash: Create ByteBuffer Slice from ByteBuffer Slice after 16MB (#1813) 2021-04-22 11:08:36 +01:00
ByteBufferTest.swift Fix crash: Create ByteBuffer Slice from ByteBuffer Slice after 16MB (#1813) 2021-04-22 11:08:36 +01:00
ChannelNotificationTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
ChannelNotificationTest.swift forward #file to #filePath differently (#1560) 2020-06-18 15:12:11 +01:00
ChannelOptionStorageTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
ChannelOptionStorageTest.swift Adjust names of BSDSocket option values. (#1510) 2020-05-11 15:13:58 +01:00
ChannelPipelineTest+XCTest.swift Add synchronous pipeline operations (#1741) 2021-02-09 09:59:41 +00:00
ChannelPipelineTest.swift Add synchronous pipeline operations (#1741) 2021-02-09 09:59:41 +00:00
ChannelTests+XCTest.swift Revert "Retry on EPROTOTYPE on socket writes. (#1706)" (#1707) 2020-12-18 15:32:53 +00:00
ChannelTests.swift Revert "Retry on EPROTOTYPE on socket writes. (#1706)" (#1707) 2020-12-18 15:32:53 +00:00
CircularBufferTests+XCTest.swift Implement reserveCapacity for CircularBuffer. (#1819) 2021-04-26 14:10:43 +01:00
CircularBufferTests.swift Implement reserveCapacity for CircularBuffer. (#1819) 2021-04-26 14:10:43 +01:00
CodecTest+XCTest.swift B2MD: Don't try to reclaim if continuing to parse (#1733) 2021-01-29 17:03:04 +00:00
CodecTest.swift B2MD: Don't try to reclaim if continuing to parse (#1733) 2021-01-29 17:03:04 +00:00
ControlMessageTests+XCTest.swift Explicit Congestion Notification for UDP (#1596) 2020-07-17 16:25:09 +01:00
ControlMessageTests.swift Explicit Congestion Notification for UDP (#1596) 2020-07-17 16:25:09 +01:00
CustomChannelTests+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
CustomChannelTests.swift remove ELP.succeed/fail's labels (#776) 2019-01-24 16:42:53 +00:00
DatagramChannelTests+XCTest.swift Better handle writability changes in triggerWriteOperations (#1624) 2020-08-26 12:26:05 +01:00
DatagramChannelTests.swift Better handle writability changes in triggerWriteOperations (#1624) 2020-08-26 12:26:05 +01:00
DispatchQueue+WithFutureTest+XCTest.swift Provide a convenience API for dispatching blocking work (#1563) (#1662) 2020-09-30 17:04:21 +01:00
DispatchQueue+WithFutureTest.swift Provide a convenience API for dispatching blocking work (#1563) (#1662) 2020-09-30 17:04:21 +01:00
EchoServerClientTest+XCTest.swift Cleanup unix socket pathname on server socket close or bind (#1637) 2020-09-22 15:30:49 +01:00
EchoServerClientTest.swift Cleanup unix socket pathname on server socket close or bind (#1637) 2020-09-22 15:30:49 +01:00
EmbeddedChannelTest+XCTest.swift Add an initialiser to EmbeddedChannel that adds multiple ChannelHandlers 2021-04-09 15:22:35 +01:00
EmbeddedChannelTest.swift Add an initialiser to EmbeddedChannel that adds multiple ChannelHandlers 2021-04-09 15:22:35 +01:00
EmbeddedEventLoopTest+XCTest.swift Execute tasks scheduled at the same time in order on EmbeddedEventLoop (#1540) 2020-06-17 10:56:32 +01:00
EmbeddedEventLoopTest.swift Execute tasks scheduled at the same time in order on EmbeddedEventLoop (#1540) 2020-06-17 10:56:32 +01:00
EventLoopFutureTest+XCTest.swift Provide a convenience API for dispatching blocking work (#1563) (#1662) 2020-09-30 17:04:21 +01:00
EventLoopFutureTest.swift Add 'promise' versions of EventLoopFuture.{and,when}All{succeed,complete} (#1794) 2021-04-08 09:38:50 +01:00
EventLoopTest+XCTest.swift Use the pre-succeeded void future when possible for async pipeline operations (#1766) 2021-02-25 13:08:00 +00:00
EventLoopTest.swift Use the pre-succeeded void future when possible for async pipeline operations (#1766) 2021-02-25 13:08:00 +00:00
FileRegionTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
FileRegionTest.swift Adjust names of BSDSocket option values. (#1510) 2020-05-11 15:13:58 +01:00
GetAddrInfoResolverTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
GetAddrInfoResolverTest.swift Add `BSDSocket.SocketType` to represent the socket type (#1467) 2020-04-03 17:16:48 +01:00
HappyEyeballsTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
HappyEyeballsTest.swift NIO: Implement BSD sockets APIs for Windows (#1471) 2020-07-03 10:14:36 +01:00
HeapTests+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
HeapTests.swift Reduce refcounting in Heap by removing configurability (#1614) 2020-08-10 13:12:43 +01:00
IOErrorTest+XCTest.swift get IOError down to git in an existential container (#1355) (#1376) 2020-02-03 12:30:37 +00:00
IOErrorTest.swift get IOError down to git in an existential container (#1355) (#1376) 2020-02-03 12:30:37 +00:00
IdleStateHandlerTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
IdleStateHandlerTest.swift Adjust names of BSDSocket option values. (#1510) 2020-05-11 15:13:58 +01:00
IntegerBitPackingTests+XCTest.swift refactor registration IDs (#1801) 2021-04-23 12:43:30 +01:00
IntegerBitPackingTests.swift refactor registration IDs (#1801) 2021-04-23 12:43:30 +01:00
IntegerTypesTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
IntegerTypesTest.swift improve documentation (#919) 2019-03-25 12:09:16 +02:00
LinuxTest+XCTest.swift fix cores count in containers (#1518) 2020-05-15 10:09:35 +01:00
LinuxTest.swift Update and finish Android port. (#1695) 2020-11-27 11:16:11 +00:00
MarkedCircularBufferTests+XCTest.swift Remove incorrect assertion in MarkedCircularBuffer.popFirst (#1627) 2020-09-03 14:06:14 +01:00
MarkedCircularBufferTests.swift Remove incorrect assertion in MarkedCircularBuffer.popFirst (#1627) 2020-09-03 14:06:14 +01:00
MulticastTest+XCTest.swift Replace NIONetworkInterface with NIONetworkDevice. (#1622) 2020-08-24 09:37:27 +01:00
MulticastTest.swift Replace NIONetworkInterface with NIONetworkDevice. (#1622) 2020-08-24 09:37:27 +01:00
NIOAnyDebugTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
NIOAnyDebugTest.swift Disambiguate the capacity of the ByteBuffer (no. of addressable bytes) and capacity of underlying storage (#1485). (#1629) 2020-09-25 11:10:20 +01:00
NIOCloseOnErrorHandlerTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
NIOCloseOnErrorHandlerTest.swift Add a Channel Handler that closes the channel (#967) 2019-04-30 12:06:24 +01:00
NIOThreadPoolTest+XCTest.swift Properly allow ThreadPool to be started multiple times. (#1572) 2020-06-25 11:14:43 +01:00
NIOThreadPoolTest.swift Properly allow ThreadPool to be started multiple times. (#1572) 2020-06-25 11:14:43 +01:00
NonBlockingFileIOTest+XCTest.swift Better error type for inactive thread pools (#1787) 2021-03-22 10:01:39 +00:00
NonBlockingFileIOTest.swift Better error type for inactive thread pools (#1787) 2021-03-22 10:01:39 +00:00
PendingDatagramWritesManagerTests+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
PendingDatagramWritesManagerTests.swift Explicit Congestion Notification for UDP (#1596) 2020-07-17 16:25:09 +01:00
PipeChannelTest+XCTest.swift PipeBootstrap: fix file type change & accept 1 fd (#1543) 2020-06-03 17:48:51 +01:00
PipeChannelTest.swift PipeBootstrap: fix file type change & accept 1 fd (#1543) 2020-06-03 17:48:51 +01:00
PriorityQueueTests+XCTest.swift Reduce refcounting in Heap by removing configurability (#1614) 2020-08-10 13:12:43 +01:00
PriorityQueueTests.swift Reduce refcounting in Heap by removing configurability (#1614) 2020-08-10 13:12:43 +01:00
RecvByteBufAllocatorTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
RecvByteBufAllocatorTest.swift improve documentation (#919) 2019-03-25 12:09:16 +02:00
SALChannelTests+XCTest.swift ClientBootstrap: allow binding sockets (#1490) 2020-06-08 10:46:20 +01:00
SALChannelTests.swift refactor registration IDs (#1801) 2021-04-23 12:43:30 +01:00
SALEventLoopTests+XCTest.swift Reduce selector wakeups. (#1820) 2021-04-28 15:09:07 +01:00
SALEventLoopTests.swift Reduce selector wakeups. (#1820) 2021-04-28 15:09:07 +01:00
SelectorTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
SelectorTest.swift Reduce selector wakeups. (#1820) 2021-04-28 15:09:07 +01:00
SingleStepByteToMessageDecoderTest+XCTest.swift Out of pipeline byte stream decoding (#1268) 2019-12-03 11:29:38 +00:00
SingleStepByteToMessageDecoderTest.swift Fix Codec memory reclaim bug (#1729) 2021-01-21 20:32:20 +00:00
SocketAddressTest+XCTest.swift Create SocketAddress from packed byte representation (#1692) 2020-11-27 10:18:47 +00:00
SocketAddressTest.swift Fix casing of 'SocketAddress.init(packedIpAddress:port:)' (#1698) 2020-11-30 17:51:12 +00:00
SocketChannelTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
SocketChannelTest.swift Update and finish Android port. (#1695) 2020-11-27 11:16:11 +00:00
SocketOptionProviderTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
SocketOptionProviderTest.swift Make language more welcoming (#1728) 2021-01-21 12:45:46 +00:00
StreamChannelsTest+XCTest.swift Add synchronous channel options (#1755) 2021-02-22 11:07:30 +00:00
StreamChannelsTest.swift Added second implementation of liburing as discussed in #1761. (#1804) 2021-04-29 10:40:27 +01:00
SyscallAbstractionLayer.swift Reduce selector wakeups. (#1820) 2021-04-28 15:09:07 +01:00
SystemCallWrapperHelpers.swift forward #file to #filePath differently (#1560) 2020-06-18 15:12:11 +01:00
SystemTest+XCTest.swift Add methods to create and parse cmsghdr structured data. (#1590) 2020-07-14 12:29:31 +01:00
SystemTest.swift support qemu: qemu returns ENOPROTOOPT for unknown socket opts (#1806) 2021-04-15 11:30:26 +01:00
TestUtils.swift Update and finish Android port. (#1695) 2020-11-27 11:16:11 +00:00
ThreadTest+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
ThreadTest.swift Remove weak var from testThreadSpecificDoesNotLeakIfThreadExitsWhilstSetOnMultipleThreads (#1295) 2019-12-06 11:55:59 +00:00
TimeAmountTests+XCTest.swift Conform TimeAmount to AdditiveArithmetic (#1691) 2020-11-17 15:30:17 +00:00
TimeAmountTests.swift Conform TimeAmount to AdditiveArithmetic (#1691) 2020-11-17 15:30:17 +00:00
TypeAssistedChannelHandlerTests+XCTest.swift allow deprecated tests to test deprecated functionality (#1271) 2019-11-27 14:26:51 +00:00
TypeAssistedChannelHandlerTests.swift typo: ChannnelDuplexHandler should be ChannelDuplexHandler (#69) 2018-03-02 21:56:33 +09:00
UniversalBootstrapSupportTest+XCTest.swift Shorthand way of setting options in universal bootstrap (#1547) 2020-06-15 17:24:20 +01:00
UniversalBootstrapSupportTest.swift Shorthand way of setting options in universal bootstrap (#1547) 2020-06-15 17:24:20 +01:00
UtilitiesTest+XCTest.swift Replace NIONetworkInterface with NIONetworkDevice. (#1622) 2020-08-24 09:37:27 +01:00
UtilitiesTest.swift Replace NIONetworkInterface with NIONetworkDevice. (#1622) 2020-08-24 09:37:27 +01:00