/// AUTOGENERATED TEST /// #include "lfs.h" #include "emubd/lfs_emubd.h" #include #include #include // 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, lfs_block_t b) {{ (void)b; unsigned *u = (unsigned*)p; *u += 1; return 0; }} // lfs declarations lfs_t lfs; lfs_emubd_t bd; // other declarations for convenience lfs_file_t file; lfs_dir_t dir; struct lfs_info info; uint8_t buffer[1024]; char path[1024]; // test configuration options #ifndef LFS_READ_SIZE #define LFS_READ_SIZE 16 #endif #ifndef LFS_PROG_SIZE #define LFS_PROG_SIZE LFS_READ_SIZE #endif #ifndef LFS_BLOCK_SIZE #define LFS_BLOCK_SIZE 512 #endif #ifndef LFS_BLOCK_COUNT #define LFS_BLOCK_COUNT 1024 #endif #ifndef LFS_BLOCK_CYCLES #define LFS_BLOCK_CYCLES 1024 #endif #ifndef LFS_CACHE_SIZE #define LFS_CACHE_SIZE (64 % LFS_PROG_SIZE == 0 ? 64 : LFS_PROG_SIZE) #endif #ifndef LFS_LOOKAHEAD_SIZE #define LFS_LOOKAHEAD_SIZE 16 #endif const struct lfs_config cfg = {{ .context = &bd, .read = &lfs_emubd_read, .prog = &lfs_emubd_prog, .erase = &lfs_emubd_erase, .sync = &lfs_emubd_sync, .read_size = LFS_READ_SIZE, .prog_size = LFS_PROG_SIZE, .block_size = LFS_BLOCK_SIZE, .block_count = LFS_BLOCK_COUNT, .block_cycles = LFS_BLOCK_CYCLES, .cache_size = LFS_CACHE_SIZE, .lookahead_size = LFS_LOOKAHEAD_SIZE, }}; // Entry point int main(void) {{ lfs_emubd_create(&cfg, "blocks"); {tests} lfs_emubd_destroy(&cfg); }}