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

Function FL_TEST_FILE

tests/fl/net/http/stream_transport.cpp:7–362  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5#include <cstring> // ok include
6
7FL_TEST_FILE(FL_FILEPATH) {
8
9using namespace fl;
10using namespace fl::net::http;
11
12// Mock implementation for testing
13class MockStreamTransport : public HttpStreamTransport {
14public:
15 MockStreamTransport(const char* host, uint16_t port)
16 : HttpStreamTransport(host, port, 1000) // 1s heartbeat for testing
17 , mConnected(false)
18 , mCurrentTime(0) {
19 }
20
21 bool connect() override {
22 mConnected = true;
23 mConnection.onConnected(getCurrentTimeMs());
24 return true;
25 }
26
27 void disconnect() override {
28 mConnected = false;
29 mConnection.onDisconnected();
30 }
31
32 bool isConnected() const override {
33 return mConnected;
34 }
35
36 // Expose sendData for testing
37 int sendData(fl::span<const uint8_t> data) override {
38 mSentData.insert(mSentData.end(), data.begin(), data.end());
39 return static_cast<int>(data.size());
40 }
41
42 // Expose recvData for testing
43 int recvData(fl::span<uint8_t> buffer) override {
44 if (mRecvData.empty()) {
45 return 0; // No data available
46 }
47
48 size_t toCopy = (mRecvData.size() < buffer.size()) ? mRecvData.size() : buffer.size();
49 fl::memcpy(buffer.data(), mRecvData.data(), toCopy);
50 mRecvData.erase_range(mRecvData.begin(), toCopy);
51 return static_cast<int>(toCopy);
52 }
53
54 uint32_t getCurrentTimeMs() const override {
55 return mCurrentTime;
56 }
57
58 void setCurrentTime(uint32_t time) {
59 mCurrentTime = time;
60 }
61
62 void advanceTime(uint32_t delta) {
63 mCurrentTime += delta;
64 }

Callers

nothing calls this directly

Calls 15

getHeartbeatIntervalMethod · 0.80
readRequestMethod · 0.80
injectRecvChunkMethod · 0.80
writeResponseMethod · 0.80
getSentDataMethod · 0.80
clearSentDataMethod · 0.80
setOnConnectMethod · 0.80
setOnDisconnectMethod · 0.80
setHeartbeatIntervalMethod · 0.80
getTimeoutMethod · 0.80
injectRecvDataMethod · 0.80
isConnectedMethod · 0.45

Tested by

no test coverage detected