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

Function FL_TEST_FILE

tests/fl/remote/rpc/base64.hpp:4–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2#include "fl/remote/rpc/base64.h"
3
4FL_TEST_FILE(FL_FILEPATH) {
5
6FL_TEST_CASE("base64 encode/decode roundtrip") {
7 FL_SUBCASE("empty data") {
8 fl::vector<fl::u8> empty;
9 fl::string encoded = fl::base64_encode(empty);
10 FL_CHECK(encoded.empty());
11
12 fl::vector<fl::u8> decoded = fl::base64_decode(encoded);
13 FL_CHECK(decoded.empty());
14 }
15
16 FL_SUBCASE("single byte") {
17 fl::vector<fl::u8> data = {0x41}; // 'A'
18 fl::string encoded = fl::base64_encode(data);
19 FL_CHECK_EQ(encoded, fl::string("QQ=="));
20
21 fl::vector<fl::u8> decoded = fl::base64_decode(encoded);
22 FL_REQUIRE(decoded.size() == 1);
23 FL_CHECK_EQ(decoded[0], 0x41);
24 }
25
26 FL_SUBCASE("two bytes") {
27 fl::vector<fl::u8> data = {0x41, 0x42}; // 'AB'
28 fl::string encoded = fl::base64_encode(data);
29 FL_CHECK_EQ(encoded, fl::string("QUI="));
30
31 fl::vector<fl::u8> decoded = fl::base64_decode(encoded);
32 FL_REQUIRE(decoded.size() == 2);
33 FL_CHECK_EQ(decoded[0], 0x41);
34 FL_CHECK_EQ(decoded[1], 0x42);
35 }
36
37 FL_SUBCASE("three bytes - no padding") {
38 fl::vector<fl::u8> data = {0x41, 0x42, 0x43}; // 'ABC'
39 fl::string encoded = fl::base64_encode(data);
40 FL_CHECK_EQ(encoded, fl::string("QUJD"));
41
42 fl::vector<fl::u8> decoded = fl::base64_decode(encoded);
43 FL_REQUIRE(decoded.size() == 3);
44 FL_CHECK_EQ(decoded[0], 0x41);
45 FL_CHECK_EQ(decoded[1], 0x42);
46 FL_CHECK_EQ(decoded[2], 0x43);
47 }
48
49 FL_SUBCASE("known value - Hello World") {
50 const fl::u8 hello[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'};
51 fl::span<const fl::u8> data(hello, sizeof(hello));
52 fl::string encoded = fl::base64_encode(data);
53 FL_CHECK_EQ(encoded, fl::string("SGVsbG8gV29ybGQ="));
54
55 fl::vector<fl::u8> decoded = fl::base64_decode(encoded);
56 FL_REQUIRE(decoded.size() == sizeof(hello));
57 for (fl::size i = 0; i < sizeof(hello); i++) {
58 FL_CHECK_EQ(decoded[i], hello[i]);
59 }
60 }
61

Callers

nothing calls this directly

Calls 6

base64_encodeFunction · 0.85
base64_decodeFunction · 0.85
stringClass · 0.50
emptyMethod · 0.45
sizeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected