mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
148 lines
2.8 KiB
C++
148 lines
2.8 KiB
C++
#include <ESP8266WiFi.h>
|
|
#include "FS.h"
|
|
|
|
|
|
void fail(const char* msg) {
|
|
Serial.println(msg);
|
|
while (true) {
|
|
yield();
|
|
}
|
|
}
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
Serial.setDebugOutput(true);
|
|
WiFi.mode(WIFI_OFF);
|
|
Serial.println("\n\nFS test\n");
|
|
|
|
{
|
|
if (!SPIFFS.format()) {
|
|
fail("format failed");
|
|
}
|
|
Dir root = SPIFFS.openDir("/");
|
|
int count = 0;
|
|
while (root.next()) {
|
|
++count;
|
|
}
|
|
if (count > 0) {
|
|
fail("some files left after format");
|
|
}
|
|
}
|
|
|
|
|
|
if (!SPIFFS.begin()) {
|
|
fail("SPIFFS init failed");
|
|
}
|
|
|
|
String text = "write test";
|
|
{
|
|
File out = SPIFFS.open("/tmp.txt", "w");
|
|
if (!out) {
|
|
fail("failed to open tmp.txt for writing");
|
|
}
|
|
out.print(text);
|
|
}
|
|
|
|
{
|
|
File in = SPIFFS.open("/tmp.txt", "r");
|
|
if (!in) {
|
|
fail("failed to open tmp.txt for reading");
|
|
}
|
|
Serial.printf("size=%d\r\n", in.size());
|
|
if (in.size() != text.length()) {
|
|
fail("invalid size of tmp.txt");
|
|
}
|
|
Serial.print("Reading data: ");
|
|
in.setTimeout(0);
|
|
String result = in.readString();
|
|
Serial.println(result);
|
|
if (result != text) {
|
|
fail("invalid data in tmp.txt");
|
|
}
|
|
}
|
|
|
|
{
|
|
for (int i = 0; i < 10; ++i) {
|
|
String name = "seq_";
|
|
name += i;
|
|
name += ".txt";
|
|
|
|
File out = SPIFFS.open(name, "w");
|
|
if (!out) {
|
|
fail("can't open seq_ file");
|
|
}
|
|
|
|
out.println(i);
|
|
}
|
|
}
|
|
{
|
|
Dir root = SPIFFS.openDir("/");
|
|
while (root.next()) {
|
|
String fileName = root.fileName();
|
|
File f = root.openFile("r");
|
|
Serial.printf("%s: %d\r\n", fileName.c_str(), f.size());
|
|
}
|
|
}
|
|
|
|
{
|
|
Dir root = SPIFFS.openDir("/");
|
|
while (root.next()) {
|
|
String fileName = root.fileName();
|
|
Serial.print("deleting ");
|
|
Serial.println(fileName);
|
|
if (!SPIFFS.remove(fileName)) {
|
|
fail("remove failed");
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
File tmp = SPIFFS.open("/tmp1.txt", "w");
|
|
tmp.println("rename test");
|
|
}
|
|
|
|
{
|
|
if (!SPIFFS.rename("/tmp1.txt", "/tmp2.txt")) {
|
|
fail("rename failed");
|
|
}
|
|
File tmp2 = SPIFFS.open("/tmp2.txt", "r");
|
|
if (!tmp2) {
|
|
fail("open tmp2 failed");
|
|
}
|
|
}
|
|
|
|
{
|
|
FSInfo info;
|
|
if (!SPIFFS.info(info)) {
|
|
fail("info failed");
|
|
}
|
|
Serial.printf("Total: %u\nUsed: %u\nBlock: %u\nPage: %u\nMax open files: %u\nMax path len: %u\n",
|
|
info.totalBytes,
|
|
info.usedBytes,
|
|
info.blockSize,
|
|
info.pageSize,
|
|
info.maxOpenFiles,
|
|
info.maxPathLength
|
|
);
|
|
}
|
|
|
|
{
|
|
if (!SPIFFS.format()) {
|
|
fail("format failed");
|
|
}
|
|
Dir root = SPIFFS.openDir("/");
|
|
int count = 0;
|
|
while (root.next()) {
|
|
++count;
|
|
}
|
|
if (count > 0) {
|
|
fail("some files left after format");
|
|
}
|
|
}
|
|
|
|
Serial.println("success");
|
|
}
|
|
|
|
void loop() {
|
|
}
|