Remove wpi::ArrayRef std::initializer_list constructor (#1745)

This can be dangerous as it refers to a temporary, and GCC 9.0 warns about
its use.  Instead add std::initializer_list overloads to common places it
was used in an initializer_list sense.
This commit is contained in:
Peter Johnson
2019-06-29 23:54:02 -07:00
committed by GitHub
parent 9e19b29c31
commit 60dce66a4f
17 changed files with 482 additions and 59 deletions

View File

@@ -135,9 +135,8 @@ TEST_F(WebSocketClientTest, ProtocolGood) {
mockProtocol = "myProtocol";
clientPipe->Connect(pipeName, [&] {
auto ws = WebSocket::CreateClient(
*clientPipe, "/test", pipeName,
ArrayRef<StringRef>{"myProtocol", "myProtocol2"});
auto ws = WebSocket::CreateClient(*clientPipe, "/test", pipeName,
{"myProtocol", "myProtocol2"});
ws->closed.connect([&](uint16_t code, StringRef msg) {
Finish();
if (code != 1005 && code != 1006)

View File

@@ -141,14 +141,15 @@ TEST_F(WebSocketServerTest, CloseCode) {
});
};
// need to respond with close for server to finish shutdown
auto message = BuildMessage(0x08, true, true, {0x03u, 0xe8u});
const uint8_t contents[] = {0x03u, 0xe8u};
auto message = BuildMessage(0x08, true, true, contents);
handleData = [&](StringRef) {
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
};
loop->Run();
auto expectData = BuildMessage(0x08, true, false, {0x03u, 0xe8u});
auto expectData = BuildMessage(0x08, true, false, contents);
ASSERT_EQ(wireData, expectData);
ASSERT_EQ(gotClosed, 1);
}
@@ -164,16 +165,15 @@ TEST_F(WebSocketServerTest, CloseReason) {
});
};
// need to respond with close for server to finish shutdown
auto message = BuildMessage(0x08, true, true,
{0x03u, 0xe8u, 'h', 'a', 'n', 'g', 'u', 'p'});
const uint8_t contents[] = {0x03u, 0xe8u, 'h', 'a', 'n', 'g', 'u', 'p'};
auto message = BuildMessage(0x08, true, true, contents);
handleData = [&](StringRef) {
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
};
loop->Run();
auto expectData = BuildMessage(0x08, true, false,
{0x03u, 0xe8u, 'h', 'a', 'n', 'g', 'u', 'p'});
auto expectData = BuildMessage(0x08, true, false, contents);
ASSERT_EQ(wireData, expectData);
ASSERT_EQ(gotClosed, 1);
}
@@ -211,7 +211,8 @@ TEST_F(WebSocketServerTest, ReceiveCloseCode) {
ASSERT_EQ(code, 1000) << "reason: " << reason;
});
};
auto message = BuildMessage(0x08, true, true, {0x03u, 0xe8u});
const uint8_t contents[] = {0x03u, 0xe8u};
auto message = BuildMessage(0x08, true, true, contents);
resp.headersComplete.connect([&](bool) {
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
});
@@ -219,7 +220,7 @@ TEST_F(WebSocketServerTest, ReceiveCloseCode) {
loop->Run();
// the endpoint should echo the message
auto expectData = BuildMessage(0x08, true, false, {0x03u, 0xe8u});
auto expectData = BuildMessage(0x08, true, false, contents);
ASSERT_EQ(wireData, expectData);
ASSERT_EQ(gotClosed, 1);
}
@@ -233,8 +234,8 @@ TEST_F(WebSocketServerTest, ReceiveCloseReason) {
ASSERT_EQ(reason, "hangup");
});
};
auto message = BuildMessage(0x08, true, true,
{0x03u, 0xe8u, 'h', 'a', 'n', 'g', 'u', 'p'});
const uint8_t contents[] = {0x03u, 0xe8u, 'h', 'a', 'n', 'g', 'u', 'p'};
auto message = BuildMessage(0x08, true, true, contents);
resp.headersComplete.connect([&](bool) {
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
});
@@ -242,8 +243,7 @@ TEST_F(WebSocketServerTest, ReceiveCloseReason) {
loop->Run();
// the endpoint should echo the message
auto expectData = BuildMessage(0x08, true, false,
{0x03u, 0xe8u, 'h', 'a', 'n', 'g', 'u', 'p'});
auto expectData = BuildMessage(0x08, true, false, contents);
ASSERT_EQ(wireData, expectData);
ASSERT_EQ(gotClosed, 1);
}