Newer
Older
mbed-os / storage / filesystem / littlefs / littlefs / tests / template.fmt
/// AUTOGENERATED TEST ///
#include "lfs.h"
#include "emubd/lfs_emubd.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


// test stuff
static void test_log(const char *s, uintmax_t v) {{
    printf("%s: %jd\n", s, v);
}}

static void test_assert(const char *file, unsigned line,
        const char *s, uintmax_t v, uintmax_t e) {{
    static const char *last[6] = {{0, 0}};
    if (v != e || !(last[0] == s || last[1] == s ||
            last[2] == s || last[3] == s ||
            last[4] == s || last[5] == s)) {{
        test_log(s, v);
        last[0] = last[1];
        last[1] = last[2];
        last[2] = last[3];
        last[3] = last[4];
        last[4] = last[5];
        last[5] = s;
    }}

    if (v != e) {{
        fprintf(stderr, "\033[31m%s:%u: assert %s failed with %jd, "
                "expected %jd\033[0m\n", file, line, s, v, e);
        exit(-2);
    }}
}}

#define test_assert(s, v, e) test_assert(__FILE__, __LINE__, s, v, e)


// 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;
lfs_file_t file[4];
lfs_dir_t dir[4];
struct lfs_info info;

uint8_t buffer[1024];
uint8_t wbuffer[1024];
uint8_t rbuffer[1024];
lfs_size_t size;
lfs_size_t wsize;
lfs_size_t rsize;

uintmax_t test;

#ifndef LFS_READ_SIZE
#define LFS_READ_SIZE 16
#endif

#ifndef LFS_PROG_SIZE
#define LFS_PROG_SIZE 16
#endif

#ifndef LFS_BLOCK_SIZE
#define LFS_BLOCK_SIZE 512
#endif

#ifndef LFS_BLOCK_COUNT
#define LFS_BLOCK_COUNT 1024
#endif

#ifndef LFS_LOOKAHEAD
#define LFS_LOOKAHEAD 128
#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,
    .lookahead   = LFS_LOOKAHEAD,
}};


// Entry point
int main(void) {{
    lfs_emubd_create(&cfg, "blocks");

{tests}

    lfs_emubd_destroy(&cfg);
}}