mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 08:42:40 +01:00 
			
		
		
		
	Generated v2 prefixes
This commit is contained in:
		
							
								
								
									
										127
									
								
								tests/test_superblocks.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								tests/test_superblocks.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,127 @@ | ||||
| [[case]] # simple formatting test | ||||
| code = ''' | ||||
|     lfs2_format(&lfs2, &cfg) => 0; | ||||
| ''' | ||||
|  | ||||
| [[case]] # mount/unmount | ||||
| code = ''' | ||||
|     lfs2_format(&lfs2, &cfg) => 0; | ||||
|     lfs2_mount(&lfs2, &cfg) => 0; | ||||
|     lfs2_unmount(&lfs2) => 0; | ||||
| ''' | ||||
|  | ||||
| [[case]] # reentrant format | ||||
| reentrant = true | ||||
| code = ''' | ||||
|     err = lfs2_mount(&lfs2, &cfg); | ||||
|     if (err) { | ||||
|         lfs2_format(&lfs2, &cfg) => 0; | ||||
|         lfs2_mount(&lfs2, &cfg) => 0; | ||||
|     } | ||||
|     lfs2_unmount(&lfs2) => 0; | ||||
| ''' | ||||
|  | ||||
| [[case]] # invalid mount | ||||
| code = ''' | ||||
|     lfs2_mount(&lfs2, &cfg) => LFS2_ERR_CORRUPT; | ||||
| ''' | ||||
|  | ||||
| [[case]] # expanding superblock | ||||
| define.LFS2_BLOCK_CYCLES = [32, 33, 1] | ||||
| define.N = [10, 100, 1000] | ||||
| code = ''' | ||||
|     lfs2_format(&lfs2, &cfg) => 0; | ||||
|     lfs2_mount(&lfs2, &cfg) => 0; | ||||
|     for (int i = 0; i < N; i++) { | ||||
|         lfs2_file_open(&lfs2, &file, "dummy", | ||||
|                 LFS2_O_WRONLY | LFS2_O_CREAT | LFS2_O_EXCL) => 0; | ||||
|         lfs2_file_close(&lfs2, &file) => 0; | ||||
|         lfs2_stat(&lfs2, "dummy", &info) => 0; | ||||
|         assert(strcmp(info.name, "dummy") == 0); | ||||
|         assert(info.type == LFS2_TYPE_REG); | ||||
|         lfs2_remove(&lfs2, "dummy") => 0; | ||||
|     } | ||||
|     lfs2_unmount(&lfs2) => 0; | ||||
|  | ||||
|     // one last check after power-cycle | ||||
|     lfs2_mount(&lfs2, &cfg) => 0; | ||||
|     lfs2_file_open(&lfs2, &file, "dummy", | ||||
|             LFS2_O_WRONLY | LFS2_O_CREAT | LFS2_O_EXCL) => 0; | ||||
|     lfs2_file_close(&lfs2, &file) => 0; | ||||
|     lfs2_stat(&lfs2, "dummy", &info) => 0; | ||||
|     assert(strcmp(info.name, "dummy") == 0); | ||||
|     assert(info.type == LFS2_TYPE_REG); | ||||
|     lfs2_unmount(&lfs2) => 0; | ||||
| ''' | ||||
|  | ||||
| [[case]] # expanding superblock with power cycle | ||||
| define.LFS2_BLOCK_CYCLES = [32, 33, 1] | ||||
| define.N = [10, 100, 1000] | ||||
| code = ''' | ||||
|     lfs2_format(&lfs2, &cfg) => 0; | ||||
|     for (int i = 0; i < N; i++) { | ||||
|         lfs2_mount(&lfs2, &cfg) => 0; | ||||
|         // remove lingering dummy? | ||||
|         err = lfs2_stat(&lfs2, "dummy", &info); | ||||
|         assert(err == 0 || (err == LFS2_ERR_NOENT && i == 0)); | ||||
|         if (!err) { | ||||
|             assert(strcmp(info.name, "dummy") == 0); | ||||
|             assert(info.type == LFS2_TYPE_REG); | ||||
|             lfs2_remove(&lfs2, "dummy") => 0; | ||||
|         } | ||||
|  | ||||
|         lfs2_file_open(&lfs2, &file, "dummy", | ||||
|                 LFS2_O_WRONLY | LFS2_O_CREAT | LFS2_O_EXCL) => 0; | ||||
|         lfs2_file_close(&lfs2, &file) => 0; | ||||
|         lfs2_stat(&lfs2, "dummy", &info) => 0; | ||||
|         assert(strcmp(info.name, "dummy") == 0); | ||||
|         assert(info.type == LFS2_TYPE_REG); | ||||
|         lfs2_unmount(&lfs2) => 0; | ||||
|     } | ||||
|  | ||||
|     // one last check after power-cycle | ||||
|     lfs2_mount(&lfs2, &cfg) => 0; | ||||
|     lfs2_stat(&lfs2, "dummy", &info) => 0; | ||||
|     assert(strcmp(info.name, "dummy") == 0); | ||||
|     assert(info.type == LFS2_TYPE_REG); | ||||
|     lfs2_unmount(&lfs2) => 0; | ||||
| ''' | ||||
|  | ||||
| [[case]] # reentrant expanding superblock | ||||
| define.LFS2_BLOCK_CYCLES = [2, 1] | ||||
| define.N = 24 | ||||
| reentrant = true | ||||
| code = ''' | ||||
|     err = lfs2_mount(&lfs2, &cfg); | ||||
|     if (err) { | ||||
|         lfs2_format(&lfs2, &cfg) => 0; | ||||
|         lfs2_mount(&lfs2, &cfg) => 0; | ||||
|     } | ||||
|  | ||||
|     for (int i = 0; i < N; i++) { | ||||
|         // remove lingering dummy? | ||||
|         err = lfs2_stat(&lfs2, "dummy", &info); | ||||
|         assert(err == 0 || (err == LFS2_ERR_NOENT && i == 0)); | ||||
|         if (!err) { | ||||
|             assert(strcmp(info.name, "dummy") == 0); | ||||
|             assert(info.type == LFS2_TYPE_REG); | ||||
|             lfs2_remove(&lfs2, "dummy") => 0; | ||||
|         } | ||||
|  | ||||
|         lfs2_file_open(&lfs2, &file, "dummy", | ||||
|                 LFS2_O_WRONLY | LFS2_O_CREAT | LFS2_O_EXCL) => 0; | ||||
|         lfs2_file_close(&lfs2, &file) => 0; | ||||
|         lfs2_stat(&lfs2, "dummy", &info) => 0; | ||||
|         assert(strcmp(info.name, "dummy") == 0); | ||||
|         assert(info.type == LFS2_TYPE_REG); | ||||
|     } | ||||
|  | ||||
|     lfs2_unmount(&lfs2) => 0; | ||||
|  | ||||
|     // one last check after power-cycle | ||||
|     lfs2_mount(&lfs2, &cfg) => 0; | ||||
|     lfs2_stat(&lfs2, "dummy", &info) => 0; | ||||
|     assert(strcmp(info.name, "dummy") == 0); | ||||
|     assert(info.type == LFS2_TYPE_REG); | ||||
|     lfs2_unmount(&lfs2) => 0; | ||||
| ''' | ||||
		Reference in New Issue
	
	Block a user