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" | #include "SPIFFS.h" | ||||||
| 
 | 
 | ||||||
| void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ | 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); |     File root = fs.open(dirname); | ||||||
|     if(!root){ |     if(!root){ | ||||||
|         Serial.println("Failed to open directory"); |         Serial.println("- failed to open directory"); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|     if(!root.isDirectory()){ |     if(!root.isDirectory()){ | ||||||
|         Serial.println("Not a directory"); |         Serial.println(" - not a directory"); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -25,7 +25,7 @@ void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ | |||||||
|         } else { |         } else { | ||||||
|             Serial.print("  FILE: "); |             Serial.print("  FILE: "); | ||||||
|             Serial.print(file.name()); |             Serial.print(file.name()); | ||||||
|             Serial.print("  SIZE: "); |             Serial.print("\tSIZE: "); | ||||||
|             Serial.println(file.size()); |             Serial.println(file.size()); | ||||||
|         } |         } | ||||||
|         file = root.openNextFile(); |         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){ | 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); |     File file = fs.open(path); | ||||||
|     if(!file || file.isDirectory()){ |     if(!file || file.isDirectory()){ | ||||||
|         Serial.println("Failed to open file for reading"); |         Serial.println("- failed to open file for reading"); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     Serial.print("Read from file: "); |     Serial.println("- read from file:"); | ||||||
|     while(file.available()){ |     while(file.available()){ | ||||||
|         Serial.write(file.read()); |         Serial.write(file.read()); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void writeFile(fs::FS &fs, const char * path, const char * message){ | 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); |     File file = fs.open(path, FILE_WRITE); | ||||||
|     if(!file){ |     if(!file){ | ||||||
|         Serial.println("Failed to open file for writing"); |         Serial.println("- failed to open file for writing"); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|     if(file.print(message)){ |     if(file.print(message)){ | ||||||
|         Serial.println("File written"); |         Serial.println("- file written"); | ||||||
|     } else { |     } else { | ||||||
|         Serial.println("Write failed"); |         Serial.println("- frite failed"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void appendFile(fs::FS &fs, const char * path, const char * message){ | 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); |     File file = fs.open(path, FILE_APPEND); | ||||||
|     if(!file){ |     if(!file){ | ||||||
|         Serial.println("Failed to open file for appending"); |         Serial.println("- failed to open file for appending"); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|     if(file.print(message)){ |     if(file.print(message)){ | ||||||
|         Serial.println("Message appended"); |         Serial.println("- message appended"); | ||||||
|     } else { |     } else { | ||||||
|         Serial.println("Append failed"); |         Serial.println("- append failed"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void renameFile(fs::FS &fs, const char * path1, const char * path2){ | 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)) { |     if (fs.rename(path1, path2)) { | ||||||
|         Serial.println("File renamed"); |         Serial.println("- file renamed"); | ||||||
|     } else { |     } else { | ||||||
|         Serial.println("Rename failed"); |         Serial.println("- rename failed"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void deleteFile(fs::FS &fs, const char * path){ | 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)){ |     if(fs.remove(path)){ | ||||||
|         Serial.println("File deleted"); |         Serial.println("- file deleted"); | ||||||
|     } else { |     } else { | ||||||
|         Serial.println("Delete failed"); |         Serial.println("- delete failed"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void testFileIO(fs::FS &fs, const char * path){ | 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]; |     static uint8_t buf[512]; | ||||||
|     size_t len = 0; |     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 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()){ |     if(file && !file.isDirectory()){ | ||||||
|         len = file.size(); |         len = file.size(); | ||||||
|         size_t flen = len; |         size_t flen = len; | ||||||
|         start = millis(); |         start = millis(); | ||||||
|  |         Serial.print("- reading" ); | ||||||
|         while(len){ |         while(len){ | ||||||
|             size_t toRead = len; |             size_t toRead = len; | ||||||
|             if(toRead > 512){ |             if(toRead > 512){ | ||||||
|                 toRead = 512; |                 toRead = 512; | ||||||
|             } |             } | ||||||
|             file.read(buf, toRead); |             file.read(buf, toRead); | ||||||
|  |             if ((i++ & 0x001F) == 0x001F){ | ||||||
|  |               Serial.print("."); | ||||||
|  |             } | ||||||
|             len -= toRead; |             len -= toRead; | ||||||
|         } |         } | ||||||
|  |         Serial.println(""); | ||||||
|         end = millis() - start; |         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(); |         file.close(); | ||||||
|     } else { |     } 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(){ | void setup(){ | ||||||
| @ -146,12 +158,14 @@ void setup(){ | |||||||
|      |      | ||||||
|     listDir(SPIFFS, "/", 0); |     listDir(SPIFFS, "/", 0); | ||||||
|     writeFile(SPIFFS, "/hello.txt", "Hello "); |     writeFile(SPIFFS, "/hello.txt", "Hello "); | ||||||
|     appendFile(SPIFFS, "/hello.txt", "World!\n"); |     appendFile(SPIFFS, "/hello.txt", "World!\r\n"); | ||||||
|     readFile(SPIFFS, "/hello.txt"); |     readFile(SPIFFS, "/hello.txt"); | ||||||
|     deleteFile(SPIFFS, "/foo.txt"); |  | ||||||
|     renameFile(SPIFFS, "/hello.txt", "/foo.txt"); |     renameFile(SPIFFS, "/hello.txt", "/foo.txt"); | ||||||
|     readFile(SPIFFS, "/foo.txt"); |     readFile(SPIFFS, "/foo.txt"); | ||||||
|  |     deleteFile(SPIFFS, "/foo.txt"); | ||||||
|     testFileIO(SPIFFS, "/test.txt"); |     testFileIO(SPIFFS, "/test.txt"); | ||||||
|  |     deleteFile(SPIFFS, "/test.txt"); | ||||||
|  |     Serial.println( "Test complete" ); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void loop(){ | void loop(){ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user