diff --git a/cores/esp8266/FS.h b/cores/esp8266/FS.h index 12792d7c33..7ee12d73fa 100644 --- a/cores/esp8266/FS.h +++ b/cores/esp8266/FS.h @@ -54,6 +54,11 @@ class File : public Stream // Print methods: size_t write(uint8_t) override; size_t write(const uint8_t *buf, size_t size) override; + size_t write(int8_t t) { return write((uint8_t)t); } + size_t write(int16_t t) { return write((uint8_t)(t & 0xff)); } + size_t write(int32_t t) { return write((uint8_t)(t & 0xff)); } + size_t write(uint16_t t) { return write((uint8_t)(t & 0xff)); } + size_t write(uint32_t t) { return write((uint8_t)(t & 0xff)); } // Stream methods: int available() override; diff --git a/tests/host/fs/test_fs.cpp b/tests/host/fs/test_fs.cpp index 5c39d3d582..322f057d9e 100644 --- a/tests/host/fs/test_fs.cpp +++ b/tests/host/fs/test_fs.cpp @@ -350,4 +350,12 @@ TEST_CASE("Multisplendored File::writes", "[fs]") f.write((const uint8_t*)&bigone, 4); f.close(); REQUIRE(readFileSD("/file.txt") == "aAbbcctheendxyz@@@@"); + File g = SD.open("/file.txt", FILE_WRITE); + g.write(0); + g.close(); + g = SD.open("/file.txt", FILE_READ); + uint8_t u = 0x66; + g.read(&u, 1); + g.close(); + REQUIRE(u == 0); }