MCPcopy Create free account
hub / github.com/SmingHub/Sming / testFSTR

Function testFSTR

samples/Basic_ProgMem/app/TestProgmem.cpp:85–159  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83}
84
85void testFSTR(Print& out)
86{
87 // Demonstrate direct reading of a flashstring
88 char buffer[1024];
89 auto len = demoFSTR1.readFlash(0, buffer, sizeof(buffer));
90 out.print("demoFSTR1.read(): ");
91 out.write(buffer, len);
92 out.println();
93
94 // Implicit conversion of FlashString to String; entire content (including nuls) loaded
95 out.print("> demoFSTR1 (print String): ");
96 out.print('"');
97 out.print(demoFSTR1);
98 out.println('"');
99
100 // Load the FlashString into a stack buffer
101 out.print("> demoFSTR1 (print char*): ");
102 LOAD_FSTR(test, demoFSTR1);
103 out.print('"');
104 out.print(test);
105 out.println('"');
106
107 out.print("> demoFSTR1 (write): ");
108 out.print('"');
109 out.write(test, demoFSTR1.length());
110 out.println('"');
111
112 // FlashString defined in another module
113 out.print("> externalFSTR1 (print): ");
114 out.print('"');
115 out.print(externalFSTR1);
116 out.println('"');
117
118 // Define a FlashString and load it into a stack buffer in one operation (non-reusable!)
119 out.print("> FSTR_ARRAY: ");
120 FSTR_ARRAY(fsarr, DEMO_TEST_TEXT);
121 out.print('"');
122 out.write(fsarr, sizeof(fsarr) - 1);
123 out.println('"');
124
125 // Example of array or custom data usage
126 out.print("> demoArray1 : ");
127 static constexpr const struct {
128 FSTR::ObjectBase object;
129 char data[5];
130 } demoArray1 PROGMEM = {{5}, {1, 2, 3, 4, 5}};
131 auto& arr = demoArray1.object.as<FSTR::Array<uint8_t>>();
132 out << arr << endl;
133
134 // Test equality operators
135#define TEST(_test) out.printf(_F("%s: %s\n"), (_test) ? _F("PASS") : _F("FAIL"), _F(#_test));
136 TEST(demoFSTR1 == demoFSTR2)
137 {
138 LOAD_PSTR(s, demoPSTR1);
139 TEST(demoFSTR1 != s)
140 }
141 TEST(String(demoFSTR1) == demoFSTR2)
142 TEST(demoFSTR1 == String(demoFSTR2))

Callers 1

testProgmemFunction · 0.85

Calls 5

printlnMethod · 0.80
StringClass · 0.50
printMethod · 0.45
writeMethod · 0.45
lengthMethod · 0.45

Tested by

no test coverage detected