#include #include BS_ENV_DECLARE(); void setup() { Serial.begin(115200); BS_RUN(Serial); } TEST_CASE("Print::printf works for any reasonable output length", "[Print]") { auto test_printf = [](size_t size) { StreamString str; auto buf = new char[size + 1]; for (int i = 0; i < size; ++i) { buf[i] = 'a'; } buf[size] = 0; str.printf("%s%8d", buf, 56789102); delete[] buf; CHECK(str.length() == size + 8); CHECK(str.substring(size) == "56789102"); }; auto before = ESP.getFreeHeap(); test_printf(1); test_printf(10); test_printf(100); test_printf(1000); test_printf(10000); auto after = ESP.getFreeHeap(); CHECK(before == after); } void loop() {}