From 7aa7c3f0ddb75b7e662d68a3dcfd6f96926533f2 Mon Sep 17 00:00:00 2001 From: Jason K Date: Sun, 4 Mar 2018 14:57:45 -0500 Subject: [PATCH] Add additional test detail (#1099) Update test to show more detail to help for checking for poor/inconsistent FLASH operation. --- .../examples/SPIFFS_Test/SPIFFS_Test.ino | 100 ++++++++++-------- 1 file changed, 57 insertions(+), 43 deletions(-) diff --git a/libraries/SPIFFS/examples/SPIFFS_Test/SPIFFS_Test.ino b/libraries/SPIFFS/examples/SPIFFS_Test/SPIFFS_Test.ino index f77f28e7..65b4859b 100644 --- a/libraries/SPIFFS/examples/SPIFFS_Test/SPIFFS_Test.ino +++ b/libraries/SPIFFS/examples/SPIFFS_Test/SPIFFS_Test.ino @@ -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; } @@ -25,7 +25,7 @@ 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(); @@ -33,108 +33,120 @@ void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ } 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"); + 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; - } - - 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(){ @@ -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(){