MCPcopy Create free account
hub / github.com/FastLED/FastLED / FL_TEST_FILE

Function FL_TEST_FILE

tests/fl/stl/asio/test_tcp_socket.cpp:11–159  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9#include "test.h"
10
11FL_TEST_FILE(FL_FILEPATH) {
12
13using namespace fl::asio;
14using namespace fl::asio::ip;
15
16FL_TEST_CASE("tcp::socket - Default construction is closed") {
17 tcp::socket s;
18 FL_CHECK_FALSE(s.is_open());
19 FL_CHECK_EQ(s.native_handle(), -1);
20 FL_CHECK_FALSE(s.is_non_blocking());
21}
22
23FL_TEST_CASE("tcp::socket - Move construction") {
24 tcp::socket a;
25 a.assign(42);
26 FL_CHECK(a.is_open());
27 FL_CHECK_EQ(a.native_handle(), 42);
28
29 tcp::socket b(fl::move(a));
30 FL_CHECK(b.is_open());
31 FL_CHECK_EQ(b.native_handle(), 42);
32 FL_CHECK_FALSE(a.is_open());
33
34 // Prevent destructor from closing invalid fd
35 b.assign(-1);
36}
37
38FL_TEST_CASE("tcp::socket - Move assignment") {
39 tcp::socket a;
40 a.assign(43);
41 tcp::socket b;
42 b = fl::move(a);
43 FL_CHECK(b.is_open());
44 FL_CHECK_EQ(b.native_handle(), 43);
45 FL_CHECK_FALSE(a.is_open());
46
47 // Prevent destructor from closing invalid fd
48 b.assign(-1);
49}
50
51FL_TEST_CASE("tcp::socket - Close resets state") {
52 tcp::socket s;
53 s.assign(44);
54 FL_CHECK(s.is_open());
55 s.assign(-1);
56 FL_CHECK_FALSE(s.is_open());
57}
58
59FL_TEST_CASE("tcp::socket - Read on closed socket returns error") {
60 tcp::socket s;
61 fl::u8 buf[16];
62 error_code ec;
63 size_t n = s.read_some(fl::span<fl::u8>(buf, sizeof(buf)), ec);
64 FL_CHECK_EQ(n, 0u);
65 FL_CHECK(static_cast<bool>(ec));
66 FL_CHECK_EQ(ec.code, errc::operation_aborted);
67}
68

Callers

nothing calls this directly

Calls 15

endpointClass · 0.85
is_non_blockingMethod · 0.80
read_someMethod · 0.80
write_someMethod · 0.80
listenMethod · 0.80
sleep_forFunction · 0.50
is_openMethod · 0.45
native_handleMethod · 0.45
assignMethod · 0.45
connectMethod · 0.45
openMethod · 0.45
okMethod · 0.45

Tested by

no test coverage detected