mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 00:32:38 +01:00 
			
		
		
		
	Renamed test_format -> test_superblocks, tweaked superblock tests
With the superblock expansion stuff, the test_format tests have grown to test more advanced superblock-related features. This is fine but deserves a rename so it's more clear. Also fixed a typo that meant tests never ran with block cycles.
This commit is contained in:
		| @@ -27,41 +27,55 @@ code = ''' | |||||||
| ''' | ''' | ||||||
| 
 | 
 | ||||||
| [[case]] # expanding superblock | [[case]] # expanding superblock | ||||||
| define.BLOCK_CYCLES = [32, 33, 1] | define.LFS_BLOCK_CYCLES = [32, 33, 1] | ||||||
| define.N = [10, 100, 1000] | define.N = [10, 100, 1000] | ||||||
| code = ''' | code = ''' | ||||||
|     lfs_format(&lfs, &cfg) => 0; |     lfs_format(&lfs, &cfg) => 0; | ||||||
|     lfs_mount(&lfs, &cfg) => 0; |     lfs_mount(&lfs, &cfg) => 0; | ||||||
|     for (int i = 0; i < N; i++) { |     for (int i = 0; i < N; i++) { | ||||||
|         lfs_mkdir(&lfs, "dummy") => 0; |         lfs_file_open(&lfs, &file, "dummy", | ||||||
|  |                 LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0; | ||||||
|  |         lfs_file_close(&lfs, &file) => 0; | ||||||
|         lfs_stat(&lfs, "dummy", &info) => 0; |         lfs_stat(&lfs, "dummy", &info) => 0; | ||||||
|         assert(strcmp(info.name, "dummy") == 0); |         assert(strcmp(info.name, "dummy") == 0); | ||||||
|  |         assert(info.type == LFS_TYPE_REG); | ||||||
|         lfs_remove(&lfs, "dummy") => 0; |         lfs_remove(&lfs, "dummy") => 0; | ||||||
|     } |     } | ||||||
|     lfs_unmount(&lfs) => 0; |     lfs_unmount(&lfs) => 0; | ||||||
| 
 | 
 | ||||||
|     // one last check after power-cycle |     // one last check after power-cycle | ||||||
|     lfs_mount(&lfs, &cfg) => 0; |     lfs_mount(&lfs, &cfg) => 0; | ||||||
|     lfs_mkdir(&lfs, "dummy") => 0; |     lfs_file_open(&lfs, &file, "dummy", | ||||||
|  |             LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0; | ||||||
|  |     lfs_file_close(&lfs, &file) => 0; | ||||||
|     lfs_stat(&lfs, "dummy", &info) => 0; |     lfs_stat(&lfs, "dummy", &info) => 0; | ||||||
|     assert(strcmp(info.name, "dummy") == 0); |     assert(strcmp(info.name, "dummy") == 0); | ||||||
|  |     assert(info.type == LFS_TYPE_REG); | ||||||
|     lfs_unmount(&lfs) => 0; |     lfs_unmount(&lfs) => 0; | ||||||
| ''' | ''' | ||||||
| 
 | 
 | ||||||
| [[case]] # expanding superblock with power cycle | [[case]] # expanding superblock with power cycle | ||||||
| define.BLOCK_CYCLES = [32, 33, 1] | define.LFS_BLOCK_CYCLES = [32, 33, 1] | ||||||
| define.N = [10, 100, 1000] | define.N = [10, 100, 1000] | ||||||
| code = ''' | code = ''' | ||||||
|     lfs_format(&lfs, &cfg) => 0; |     lfs_format(&lfs, &cfg) => 0; | ||||||
|     for (int i = 0; i < N; i++) { |     for (int i = 0; i < N; i++) { | ||||||
|         lfs_mount(&lfs, &cfg) => 0; |         lfs_mount(&lfs, &cfg) => 0; | ||||||
|         // remove lingering dummy? |         // remove lingering dummy? | ||||||
|         err = lfs_remove(&lfs, "dummy"); |         err = lfs_stat(&lfs, "dummy", &info); | ||||||
|         assert(err == 0 || (err == LFS_ERR_NOENT && i == 0)); |         assert(err == 0 || (err == LFS_ERR_NOENT && i == 0)); | ||||||
|          |         if (!err) { | ||||||
|         lfs_mkdir(&lfs, "dummy") => 0; |             assert(strcmp(info.name, "dummy") == 0); | ||||||
|  |             assert(info.type == LFS_TYPE_REG); | ||||||
|  |             lfs_remove(&lfs, "dummy") => 0; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         lfs_file_open(&lfs, &file, "dummy", | ||||||
|  |                 LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0; | ||||||
|  |         lfs_file_close(&lfs, &file) => 0; | ||||||
|         lfs_stat(&lfs, "dummy", &info) => 0; |         lfs_stat(&lfs, "dummy", &info) => 0; | ||||||
|         assert(strcmp(info.name, "dummy") == 0); |         assert(strcmp(info.name, "dummy") == 0); | ||||||
|  |         assert(info.type == LFS_TYPE_REG); | ||||||
|         lfs_unmount(&lfs) => 0; |         lfs_unmount(&lfs) => 0; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @@ -69,11 +83,12 @@ code = ''' | |||||||
|     lfs_mount(&lfs, &cfg) => 0; |     lfs_mount(&lfs, &cfg) => 0; | ||||||
|     lfs_stat(&lfs, "dummy", &info) => 0; |     lfs_stat(&lfs, "dummy", &info) => 0; | ||||||
|     assert(strcmp(info.name, "dummy") == 0); |     assert(strcmp(info.name, "dummy") == 0); | ||||||
|  |     assert(info.type == LFS_TYPE_REG); | ||||||
|     lfs_unmount(&lfs) => 0; |     lfs_unmount(&lfs) => 0; | ||||||
| ''' | ''' | ||||||
| 
 | 
 | ||||||
| [[case]] # reentrant expanding superblock | [[case]] # reentrant expanding superblock | ||||||
| define.BLOCK_CYCLES = [2, 1] | define.LFS_BLOCK_CYCLES = [2, 1] | ||||||
| define.N = 24 | define.N = 24 | ||||||
| reentrant = true | reentrant = true | ||||||
| code = ''' | code = ''' | ||||||
| @@ -85,12 +100,20 @@ code = ''' | |||||||
| 
 | 
 | ||||||
|     for (int i = 0; i < N; i++) { |     for (int i = 0; i < N; i++) { | ||||||
|         // remove lingering dummy? |         // remove lingering dummy? | ||||||
|         err = lfs_remove(&lfs, "dummy"); |         err = lfs_stat(&lfs, "dummy", &info); | ||||||
|         assert(err == 0 || (err == LFS_ERR_NOENT && i == 0)); |         assert(err == 0 || (err == LFS_ERR_NOENT && i == 0)); | ||||||
|          |         if (!err) { | ||||||
|         lfs_mkdir(&lfs, "dummy") => 0; |             assert(strcmp(info.name, "dummy") == 0); | ||||||
|  |             assert(info.type == LFS_TYPE_REG); | ||||||
|  |             lfs_remove(&lfs, "dummy") => 0; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         lfs_file_open(&lfs, &file, "dummy", | ||||||
|  |                 LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0; | ||||||
|  |         lfs_file_close(&lfs, &file) => 0; | ||||||
|         lfs_stat(&lfs, "dummy", &info) => 0; |         lfs_stat(&lfs, "dummy", &info) => 0; | ||||||
|         assert(strcmp(info.name, "dummy") == 0); |         assert(strcmp(info.name, "dummy") == 0); | ||||||
|  |         assert(info.type == LFS_TYPE_REG); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     lfs_unmount(&lfs) => 0; |     lfs_unmount(&lfs) => 0; | ||||||
| @@ -99,5 +122,6 @@ code = ''' | |||||||
|     lfs_mount(&lfs, &cfg) => 0; |     lfs_mount(&lfs, &cfg) => 0; | ||||||
|     lfs_stat(&lfs, "dummy", &info) => 0; |     lfs_stat(&lfs, "dummy", &info) => 0; | ||||||
|     assert(strcmp(info.name, "dummy") == 0); |     assert(strcmp(info.name, "dummy") == 0); | ||||||
|  |     assert(info.type == LFS_TYPE_REG); | ||||||
|     lfs_unmount(&lfs) => 0; |     lfs_unmount(&lfs) => 0; | ||||||
| ''' | ''' | ||||||
		Reference in New Issue
	
	Block a user