Skip to content

Add additional SPIFFS test detail #1099

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 4, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 57 additions & 43 deletions libraries/SPIFFS/examples/SPIFFS_Test/SPIFFS_Test.ino
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
#include "SPIFFS.h"

void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
Serial.printf("Listing directory: %s\n", dirname);
Serial.printf("Listing directory: %s\r\n", dirname);

File root = fs.open(dirname);
if(!root){
Serial.println("Failed to open directory");
Serial.println("- failed to open directory");
return;
}
if(!root.isDirectory()){
Serial.println("Not a directory");
Serial.println(" - not a directory");
return;
}

Expand All @@ -25,116 +25,128 @@ void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
} else {
Serial.print(" FILE: ");
Serial.print(file.name());
Serial.print(" SIZE: ");
Serial.print("\tSIZE: ");
Serial.println(file.size());
}
file = root.openNextFile();
}
}

void readFile(fs::FS &fs, const char * path){
Serial.printf("Reading file: %s\n", path);
Serial.printf("Reading file: %s\r\n", path);

File file = fs.open(path);
if(!file || file.isDirectory()){
Serial.println("Failed to open file for reading");
Serial.println("- failed to open file for reading");
return;
}

Serial.print("Read from file: ");
Serial.println("- read from file:");
while(file.available()){
Serial.write(file.read());
}
}

void writeFile(fs::FS &fs, const char * path, const char * message){
Serial.printf("Writing file: %s\n", path);
Serial.printf("Writing file: %s\r\n", path);

File file = fs.open(path, FILE_WRITE);
if(!file){
Serial.println("Failed to open file for writing");
Serial.println("- failed to open file for writing");
return;
}
if(file.print(message)){
Serial.println("File written");
Serial.println("- file written");
} else {
Serial.println("Write failed");
Serial.println("- frite failed");
}
}

void appendFile(fs::FS &fs, const char * path, const char * message){
Serial.printf("Appending to file: %s\n", path);
Serial.printf("Appending to file: %s\r\n", path);

File file = fs.open(path, FILE_APPEND);
if(!file){
Serial.println("Failed to open file for appending");
Serial.println("- failed to open file for appending");
return;
}
if(file.print(message)){
Serial.println("Message appended");
Serial.println("- message appended");
} else {
Serial.println("Append failed");
Serial.println("- append failed");
}
}

void renameFile(fs::FS &fs, const char * path1, const char * path2){
Serial.printf("Renaming file %s to %s\n", path1, path2);
Serial.printf("Renaming file %s to %s\r\n", path1, path2);
if (fs.rename(path1, path2)) {
Serial.println("File renamed");
Serial.println("- file renamed");
} else {
Serial.println("Rename failed");
Serial.println("- rename failed");
}
}

void deleteFile(fs::FS &fs, const char * path){
Serial.printf("Deleting file: %s\n", path);
Serial.printf("Deleting file: %s\r\n", path);
if(fs.remove(path)){
Serial.println("File deleted");
Serial.println("- file deleted");
} else {
Serial.println("Delete failed");
Serial.println("- delete failed");
}
}

void testFileIO(fs::FS &fs, const char * path){
File file = fs.open(path);
Serial.printf("Testing file I/O with %s\r\n", path);

static uint8_t buf[512];
size_t len = 0;
File file = fs.open(path, FILE_WRITE);
if(!file){
Serial.println("- failed to open file for writing");
return;
}

size_t i;
Serial.print("- writing" );
uint32_t start = millis();
uint32_t end = start;
for(i=0; i<2048; i++){
if ((i & 0x001F) == 0x001F){
Serial.print(".");
}
file.write(buf, 512);
}
Serial.println("");
uint32_t end = millis() - start;
Serial.printf(" - %u bytes written in %u ms\r\n", 2048 * 512, end);
file.close();

file = fs.open(path);
start = millis();
end = start;
i = 0;
if(file && !file.isDirectory()){
len = file.size();
size_t flen = len;
start = millis();
Serial.print("- reading" );
while(len){
size_t toRead = len;
if(toRead > 512){
toRead = 512;
}
file.read(buf, toRead);
if ((i++ & 0x001F) == 0x001F){
Serial.print(".");
}
len -= toRead;
}
Serial.println("");
end = millis() - start;
Serial.printf("%u bytes read for %u ms\n", flen, end);
Serial.printf("- %u bytes read in %u ms\r\n", flen, end);
file.close();
} else {
Serial.println("Failed to open file for reading");
}


file = fs.open(path, FILE_WRITE);
if(!file){
Serial.println("Failed to open file for writing");
return;
Serial.println("- failed to open file for reading");
}

size_t i;
start = millis();
for(i=0; i<2048; i++){
file.write(buf, 512);
}
end = millis() - start;
Serial.printf("%u bytes written for %u ms\n", 2048 * 512, end);
file.close();
}

void setup(){
Expand All @@ -146,12 +158,14 @@ void setup(){

listDir(SPIFFS, "/", 0);
writeFile(SPIFFS, "/hello.txt", "Hello ");
appendFile(SPIFFS, "/hello.txt", "World!\n");
appendFile(SPIFFS, "/hello.txt", "World!\r\n");
readFile(SPIFFS, "/hello.txt");
deleteFile(SPIFFS, "/foo.txt");
renameFile(SPIFFS, "/hello.txt", "/foo.txt");
readFile(SPIFFS, "/foo.txt");
deleteFile(SPIFFS, "/foo.txt");
testFileIO(SPIFFS, "/test.txt");
deleteFile(SPIFFS, "/test.txt");
Serial.println( "Test complete" );
}

void loop(){
Expand Down