mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 00:32:38 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			97 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /// AUTOGENERATED TEST ///
 | |
| #include "lfs2.h"
 | |
| #include "emubd/lfs2_emubd.h"
 | |
| #include <stdio.h>
 | |
| #include <string.h>
 | |
| #include <stdlib.h>
 | |
| 
 | |
| 
 | |
| // test stuff
 | |
| static void test_assert(const char *file, unsigned line,
 | |
|         const char *s, uintmax_t v, uintmax_t e) {{
 | |
|     if (v != e) {{
 | |
|         fprintf(stderr, "\033[97m%s:%u: \033[91m"
 | |
|                 "assert failed with %jd, expected %jd\033[0m\n"
 | |
|                 "    %s\n\n", file, line, v, e, s);
 | |
|         exit(-2);
 | |
|     }}
 | |
| }}
 | |
| 
 | |
| #define test_assert(v, e) \
 | |
|         test_assert(__FILE__, __LINE__, #v " => " #e, v, e)
 | |
| 
 | |
| // implicit variable for asserts
 | |
| uintmax_t test;
 | |
| 
 | |
| // utility functions for traversals
 | |
| static int __attribute__((used)) test_count(void *p, lfs2_block_t b) {{
 | |
|     (void)b;
 | |
|     unsigned *u = (unsigned*)p;
 | |
|     *u += 1;
 | |
|     return 0;
 | |
| }}
 | |
| 
 | |
| // lfs2 declarations
 | |
| lfs2_t lfs2;
 | |
| lfs2_emubd_t bd;
 | |
| // other declarations for convenience
 | |
| lfs2_file_t file;
 | |
| lfs2_dir_t dir;
 | |
| struct lfs2_info info;
 | |
| uint8_t buffer[1024];
 | |
| char path[1024];
 | |
| 
 | |
| // test configuration options
 | |
| #ifndef LFS2_READ_SIZE
 | |
| #define LFS2_READ_SIZE 16
 | |
| #endif
 | |
| 
 | |
| #ifndef LFS2_PROG_SIZE
 | |
| #define LFS2_PROG_SIZE LFS2_READ_SIZE
 | |
| #endif
 | |
| 
 | |
| #ifndef LFS2_BLOCK_SIZE
 | |
| #define LFS2_BLOCK_SIZE 512
 | |
| #endif
 | |
| 
 | |
| #ifndef LFS2_BLOCK_COUNT
 | |
| #define LFS2_BLOCK_COUNT 1024
 | |
| #endif
 | |
| 
 | |
| #ifndef LFS2_BLOCK_CYCLES
 | |
| #define LFS2_BLOCK_CYCLES 1024
 | |
| #endif
 | |
| 
 | |
| #ifndef LFS2_CACHE_SIZE
 | |
| #define LFS2_CACHE_SIZE (64 % LFS2_PROG_SIZE == 0 ? 64 : LFS2_PROG_SIZE)
 | |
| #endif
 | |
| 
 | |
| #ifndef LFS2_LOOKAHEAD_SIZE
 | |
| #define LFS2_LOOKAHEAD_SIZE 16
 | |
| #endif
 | |
| 
 | |
| const struct lfs2_config cfg = {{
 | |
|     .context = &bd,
 | |
|     .read  = &lfs2_emubd_read,
 | |
|     .prog  = &lfs2_emubd_prog,
 | |
|     .erase = &lfs2_emubd_erase,
 | |
|     .sync  = &lfs2_emubd_sync,
 | |
| 
 | |
|     .read_size      = LFS2_READ_SIZE,
 | |
|     .prog_size      = LFS2_PROG_SIZE,
 | |
|     .block_size     = LFS2_BLOCK_SIZE,
 | |
|     .block_count    = LFS2_BLOCK_COUNT,
 | |
|     .block_cycles   = LFS2_BLOCK_CYCLES,
 | |
|     .cache_size     = LFS2_CACHE_SIZE,
 | |
|     .lookahead_size = LFS2_LOOKAHEAD_SIZE,
 | |
| }};
 | |
| 
 | |
| 
 | |
| // Entry point
 | |
| int main(void) {{
 | |
|     lfs2_emubd_create(&cfg, "blocks");
 | |
| 
 | |
| {tests}
 | |
|     lfs2_emubd_destroy(&cfg);
 | |
| }}
 |