119ea8026Sopenharmony_ci[cases.bench_superblocks_found]
219ea8026Sopenharmony_ci# support benchmarking with files
319ea8026Sopenharmony_cidefines.N = [0, 1024]
419ea8026Sopenharmony_cidefines.FILE_SIZE = 8
519ea8026Sopenharmony_cidefines.CHUNK_SIZE = 8
619ea8026Sopenharmony_cicode = '''
719ea8026Sopenharmony_ci    lfs_t lfs;
819ea8026Sopenharmony_ci    lfs_format(&lfs, cfg) => 0;
919ea8026Sopenharmony_ci
1019ea8026Sopenharmony_ci    // create files?
1119ea8026Sopenharmony_ci    lfs_mount(&lfs, cfg) => 0;
1219ea8026Sopenharmony_ci    char name[256];
1319ea8026Sopenharmony_ci    uint8_t buffer[CHUNK_SIZE];
1419ea8026Sopenharmony_ci    for (lfs_size_t i = 0; i < N; i++) {
1519ea8026Sopenharmony_ci        sprintf(name, "file%08x", i);
1619ea8026Sopenharmony_ci        lfs_file_t file;
1719ea8026Sopenharmony_ci        lfs_file_open(&lfs, &file, name,
1819ea8026Sopenharmony_ci                LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0;
1919ea8026Sopenharmony_ci
2019ea8026Sopenharmony_ci        for (lfs_size_t j = 0; j < FILE_SIZE; j += CHUNK_SIZE) {
2119ea8026Sopenharmony_ci            for (lfs_size_t k = 0; k < CHUNK_SIZE; k++) {
2219ea8026Sopenharmony_ci                buffer[k] = i+j+k;
2319ea8026Sopenharmony_ci            }
2419ea8026Sopenharmony_ci            lfs_file_write(&lfs, &file, buffer, CHUNK_SIZE) => CHUNK_SIZE;
2519ea8026Sopenharmony_ci        }
2619ea8026Sopenharmony_ci
2719ea8026Sopenharmony_ci        lfs_file_close(&lfs, &file) => 0;
2819ea8026Sopenharmony_ci    }
2919ea8026Sopenharmony_ci    lfs_unmount(&lfs) => 0;
3019ea8026Sopenharmony_ci
3119ea8026Sopenharmony_ci    BENCH_START();
3219ea8026Sopenharmony_ci    lfs_mount(&lfs, cfg) => 0;
3319ea8026Sopenharmony_ci    BENCH_STOP();
3419ea8026Sopenharmony_ci
3519ea8026Sopenharmony_ci    lfs_unmount(&lfs) => 0;
3619ea8026Sopenharmony_ci'''
3719ea8026Sopenharmony_ci
3819ea8026Sopenharmony_ci[cases.bench_superblocks_missing]
3919ea8026Sopenharmony_cicode = '''
4019ea8026Sopenharmony_ci    lfs_t lfs;
4119ea8026Sopenharmony_ci
4219ea8026Sopenharmony_ci    BENCH_START();
4319ea8026Sopenharmony_ci    int err = lfs_mount(&lfs, cfg);
4419ea8026Sopenharmony_ci    assert(err != 0);
4519ea8026Sopenharmony_ci    BENCH_STOP();
4619ea8026Sopenharmony_ci'''
4719ea8026Sopenharmony_ci
4819ea8026Sopenharmony_ci[cases.bench_superblocks_format]
4919ea8026Sopenharmony_cicode = '''
5019ea8026Sopenharmony_ci    lfs_t lfs;
5119ea8026Sopenharmony_ci
5219ea8026Sopenharmony_ci    BENCH_START();
5319ea8026Sopenharmony_ci    lfs_format(&lfs, cfg) => 0;
5419ea8026Sopenharmony_ci    BENCH_STOP();
5519ea8026Sopenharmony_ci'''
5619ea8026Sopenharmony_ci
57