Add additional test detail (#1099)
Update test to show more detail to help for checking for poor/inconsistent FLASH operation.
This commit is contained in:
		
							parent
							
								
									0f9595e31e
								
							
						
					
					
						commit
						7aa7c3f0dd
					
				| @ -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(){ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user