Add support for io_uring based async read/recvmsg
Summary: Add support for io_uring based async read/recvmsg (Note: this ignores all push blocking failures!) Reviewed By: kevin-vigor Differential Revision: D21208891 fbshipit-source-id: 21b3b5e0f201e982ecb50a284d03ab53413ec3e3
This commit is contained in:
committed by
Facebook GitHub Bot
parent
a0cd37b5ef
commit
de5147a516
@@ -25,18 +25,18 @@
|
|||||||
|
|
||||||
@implementation FlipperClientTests
|
@implementation FlipperClientTests
|
||||||
facebook::flipper::FlipperClient* client;
|
facebook::flipper::FlipperClient* client;
|
||||||
facebook::flipper::test::FlipperConnectionManagerMock* socket;
|
facebook::flipper::test::FlipperConnectionManagerMock* sock;
|
||||||
FlipperClient* objcClient;
|
FlipperClient* objcClient;
|
||||||
|
|
||||||
- (void)setUp {
|
- (void)setUp {
|
||||||
// Put setup code here. This method is called before the invocation of each
|
// Put setup code here. This method is called before the invocation of each
|
||||||
// test method in the class.
|
// test method in the class.
|
||||||
socket = new facebook::flipper::test::FlipperConnectionManagerMock;
|
sock = new facebook::flipper::test::FlipperConnectionManagerMock;
|
||||||
auto state = std::make_shared<FlipperState>();
|
auto state = std::make_shared<FlipperState>();
|
||||||
|
|
||||||
client = new facebook::flipper::FlipperClient(
|
client = new facebook::flipper::FlipperClient(
|
||||||
std::unique_ptr<facebook::flipper::test::FlipperConnectionManagerMock>{
|
std::unique_ptr<facebook::flipper::test::FlipperConnectionManagerMock>{
|
||||||
socket},
|
sock},
|
||||||
state);
|
state);
|
||||||
objcClient = [[FlipperClient alloc] initWithCppClient:client];
|
objcClient = [[FlipperClient alloc] initWithCppClient:client];
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,7 @@ FlipperClient* objcClient;
|
|||||||
std::unique_ptr<facebook::flipper::FlipperResponderMock> responder =
|
std::unique_ptr<facebook::flipper::FlipperResponderMock> responder =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>(
|
std::make_unique<facebook::flipper::FlipperResponderMock>(
|
||||||
&successes, &errors);
|
&successes, &errors);
|
||||||
socket->callbacks->onMessageReceived(message, std::move(responder));
|
sock->callbacks->onMessageReceived(message, std::move(responder));
|
||||||
folly::dynamic expected =
|
folly::dynamic expected =
|
||||||
folly::dynamic::object("plugins", folly::dynamic::array());
|
folly::dynamic::object("plugins", folly::dynamic::array());
|
||||||
XCTAssertEqual(successes.size(), 1);
|
XCTAssertEqual(successes.size(), 1);
|
||||||
@@ -146,7 +146,7 @@ FlipperClient* objcClient;
|
|||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
|
|
||||||
socket->callbacks->onMessageReceived(messageInit, std::move(responder));
|
sock->callbacks->onMessageReceived(messageInit, std::move(responder));
|
||||||
XCTAssertTrue(pluginConnected);
|
XCTAssertTrue(pluginConnected);
|
||||||
[objcClient stop];
|
[objcClient stop];
|
||||||
XCTAssertFalse(pluginConnected);
|
XCTAssertFalse(pluginConnected);
|
||||||
@@ -172,19 +172,19 @@ FlipperClient* objcClient;
|
|||||||
"params", folly::dynamic::object("plugin", "cat"));
|
"params", folly::dynamic::object("plugin", "cat"));
|
||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
socket->callbacks->onMessageReceived(messageInit, std::move(responder));
|
sock->callbacks->onMessageReceived(messageInit, std::move(responder));
|
||||||
XCTAssertTrue(pluginConnected);
|
XCTAssertTrue(pluginConnected);
|
||||||
|
|
||||||
folly::dynamic messageDeInit = folly::dynamic::object("method", "deinit")(
|
folly::dynamic messageDeInit = folly::dynamic::object("method", "deinit")(
|
||||||
"params", folly::dynamic::object("plugin", "cat"));
|
"params", folly::dynamic::object("plugin", "cat"));
|
||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder2 =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder2 =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
socket->callbacks->onMessageReceived(messageDeInit, std::move(responder2));
|
sock->callbacks->onMessageReceived(messageDeInit, std::move(responder2));
|
||||||
XCTAssertFalse(pluginConnected);
|
XCTAssertFalse(pluginConnected);
|
||||||
|
|
||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder3 =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder3 =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
socket->callbacks->onMessageReceived(messageInit, std::move(responder3));
|
sock->callbacks->onMessageReceived(messageInit, std::move(responder3));
|
||||||
XCTAssertTrue(pluginConnected);
|
XCTAssertTrue(pluginConnected);
|
||||||
|
|
||||||
[objcClient stop];
|
[objcClient stop];
|
||||||
@@ -212,7 +212,7 @@ FlipperClient* objcClient;
|
|||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
XCTAssertNoThrow(
|
XCTAssertNoThrow(
|
||||||
socket->callbacks->onMessageReceived(messageInit, std::move(responder)));
|
sock->callbacks->onMessageReceived(messageInit, std::move(responder)));
|
||||||
XCTAssertTrue(pluginConnected);
|
XCTAssertTrue(pluginConnected);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,7 +235,7 @@ FlipperClient* objcClient;
|
|||||||
"params", folly::dynamic::object("plugin", "cat"));
|
"params", folly::dynamic::object("plugin", "cat"));
|
||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
socket->callbacks->onMessageReceived(messageInit, std::move(responder));
|
sock->callbacks->onMessageReceived(messageInit, std::move(responder));
|
||||||
|
|
||||||
XCTAssertNoThrow(
|
XCTAssertNoThrow(
|
||||||
[objcClient stop]); // Stopping client will call disconnect of the plugin
|
[objcClient stop]); // Stopping client will call disconnect of the plugin
|
||||||
@@ -264,7 +264,7 @@ FlipperClient* objcClient;
|
|||||||
"params", folly::dynamic::object("plugin", "PluginIdentifier"));
|
"params", folly::dynamic::object("plugin", "PluginIdentifier"));
|
||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder1 =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder1 =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
socket->callbacks->onMessageReceived(messageInit, std::move(responder1));
|
sock->callbacks->onMessageReceived(messageInit, std::move(responder1));
|
||||||
folly::dynamic message = folly::dynamic::object("id", 1)("method", "execute")(
|
folly::dynamic message = folly::dynamic::object("id", 1)("method", "execute")(
|
||||||
"params",
|
"params",
|
||||||
folly::dynamic::object("api", "PluginIdentifier")(
|
folly::dynamic::object("api", "PluginIdentifier")(
|
||||||
@@ -272,7 +272,7 @@ FlipperClient* objcClient;
|
|||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder2 =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder2 =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
|
|
||||||
socket->callbacks->onMessageReceived(message, std::move(responder2));
|
sock->callbacks->onMessageReceived(message, std::move(responder2));
|
||||||
|
|
||||||
XCTAssertTrue(isCalled);
|
XCTAssertTrue(isCalled);
|
||||||
}
|
}
|
||||||
@@ -300,7 +300,7 @@ FlipperClient* objcClient;
|
|||||||
"params", folly::dynamic::object("plugin", "PluginIdentifier"));
|
"params", folly::dynamic::object("plugin", "PluginIdentifier"));
|
||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
socket->callbacks->onMessageReceived(messageInit, std::move(responder));
|
sock->callbacks->onMessageReceived(messageInit, std::move(responder));
|
||||||
|
|
||||||
folly::dynamic message = folly::dynamic::object("id", 1)("method", "execute")(
|
folly::dynamic message = folly::dynamic::object("id", 1)("method", "execute")(
|
||||||
"params",
|
"params",
|
||||||
@@ -308,7 +308,7 @@ FlipperClient* objcClient;
|
|||||||
"method", "MethodName"));
|
"method", "MethodName"));
|
||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder2 =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder2 =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
socket->callbacks->onMessageReceived(message, std::move(responder2));
|
sock->callbacks->onMessageReceived(message, std::move(responder2));
|
||||||
|
|
||||||
XCTAssertTrue(isCalled);
|
XCTAssertTrue(isCalled);
|
||||||
}
|
}
|
||||||
@@ -338,7 +338,7 @@ FlipperClient* objcClient;
|
|||||||
"params", folly::dynamic::object("plugin", "PluginIdentifier"));
|
"params", folly::dynamic::object("plugin", "PluginIdentifier"));
|
||||||
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
std::unique_ptr<facebook::flipper::FlipperResponder> responder =
|
||||||
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
std::make_unique<facebook::flipper::FlipperResponderMock>();
|
||||||
socket->callbacks->onMessageReceived(messageInit, std::move(responder));
|
sock->callbacks->onMessageReceived(messageInit, std::move(responder));
|
||||||
|
|
||||||
folly::dynamic message = folly::dynamic::object("id", 1)("method", "execute")(
|
folly::dynamic message = folly::dynamic::object("id", 1)("method", "execute")(
|
||||||
"params",
|
"params",
|
||||||
@@ -351,7 +351,7 @@ FlipperClient* objcClient;
|
|||||||
&successes, &errors);
|
&successes, &errors);
|
||||||
|
|
||||||
XCTAssertNoThrow(
|
XCTAssertNoThrow(
|
||||||
socket->callbacks->onMessageReceived(message, std::move(responder2)));
|
sock->callbacks->onMessageReceived(message, std::move(responder2)));
|
||||||
XCTAssertTrue(isCalled);
|
XCTAssertTrue(isCalled);
|
||||||
XCTAssertEqual(successes.size(), 0);
|
XCTAssertEqual(successes.size(), 0);
|
||||||
XCTAssertEqual(errors.size(), 1);
|
XCTAssertEqual(errors.size(), 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user