9b72406632
This is the first step towards a working mtree, though raises more questions than it resolves.
88 lines
2.3 KiB
TOML
88 lines
2.3 KiB
TOML
# test a single supermdir
|
|
[cases.test_mtree_one_supermdir]
|
|
code = '''
|
|
lfs_t lfs;
|
|
lfsr_format(&lfs, cfg) => 0;
|
|
lfsr_mount(&lfs, cfg) => 0;
|
|
lfsr_unmount(&lfs) => 0;
|
|
'''
|
|
|
|
# test a single supermdir with many commits
|
|
[cases.test_mtree_one_supermdir_many_commits]
|
|
defines.N = 5000
|
|
in = 'lfs.c'
|
|
code = '''
|
|
lfs_t lfs;
|
|
lfsr_format(&lfs, cfg) => 0;
|
|
|
|
for (lfs_size_t i = 0; i < N; i++) {
|
|
lfsr_mount(&lfs, cfg) => 0;
|
|
lfsr_mdir_commit(&lfs, &lfs.supermdir, &(lfs_ssize_t){-1},
|
|
NULL, 0) => 0;
|
|
lfsr_unmount(&lfs) => 0;
|
|
}
|
|
|
|
lfsr_mount(&lfs, cfg) => 0;
|
|
lfsr_unmount(&lfs) => 0;
|
|
'''
|
|
|
|
# TODO test many supermdirs
|
|
|
|
# try creating a few entries in our mdir
|
|
[cases.test_mtree_entries]
|
|
defines.N = 5
|
|
in = 'lfs.c'
|
|
code = '''
|
|
lfs_t lfs;
|
|
lfsr_format(&lfs, cfg) => 0;
|
|
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
|
|
|
lfsr_mount(&lfs, cfg) => 0;
|
|
lfsr_mdir_t mdir = lfs.supermdir;
|
|
lfs_ssize_t rid = -1;
|
|
for (lfs_size_t i = 0; i < N; i++) {
|
|
rid += 1;
|
|
lfsr_mdir_commit(&lfs, &mdir, &rid, LFSR_ATTRS(
|
|
LFSR_ATTR(rid, MKREG, +1, &alphas[i % 26], 1))) => 0;
|
|
}
|
|
lfsr_unmount(&lfs) => 0;
|
|
|
|
// TODO
|
|
// lfsr_mount(&lfs, cfg) => 0;
|
|
// for (lfs_size_t i = 0; i < N; i++) {
|
|
// uint8_t buffer[4];
|
|
// lfsr_mdir_get(&lfs, &lfs.supermdir, i, LFSR_TAG_REG, buffer, 4) => 1;
|
|
// assert(memcmp(buffer, &alphas[i % 26], 1) == 0);
|
|
// }
|
|
// lfsr_unmount(&lfs) => 0;
|
|
'''
|
|
|
|
# try creating many entries, this should trigger a split
|
|
[cases.test_mtree_split]
|
|
defines.N = 500
|
|
in = 'lfs.c'
|
|
code = '''
|
|
lfs_t lfs;
|
|
lfsr_format(&lfs, cfg) => 0;
|
|
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
|
|
|
lfsr_mount(&lfs, cfg) => 0;
|
|
lfsr_mdir_t mdir = lfs.supermdir;
|
|
lfs_ssize_t rid = -1;
|
|
for (lfs_size_t i = 0; i < N; i++) {
|
|
rid += 1;
|
|
lfsr_mdir_commit(&lfs, &mdir, &rid, LFSR_ATTRS(
|
|
LFSR_ATTR(rid, MKREG, +1, &alphas[i % 26], 1))) => 0;
|
|
}
|
|
lfsr_unmount(&lfs) => 0;
|
|
|
|
// TODO
|
|
// lfsr_mount(&lfs, cfg) => 0;
|
|
// for (lfs_size_t i = 0; i < N; i++) {
|
|
// uint8_t buffer[4];
|
|
// lfsr_mdir_get(&lfs, &lfs.supermdir, i, LFSR_TAG_REG, buffer, 4) => 1;
|
|
// assert(memcmp(buffer, &alphas[i % 26], 1) == 0);
|
|
// }
|
|
// lfsr_unmount(&lfs) => 0;
|
|
'''
|