mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
Use wpi::span instead of wpi::ArrayRef across all libraries (#3414)
- Remove ArrayRef.h - Add SpanExtras.h for a couple of convenience functions
This commit is contained in:
@@ -12,7 +12,7 @@ class HttpWebSocketServerConnectionTest
|
||||
: public HttpWebSocketServerConnection<HttpWebSocketServerConnectionTest> {
|
||||
public:
|
||||
HttpWebSocketServerConnectionTest(std::shared_ptr<uv::Stream> stream,
|
||||
ArrayRef<std::string_view> protocols)
|
||||
span<const std::string_view> protocols)
|
||||
: HttpWebSocketServerConnection{stream, protocols} {}
|
||||
|
||||
void ProcessRequest() override { ++gotRequest; }
|
||||
|
||||
@@ -205,7 +205,7 @@ TEST_F(WebSocketClientTest, ProtocolReqNotResp) {
|
||||
|
||||
clientPipe->Connect(pipeName, [&] {
|
||||
auto ws = WebSocket::CreateClient(*clientPipe, "/test", pipeName,
|
||||
std::string_view{"myProtocol"});
|
||||
{{"myProtocol"}});
|
||||
ws->closed.connect([&](uint16_t code, std::string_view msg) {
|
||||
Finish();
|
||||
++gotClosed;
|
||||
@@ -254,7 +254,7 @@ TEST_P(WebSocketClientDataTest, SendBinary) {
|
||||
std::vector<uint8_t> data(GetParam(), 0x03u);
|
||||
setupWebSocket = [&] {
|
||||
ws->open.connect([&](std::string_view) {
|
||||
ws->SendBinary(uv::Buffer(data), [&](auto bufs, uv::Error) {
|
||||
ws->SendBinary({{data}}, [&](auto bufs, uv::Error) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
ASSERT_FALSE(bufs.empty());
|
||||
@@ -275,7 +275,7 @@ TEST_P(WebSocketClientDataTest, ReceiveBinary) {
|
||||
int gotCallback = 0;
|
||||
std::vector<uint8_t> data(GetParam(), 0x03u);
|
||||
setupWebSocket = [&] {
|
||||
ws->binary.connect([&](ArrayRef<uint8_t> inData, bool fin) {
|
||||
ws->binary.connect([&](auto inData, bool fin) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
ASSERT_TRUE(fin);
|
||||
@@ -284,9 +284,7 @@ TEST_P(WebSocketClientDataTest, ReceiveBinary) {
|
||||
});
|
||||
};
|
||||
auto message = BuildMessage(0x02, true, false, data);
|
||||
connected = [&] {
|
||||
conn->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
};
|
||||
connected = [&] { conn->Write({{message}}, [&](auto bufs, uv::Error) {}); };
|
||||
|
||||
loop->Run();
|
||||
|
||||
@@ -311,9 +309,7 @@ TEST_P(WebSocketClientDataTest, ReceiveMasked) {
|
||||
});
|
||||
};
|
||||
auto message = BuildMessage(0x01, true, true, data);
|
||||
connected = [&] {
|
||||
conn->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
};
|
||||
connected = [&] { conn->Write({{message}}, [&](auto bufs, uv::Error) {}); };
|
||||
|
||||
loop->Run();
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ TEST_F(WebSocketIntegrationTest, ServerSendBinary) {
|
||||
auto conn = serverPipe->Accept();
|
||||
auto server = WebSocketServer::Create(*conn);
|
||||
server->connected.connect([&](std::string_view, WebSocket& ws) {
|
||||
ws.SendBinary(uv::Buffer{"\x03\x04", 2}, [&](auto, uv::Error) {});
|
||||
ws.SendBinary({uv::Buffer{"\x03\x04", 2}}, [&](auto, uv::Error) {});
|
||||
ws.Close();
|
||||
});
|
||||
});
|
||||
@@ -100,7 +100,7 @@ TEST_F(WebSocketIntegrationTest, ServerSendBinary) {
|
||||
FAIL() << "Code: " << code << " Reason: " << reason;
|
||||
}
|
||||
});
|
||||
ws->binary.connect([&](ArrayRef<uint8_t> data, bool) {
|
||||
ws->binary.connect([&](auto data, bool) {
|
||||
++gotData;
|
||||
std::vector<uint8_t> recvData{data.begin(), data.end()};
|
||||
std::vector<uint8_t> expectData{0x03, 0x04};
|
||||
@@ -136,7 +136,7 @@ TEST_F(WebSocketIntegrationTest, ClientSendText) {
|
||||
}
|
||||
});
|
||||
ws->open.connect([&, s = ws.get()](std::string_view) {
|
||||
s->SendText(uv::Buffer{"hello"}, [&](auto, uv::Error) {});
|
||||
s->SendText({{"hello"}}, [&](auto, uv::Error) {});
|
||||
s->Close();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -126,7 +126,7 @@ TEST_F(WebSocketServerTest, CloseBasic) {
|
||||
// need to respond with close for server to finish shutdown
|
||||
auto message = BuildMessage(0x08, true, true, {});
|
||||
handleData = [&](std::string_view) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
};
|
||||
|
||||
loop->Run();
|
||||
@@ -149,7 +149,7 @@ TEST_F(WebSocketServerTest, CloseCode) {
|
||||
const uint8_t contents[] = {0x03u, 0xe8u};
|
||||
auto message = BuildMessage(0x08, true, true, contents);
|
||||
handleData = [&](std::string_view) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
};
|
||||
|
||||
loop->Run();
|
||||
@@ -173,7 +173,7 @@ TEST_F(WebSocketServerTest, CloseReason) {
|
||||
const uint8_t contents[] = {0x03u, 0xe8u, 'h', 'a', 'n', 'g', 'u', 'p'};
|
||||
auto message = BuildMessage(0x08, true, true, contents);
|
||||
handleData = [&](std::string_view) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
};
|
||||
|
||||
loop->Run();
|
||||
@@ -197,7 +197,7 @@ TEST_F(WebSocketServerTest, ReceiveCloseBasic) {
|
||||
};
|
||||
auto message = BuildMessage(0x08, true, true, {});
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -219,7 +219,7 @@ TEST_F(WebSocketServerTest, ReceiveCloseCode) {
|
||||
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) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -242,7 +242,7 @@ TEST_F(WebSocketServerTest, ReceiveCloseReason) {
|
||||
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) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -278,7 +278,7 @@ TEST_P(WebSocketServerBadOpcodeTest, Receive) {
|
||||
};
|
||||
auto message = BuildMessage(GetParam(), true, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -309,7 +309,7 @@ TEST_P(WebSocketServerControlFrameTest, ReceiveFragment) {
|
||||
};
|
||||
auto message = BuildMessage(GetParam(), false, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -336,7 +336,7 @@ TEST_F(WebSocketServerTest, ReceiveFragmentInvalidNoPrevFrame) {
|
||||
};
|
||||
auto message = BuildMessage(0x00, false, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -357,8 +357,7 @@ TEST_F(WebSocketServerTest, ReceiveFragmentInvalidNoPrevFragment) {
|
||||
auto message = BuildMessage(0x01, true, true, {}); // FIN=1
|
||||
auto message2 = BuildMessage(0x00, false, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write({uv::Buffer(message), uv::Buffer(message2)},
|
||||
[&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}, {message2}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -379,9 +378,8 @@ TEST_F(WebSocketServerTest, ReceiveFragmentInvalidIncomplete) {
|
||||
auto message2 = BuildMessage(0x00, false, true, {});
|
||||
auto message3 = BuildMessage(0x01, true, true, {});
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(
|
||||
{uv::Buffer(message), uv::Buffer(message2), uv::Buffer(message3)},
|
||||
[&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}, {message2}, {message3}},
|
||||
[&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -401,7 +399,7 @@ TEST_F(WebSocketServerTest, ReceiveFragment) {
|
||||
combData.insert(combData.end(), data3.begin(), data3.end());
|
||||
|
||||
setupWebSocket = [&] {
|
||||
ws->binary.connect([&](ArrayRef<uint8_t> inData, bool fin) {
|
||||
ws->binary.connect([&](auto inData, bool fin) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
ASSERT_TRUE(fin);
|
||||
@@ -414,9 +412,8 @@ TEST_F(WebSocketServerTest, ReceiveFragment) {
|
||||
auto message2 = BuildMessage(0x00, false, true, data2);
|
||||
auto message3 = BuildMessage(0x00, true, true, data3);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(
|
||||
{uv::Buffer(message), uv::Buffer(message2), uv::Buffer(message3)},
|
||||
[&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}, {message2}, {message3}},
|
||||
[&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -437,7 +434,7 @@ TEST_F(WebSocketServerTest, ReceiveFragmentSeparate) {
|
||||
|
||||
setupWebSocket = [&] {
|
||||
ws->SetCombineFragments(false);
|
||||
ws->binary.connect([&](ArrayRef<uint8_t> inData, bool fin) {
|
||||
ws->binary.connect([&](auto inData, bool fin) {
|
||||
std::vector<uint8_t> recvData{inData.begin(), inData.end()};
|
||||
switch (++gotCallback) {
|
||||
case 1:
|
||||
@@ -464,9 +461,8 @@ TEST_F(WebSocketServerTest, ReceiveFragmentSeparate) {
|
||||
auto message2 = BuildMessage(0x00, false, true, data2);
|
||||
auto message3 = BuildMessage(0x00, true, true, data3);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(
|
||||
{uv::Buffer(message), uv::Buffer(message2), uv::Buffer(message3)},
|
||||
[&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}, {message2}, {message3}},
|
||||
[&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -495,7 +491,7 @@ TEST_F(WebSocketServerTest, ReceiveTooLarge) {
|
||||
};
|
||||
auto message = BuildMessage(0x01, true, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -521,8 +517,7 @@ TEST_F(WebSocketServerTest, ReceiveTooLargeFragmented) {
|
||||
auto message = BuildMessage(0x01, false, true, data);
|
||||
auto message2 = BuildMessage(0x00, true, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write({uv::Buffer(message), uv::Buffer(message2)},
|
||||
[&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}, {message2}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -545,7 +540,7 @@ TEST_P(WebSocketServerDataTest, SendText) {
|
||||
std::vector<uint8_t> data(GetParam(), ' ');
|
||||
setupWebSocket = [&] {
|
||||
ws->open.connect([&](std::string_view) {
|
||||
ws->SendText(uv::Buffer(data), [&](auto bufs, uv::Error) {
|
||||
ws->SendText({{data}}, [&](auto bufs, uv::Error) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
ASSERT_FALSE(bufs.empty());
|
||||
@@ -566,7 +561,7 @@ TEST_P(WebSocketServerDataTest, SendBinary) {
|
||||
std::vector<uint8_t> data(GetParam(), 0x03u);
|
||||
setupWebSocket = [&] {
|
||||
ws->open.connect([&](std::string_view) {
|
||||
ws->SendBinary(uv::Buffer(data), [&](auto bufs, uv::Error) {
|
||||
ws->SendBinary({{data}}, [&](auto bufs, uv::Error) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
ASSERT_FALSE(bufs.empty());
|
||||
@@ -587,7 +582,7 @@ TEST_P(WebSocketServerDataTest, SendPing) {
|
||||
std::vector<uint8_t> data(GetParam(), 0x03u);
|
||||
setupWebSocket = [&] {
|
||||
ws->open.connect([&](std::string_view) {
|
||||
ws->SendPing(uv::Buffer(data), [&](auto bufs, uv::Error) {
|
||||
ws->SendPing({{data}}, [&](auto bufs, uv::Error) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
ASSERT_FALSE(bufs.empty());
|
||||
@@ -608,7 +603,7 @@ TEST_P(WebSocketServerDataTest, SendPong) {
|
||||
std::vector<uint8_t> data(GetParam(), 0x03u);
|
||||
setupWebSocket = [&] {
|
||||
ws->open.connect([&](std::string_view) {
|
||||
ws->SendPong(uv::Buffer(data), [&](auto bufs, uv::Error) {
|
||||
ws->SendPong({{data}}, [&](auto bufs, uv::Error) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
ASSERT_FALSE(bufs.empty());
|
||||
@@ -639,7 +634,7 @@ TEST_P(WebSocketServerDataTest, ReceiveText) {
|
||||
};
|
||||
auto message = BuildMessage(0x01, true, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -651,7 +646,7 @@ TEST_P(WebSocketServerDataTest, ReceiveBinary) {
|
||||
int gotCallback = 0;
|
||||
std::vector<uint8_t> data(GetParam(), 0x03u);
|
||||
setupWebSocket = [&] {
|
||||
ws->binary.connect([&](ArrayRef<uint8_t> inData, bool fin) {
|
||||
ws->binary.connect([&](auto inData, bool fin) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
ASSERT_TRUE(fin);
|
||||
@@ -661,7 +656,7 @@ TEST_P(WebSocketServerDataTest, ReceiveBinary) {
|
||||
};
|
||||
auto message = BuildMessage(0x02, true, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -673,7 +668,7 @@ TEST_P(WebSocketServerDataTest, ReceivePing) {
|
||||
int gotCallback = 0;
|
||||
std::vector<uint8_t> data(GetParam(), 0x03u);
|
||||
setupWebSocket = [&] {
|
||||
ws->ping.connect([&](ArrayRef<uint8_t> inData) {
|
||||
ws->ping.connect([&](auto inData) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
std::vector<uint8_t> recvData{inData.begin(), inData.end()};
|
||||
@@ -682,7 +677,7 @@ TEST_P(WebSocketServerDataTest, ReceivePing) {
|
||||
};
|
||||
auto message = BuildMessage(0x09, true, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -694,7 +689,7 @@ TEST_P(WebSocketServerDataTest, ReceivePong) {
|
||||
int gotCallback = 0;
|
||||
std::vector<uint8_t> data(GetParam(), 0x03u);
|
||||
setupWebSocket = [&] {
|
||||
ws->pong.connect([&](ArrayRef<uint8_t> inData) {
|
||||
ws->pong.connect([&](auto inData) {
|
||||
++gotCallback;
|
||||
ws->Terminate();
|
||||
std::vector<uint8_t> recvData{inData.begin(), inData.end()};
|
||||
@@ -703,7 +698,7 @@ TEST_P(WebSocketServerDataTest, ReceivePong) {
|
||||
};
|
||||
auto message = BuildMessage(0x0a, true, true, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
@@ -730,7 +725,7 @@ TEST_P(WebSocketServerDataTest, ReceiveUnmasked) {
|
||||
};
|
||||
auto message = BuildMessage(0x01, true, false, data);
|
||||
resp.headersComplete.connect([&](bool) {
|
||||
clientPipe->Write(uv::Buffer(message), [&](auto bufs, uv::Error) {});
|
||||
clientPipe->Write({{message}}, [&](auto bufs, uv::Error) {});
|
||||
});
|
||||
|
||||
loop->Run();
|
||||
|
||||
@@ -48,7 +48,7 @@ std::vector<uint8_t> WebSocketTest::BuildHeader(uint8_t opcode, bool fin,
|
||||
|
||||
std::vector<uint8_t> WebSocketTest::BuildMessage(uint8_t opcode, bool fin,
|
||||
bool masking,
|
||||
ArrayRef<uint8_t> data) {
|
||||
span<const uint8_t> data) {
|
||||
auto finalData = BuildHeader(opcode, fin, masking, data.size());
|
||||
size_t headerSize = finalData.size();
|
||||
finalData.insert(finalData.end(), data.begin(), data.end());
|
||||
@@ -68,7 +68,7 @@ std::vector<uint8_t> WebSocketTest::BuildMessage(uint8_t opcode, bool fin,
|
||||
|
||||
// If the message is masked, changes the mask to match the mask set by
|
||||
// BuildHeader() by unmasking and remasking.
|
||||
void WebSocketTest::AdjustMasking(MutableArrayRef<uint8_t> message) {
|
||||
void WebSocketTest::AdjustMasking(span<uint8_t> message) {
|
||||
if (message.size() < 2) {
|
||||
return;
|
||||
}
|
||||
@@ -91,7 +91,7 @@ void WebSocketTest::AdjustMasking(MutableArrayRef<uint8_t> message) {
|
||||
message[maskPos + 2] = testMask[2];
|
||||
message[maskPos + 3] = testMask[3];
|
||||
int n = 0;
|
||||
for (auto& ch : message.slice(maskPos + 4)) {
|
||||
for (auto& ch : message.subspan(maskPos + 4)) {
|
||||
ch ^= mask[n] ^ testMask[n];
|
||||
if (++n >= 4) {
|
||||
n = 0;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "wpi/ArrayRef.h"
|
||||
#include "wpi/span.h"
|
||||
#include "wpi/uv/Loop.h"
|
||||
#include "wpi/uv/Pipe.h"
|
||||
#include "wpi/uv/Timer.h"
|
||||
@@ -58,8 +58,8 @@ class WebSocketTest : public ::testing::Test {
|
||||
bool masking, uint64_t len);
|
||||
static std::vector<uint8_t> BuildMessage(uint8_t opcode, bool fin,
|
||||
bool masking,
|
||||
ArrayRef<uint8_t> data);
|
||||
static void AdjustMasking(MutableArrayRef<uint8_t> message);
|
||||
span<const uint8_t> data);
|
||||
static void AdjustMasking(span<uint8_t> message);
|
||||
static const uint8_t testMask[4];
|
||||
|
||||
std::shared_ptr<uv::Loop> loop;
|
||||
|
||||
@@ -200,7 +200,7 @@ TEST(JsonReadmeTest, OtherContainer)
|
||||
{
|
||||
std::vector<int> c_vector {1, 2, 3, 4};
|
||||
json j_vec(c_vector);
|
||||
json j_vec2(wpi::makeArrayRef(c_vector));
|
||||
json j_vec2(wpi::span<const int>(c_vector.data(), c_vector.size()));
|
||||
// [1, 2, 3, 4]
|
||||
|
||||
std::deque<float> c_deque {1.2f, 2.3f, 3.4f, 5.6f};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#if __has_include(<span>)
|
||||
#include <span>
|
||||
#endif
|
||||
#include "wpi/ArrayRef.h"
|
||||
#include "wpi/span.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
@@ -9,17 +9,13 @@ void func1(wpi::span<const int> x) {}
|
||||
#ifdef __cpp_lib_span
|
||||
void func2(std::span<const int> x) {}
|
||||
#endif
|
||||
void func3(wpi::ArrayRef<int> x) {}
|
||||
|
||||
void func4(wpi::span<int> x) {}
|
||||
#ifdef __cpp_lib_span
|
||||
void func5(std::span<int> x) {}
|
||||
#endif
|
||||
void func6(wpi::MutableArrayRef<int> x) {}
|
||||
|
||||
TEST(Span, ConvertArrayRefStdSpan) {
|
||||
func1(wpi::ArrayRef<int>{});
|
||||
func1(wpi::MutableArrayRef<int>{});
|
||||
TEST(Span, ConvertStdSpan) {
|
||||
func1(wpi::span<const int>{});
|
||||
func1(wpi::span<int>{});
|
||||
#ifdef __cpp_lib_span
|
||||
@@ -28,25 +24,12 @@ TEST(Span, ConvertArrayRefStdSpan) {
|
||||
#endif
|
||||
|
||||
#ifdef __cpp_lib_span
|
||||
func2(wpi::ArrayRef<int>{});
|
||||
func2(wpi::MutableArrayRef<int>{});
|
||||
func2(wpi::span<const int>{});
|
||||
func2(wpi::span<int>{});
|
||||
func2(std::span<const int>{});
|
||||
func2(std::span<int>{});
|
||||
#endif
|
||||
|
||||
func3(wpi::ArrayRef<int>{});
|
||||
func3(wpi::MutableArrayRef<int>{});
|
||||
func3(wpi::span<const int>{});
|
||||
func3(wpi::span<int>{});
|
||||
#ifdef __cpp_lib_span
|
||||
func3(std::span<const int>{});
|
||||
func3(std::span<int>{});
|
||||
#endif
|
||||
|
||||
//func4(wpi::ArrayRef<int>{});
|
||||
func4(wpi::MutableArrayRef<int>{});
|
||||
//func4(wpi::span<const int>{});
|
||||
func4(wpi::span<int>{});
|
||||
#ifdef __cpp_lib_span
|
||||
@@ -55,20 +38,9 @@ TEST(Span, ConvertArrayRefStdSpan) {
|
||||
#endif
|
||||
|
||||
#ifdef __cpp_lib_span
|
||||
//func5(wpi::ArrayRef<int>{});
|
||||
func5(wpi::MutableArrayRef<int>{});
|
||||
//func5(wpi::span<const int>{});
|
||||
func5(wpi::span<int>{});
|
||||
//func5(std::span<const int>{});
|
||||
func5(std::span<int>{});
|
||||
#endif
|
||||
|
||||
//func6(wpi::ArrayRef<int>{});
|
||||
func6(wpi::MutableArrayRef<int>{});
|
||||
//func6(wpi::span<const int>{});
|
||||
func6(wpi::span<int>{});
|
||||
#ifdef __cpp_lib_span
|
||||
//func6(std::span<const int>{});
|
||||
func6(std::span<int>{});
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ TEST(UvSimpleBufferPool, ReleaseReuse) {
|
||||
auto buf1copy = buf1;
|
||||
auto origSize = buf1.len;
|
||||
buf1.len = 8;
|
||||
pool.Release(buf1);
|
||||
pool.Release({&buf1, 1});
|
||||
ASSERT_EQ(buf1.base, nullptr);
|
||||
auto buf2 = pool.Allocate();
|
||||
ASSERT_EQ(buf1copy.base, buf2.base);
|
||||
@@ -36,7 +36,7 @@ TEST(UvSimpleBufferPool, ReleaseReuse) {
|
||||
TEST(UvSimpleBufferPool, ClearRemaining) {
|
||||
SimpleBufferPool<4> pool;
|
||||
auto buf1 = pool.Allocate();
|
||||
pool.Release(buf1);
|
||||
pool.Release({&buf1, 1});
|
||||
ASSERT_EQ(pool.Remaining(), 1u);
|
||||
pool.Clear();
|
||||
ASSERT_EQ(pool.Remaining(), 0u);
|
||||
|
||||
Reference in New Issue
Block a user