Renamed tests/benches such that order is logical
It doesn't make sense to test more complex logic, such as t2_btree.toml, when the logic it is built on, t1_rbyd.toml, does not past testing. The test runner already guarantees a consistent lexicographic order, so all we need to do is renamed these from test_* -> tn_*. Note, if we every have more than 10 tests, we will need to bump up the number of digits for all tests, so t1_rbyd.toml -> t01_rbyd.toml. This is the main downside of lexicographic ordering. But we'll cross that bridge when we get to it.
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
# abstraction level
|
# abstraction level
|
||||||
defines.BLOCK_SIZE = 'DISK_SIZE'
|
defines.BLOCK_SIZE = 'DISK_SIZE'
|
||||||
|
|
||||||
[cases.bench_rbyd_attr_commit]
|
[cases.b1_rbyd_attr_commit]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -62,7 +62,7 @@ code = '''
|
|||||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size) => 0;
|
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_attr_fetch]
|
[cases.b1_rbyd_attr_fetch]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -119,7 +119,7 @@ code = '''
|
|||||||
BENCH_STOP();
|
BENCH_STOP();
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_attr_lookup]
|
[cases.b1_rbyd_attr_lookup]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -183,7 +183,7 @@ code = '''
|
|||||||
BENCH_STOP();
|
BENCH_STOP();
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_attr_append]
|
[cases.b1_rbyd_attr_append]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -249,7 +249,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0);
|
assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_attr_remove]
|
[cases.b1_rbyd_attr_remove]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -314,7 +314,7 @@ code = '''
|
|||||||
=> LFS_ERR_NOENT;
|
=> LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_id_commit]
|
[cases.b1_rbyd_id_commit]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -367,7 +367,7 @@ code = '''
|
|||||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size) => 0;
|
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_id_fetch]
|
[cases.b1_rbyd_id_fetch]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -420,7 +420,7 @@ code = '''
|
|||||||
BENCH_STOP();
|
BENCH_STOP();
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_id_lookup]
|
[cases.b1_rbyd_id_lookup]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -478,7 +478,7 @@ code = '''
|
|||||||
BENCH_STOP();
|
BENCH_STOP();
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_id_create]
|
[cases.b1_rbyd_id_create]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -539,7 +539,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0);
|
assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_rbyd_id_delete]
|
[cases.b1_rbyd_id_delete]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
# 2 = random-order
|
# 2 = random-order
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
# of the disk for these tests
|
# of the disk for these tests
|
||||||
defines.LOOKAHEAD_SIZE = 'BLOCK_COUNT / 8'
|
defines.LOOKAHEAD_SIZE = 'BLOCK_COUNT / 8'
|
||||||
|
|
||||||
[cases.bench_btree_lookup]
|
[cases.b2_btree_lookup]
|
||||||
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
@@ -53,7 +53,7 @@ code = '''
|
|||||||
BENCH_STOP();
|
BENCH_STOP();
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_btree_commit]
|
[cases.b2_btree_commit]
|
||||||
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
# of the disk for these tests
|
# of the disk for these tests
|
||||||
defines.LOOKAHEAD_SIZE = 'BLOCK_COUNT / 8'
|
defines.LOOKAHEAD_SIZE = 'BLOCK_COUNT / 8'
|
||||||
|
|
||||||
[cases.bench_mtree_lookup]
|
[cases.b3_mtree_lookup]
|
||||||
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
@@ -64,7 +64,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_mtree_commit]
|
[cases.b3_mtree_commit]
|
||||||
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
@@ -136,7 +136,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.bench_mtree_traversal]
|
[cases.b3_mtree_traversal]
|
||||||
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
defines.N = [8, 16, 32, 64, 128, 256, 1024]
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
# 1 = reversed-order
|
# 1 = reversed-order
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
# Note we use 251, a prime, in places to avoid aliasing powers of 2.
|
# Note we use 251, a prime, in places to avoid aliasing powers of 2.
|
||||||
#
|
#
|
||||||
|
|
||||||
[cases.test_bd_one_block]
|
[cases.t0_bd_one_block]
|
||||||
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
||||||
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
||||||
code = '''
|
code = '''
|
||||||
@@ -29,7 +29,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_bd_two_block]
|
[cases.t0_bd_two_block]
|
||||||
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
||||||
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
||||||
code = '''
|
code = '''
|
||||||
@@ -87,7 +87,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_bd_last_block]
|
[cases.t0_bd_last_block]
|
||||||
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
||||||
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
||||||
code = '''
|
code = '''
|
||||||
@@ -145,7 +145,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_bd_powers_of_two]
|
[cases.t0_bd_powers_of_two]
|
||||||
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
||||||
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
||||||
code = '''
|
code = '''
|
||||||
@@ -191,7 +191,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_bd_fibonacci]
|
[cases.t0_bd_fibonacci]
|
||||||
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
defines.READ = ['READ_SIZE', 'BLOCK_SIZE']
|
||||||
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
defines.PROG = ['PROG_SIZE', 'BLOCK_SIZE']
|
||||||
code = '''
|
code = '''
|
||||||
@@ -13,7 +13,7 @@ defines.ERASE_VALUE = [0xff, 0x00, 0x1b]
|
|||||||
# waste time when testing
|
# waste time when testing
|
||||||
defines.BLOCK_SIZE = 32768
|
defines.BLOCK_SIZE = 32768
|
||||||
|
|
||||||
[cases.test_rbyd_commit]
|
[cases.t1_rbyd_commit]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -44,7 +44,7 @@ code = '''
|
|||||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, 0) => 0;
|
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, 0) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_commit]
|
[cases.t1_rbyd_multi_commit]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -76,7 +76,7 @@ code = '''
|
|||||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, 0) => 0;
|
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, 0) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_commit_fetch_commit]
|
[cases.t1_rbyd_commit_fetch_commit]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -104,12 +104,12 @@ code = '''
|
|||||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, 0) => 0;
|
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, 0) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# [cases.test_rbyd_fetchmatch]
|
# [cases.t1_rbyd_fetchmatch]
|
||||||
# [cases.test_rbyd_multi_fetchmatch]
|
# [cases.t1_rbyd_multi_fetchmatch]
|
||||||
|
|
||||||
# TODO we really need to test dense keys...
|
# TODO we really need to test dense keys...
|
||||||
|
|
||||||
[cases.test_rbyd_lookup]
|
[cases.t1_rbyd_lookup]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -219,7 +219,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_lookup]
|
[cases.t1_rbyd_multi_lookup]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -331,7 +331,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_get]
|
[cases.t1_rbyd_get]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -410,7 +410,7 @@ code = '''
|
|||||||
=> LFS_ERR_NOENT;
|
=> LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_get]
|
[cases.t1_rbyd_multi_get]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -491,7 +491,7 @@ code = '''
|
|||||||
=> LFS_ERR_NOENT;
|
=> LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_bifoliate]
|
[cases.t1_rbyd_bifoliate]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -554,7 +554,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_bflips]
|
[cases.t1_rbyd_bflips]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -619,7 +619,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_trifoliate]
|
[cases.t1_rbyd_trifoliate]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -698,7 +698,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_rflips]
|
[cases.t1_rbyd_rflips]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -841,7 +841,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_quadrifoliate]
|
[cases.t1_rbyd_quadrifoliate]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1012,7 +1012,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_rotations]
|
[cases.t1_rbyd_rotations]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1183,7 +1183,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_ysplits]
|
[cases.t1_rbyd_ysplits]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1362,7 +1362,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_quintifoliate]
|
[cases.t1_rbyd_quintifoliate]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1569,7 +1569,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_prunes]
|
[cases.t1_rbyd_prunes]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1735,7 +1735,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sextifoliate]
|
[cases.t1_rbyd_sextifoliate]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1918,7 +1918,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_permutations]
|
[cases.t1_rbyd_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -2007,7 +2007,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_permutations]
|
[cases.t1_rbyd_multi_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -2094,7 +2094,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_traverse]
|
[cases.t1_rbyd_traverse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -2183,7 +2183,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_traverse]
|
[cases.t1_rbyd_multi_traverse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -2274,7 +2274,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_traverse_permutations]
|
[cases.t1_rbyd_traverse_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -2344,7 +2344,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_traverse_permutations]
|
[cases.t1_rbyd_multi_traverse_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -2415,7 +2415,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_update_permutations]
|
[cases.t1_rbyd_update_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -2526,7 +2526,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_large]
|
[cases.t1_rbyd_large]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
# ORDER:
|
# ORDER:
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
@@ -2593,7 +2593,7 @@ code = '''
|
|||||||
|
|
||||||
### Removal testing ###
|
### Removal testing ###
|
||||||
|
|
||||||
[cases.test_rbyd_remove]
|
[cases.t1_rbyd_remove]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -2699,7 +2699,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_remove_permutations]
|
[cases.t1_rbyd_remove_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -2849,7 +2849,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_remove_traverse_permutations]
|
[cases.t1_rbyd_remove_traverse_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -2949,7 +2949,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_remove_missing]
|
[cases.t1_rbyd_remove_missing]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -3098,7 +3098,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_remove_again]
|
[cases.t1_rbyd_remove_again]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -3333,7 +3333,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_remove_all]
|
[cases.t1_rbyd_remove_all]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -3415,7 +3415,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_remove_all_permutations]
|
[cases.t1_rbyd_remove_all_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -3540,7 +3540,7 @@ code = '''
|
|||||||
|
|
||||||
# the main purpose of this test is to try to fuzz for failures in the
|
# the main purpose of this test is to try to fuzz for failures in the
|
||||||
# balancing algorithm
|
# balancing algorithm
|
||||||
[cases.test_rbyd_fuzz_append_removes]
|
[cases.t1_rbyd_fuzz_append_removes]
|
||||||
defines.N = 'range(1, 33)'
|
defines.N = 'range(1, 33)'
|
||||||
defines.SAMPLES = 1000
|
defines.SAMPLES = 1000
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -3682,7 +3682,7 @@ code = '''
|
|||||||
|
|
||||||
### Insertion testing ###
|
### Insertion testing ###
|
||||||
|
|
||||||
[cases.test_rbyd_create]
|
[cases.t1_rbyd_create]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -3829,7 +3829,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_create]
|
[cases.t1_rbyd_multi_create]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -3986,7 +3986,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_create_permutations]
|
[cases.t1_rbyd_create_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -4086,7 +4086,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_create_permutations]
|
[cases.t1_rbyd_multi_create_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -4185,7 +4185,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_create_traverse]
|
[cases.t1_rbyd_create_traverse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -4291,7 +4291,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_create_traverse]
|
[cases.t1_rbyd_multi_create_traverse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -4399,7 +4399,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_create_traverse_permutations]
|
[cases.t1_rbyd_create_traverse_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -4489,7 +4489,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_create_traverse_permutations]
|
[cases.t1_rbyd_multi_create_traverse_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -4577,7 +4577,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_create_large]
|
[cases.t1_rbyd_create_large]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
# ORDER:
|
# ORDER:
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
@@ -4650,7 +4650,7 @@ code = '''
|
|||||||
|
|
||||||
### Mixed create and attr testing ###
|
### Mixed create and attr testing ###
|
||||||
|
|
||||||
[cases.test_rbyd_mixed]
|
[cases.t1_rbyd_mixed]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -4884,7 +4884,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "\xcc\xcc", 2) == 0);
|
assert(memcmp(buffer, "\xcc\xcc", 2) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_mixed]
|
[cases.t1_rbyd_multi_mixed]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -5140,7 +5140,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "\xcc\xcc", 2) == 0);
|
assert(memcmp(buffer, "\xcc\xcc", 2) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_mixed_permutations]
|
[cases.t1_rbyd_mixed_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -5252,7 +5252,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_mixed_permutations]
|
[cases.t1_rbyd_multi_mixed_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -5363,7 +5363,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_mixed_traverse]
|
[cases.t1_rbyd_mixed_traverse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -5529,7 +5529,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_mixed_traverse]
|
[cases.t1_rbyd_multi_mixed_traverse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -5701,7 +5701,7 @@ code = '''
|
|||||||
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_mixed_traverse_permutations]
|
[cases.t1_rbyd_mixed_traverse_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -5809,7 +5809,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_multi_mixed_traverse_permutations]
|
[cases.t1_rbyd_multi_mixed_traverse_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -5918,7 +5918,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_mixed_update_permutations]
|
[cases.t1_rbyd_mixed_update_permutations]
|
||||||
defines.N = 'range(1, 4)'
|
defines.N = 'range(1, 4)'
|
||||||
defines.M = 'range(1, 3)'
|
defines.M = 'range(1, 3)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -6046,7 +6046,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_mixed_remove_permutations]
|
[cases.t1_rbyd_mixed_remove_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -6240,7 +6240,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_mixed_remove_all_permutations]
|
[cases.t1_rbyd_mixed_remove_all_permutations]
|
||||||
defines.N = 'range(1, 4)'
|
defines.N = 'range(1, 4)'
|
||||||
defines.M = 'range(1, 3)'
|
defines.M = 'range(1, 3)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -6365,7 +6365,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_mixed_large]
|
[cases.t1_rbyd_mixed_large]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
# ORDER:
|
# ORDER:
|
||||||
# 0 = in-order
|
# 0 = in-order
|
||||||
@@ -6456,7 +6456,7 @@ code = '''
|
|||||||
|
|
||||||
### Test unrelated no-id tags ###
|
### Test unrelated no-id tags ###
|
||||||
|
|
||||||
[cases.test_rbyd_unrelated_create_permutations]
|
[cases.t1_rbyd_unrelated_create_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -6594,7 +6594,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_unrelated_mixed_permutations]
|
[cases.t1_rbyd_unrelated_mixed_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -6757,7 +6757,7 @@ code = '''
|
|||||||
|
|
||||||
### Deletion testing ###
|
### Deletion testing ###
|
||||||
|
|
||||||
[cases.test_rbyd_delete]
|
[cases.t1_rbyd_delete]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -6883,7 +6883,7 @@ code = '''
|
|||||||
lfsr_rbyd_get(&lfs, &rbyd, 2, LFSR_TAG_REG, buffer, 4) => LFS_ERR_NOENT;
|
lfsr_rbyd_get(&lfs, &rbyd, 2, LFSR_TAG_REG, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_delete_range]
|
[cases.t1_rbyd_delete_range]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -7123,7 +7123,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_delete_permutations]
|
[cases.t1_rbyd_delete_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -7276,7 +7276,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_delete_range_permutations]
|
[cases.t1_rbyd_delete_range_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -7467,7 +7467,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_delete_traverse_permutations]
|
[cases.t1_rbyd_delete_traverse_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -7590,7 +7590,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_delete_traverse_range_permutations]
|
[cases.t1_rbyd_delete_traverse_range_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -7735,7 +7735,7 @@ code = '''
|
|||||||
|
|
||||||
# Note, "delete_all" is a weird state for rbyd trees to be in, since they
|
# Note, "delete_all" is a weird state for rbyd trees to be in, since they
|
||||||
# don't really have a trunk at this point
|
# don't really have a trunk at this point
|
||||||
[cases.test_rbyd_delete_all]
|
[cases.t1_rbyd_delete_all]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -7849,7 +7849,7 @@ code = '''
|
|||||||
=> LFS_ERR_NOENT;
|
=> LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_delete_all_range]
|
[cases.t1_rbyd_delete_all_range]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -7976,7 +7976,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_delete_all_permutations]
|
[cases.t1_rbyd_delete_all_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
# n => reproduce a specific permutation
|
# n => reproduce a specific permutation
|
||||||
@@ -8117,7 +8117,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_delete_all_range_permutations]
|
[cases.t1_rbyd_delete_all_range_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.M = 'range(1, 4)'
|
defines.M = 'range(1, 4)'
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -8277,7 +8277,7 @@ code = '''
|
|||||||
|
|
||||||
# the main purpose of this test is to try to fuzz for failures in the
|
# the main purpose of this test is to try to fuzz for failures in the
|
||||||
# balancing algorithm
|
# balancing algorithm
|
||||||
[cases.test_rbyd_fuzz_create_deletes]
|
[cases.t1_rbyd_fuzz_create_deletes]
|
||||||
defines.N = 'range(1, 33)'
|
defines.N = 'range(1, 33)'
|
||||||
defines.SAMPLES = 1000
|
defines.SAMPLES = 1000
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -8418,7 +8418,7 @@ code = '''
|
|||||||
|
|
||||||
|
|
||||||
# Test rbyd weights
|
# Test rbyd weights
|
||||||
[cases.test_rbyd_sparse]
|
[cases.t1_rbyd_sparse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -8655,7 +8655,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 4);
|
assert(lfsr_data_size(data_) == 4);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_traverse]
|
[cases.t1_rbyd_sparse_traverse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -8757,7 +8757,7 @@ code = '''
|
|||||||
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_permutations]
|
[cases.t1_rbyd_sparse_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -8843,7 +8843,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_traverse_permutations]
|
[cases.t1_rbyd_sparse_traverse_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -8935,7 +8935,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# Weights mixed with attributes
|
# Weights mixed with attributes
|
||||||
[cases.test_rbyd_sparse_mixed]
|
[cases.t1_rbyd_sparse_mixed]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -9607,7 +9607,7 @@ code = '''
|
|||||||
assert(lfsr_data_size(data_) == 2);
|
assert(lfsr_data_size(data_) == 2);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_mixed_traverse]
|
[cases.t1_rbyd_sparse_mixed_traverse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -9856,7 +9856,7 @@ code = '''
|
|||||||
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_mixed_permutations]
|
[cases.t1_rbyd_sparse_mixed_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -9967,7 +9967,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_mixed_traverse_permutations]
|
[cases.t1_rbyd_sparse_mixed_traverse_permutations]
|
||||||
defines.N = 'range(1, 8)'
|
defines.N = 'range(1, 8)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -10087,7 +10087,7 @@ code = '''
|
|||||||
|
|
||||||
# other sparse testing, various grow/shrink corner cases
|
# other sparse testing, various grow/shrink corner cases
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_grow_permutations]
|
[cases.t1_rbyd_sparse_grow_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.D = [1, 2]
|
defines.D = [1, 2]
|
||||||
@@ -10213,7 +10213,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_grupdate_permutations]
|
[cases.t1_rbyd_sparse_grupdate_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.D = [1, 2]
|
defines.D = [1, 2]
|
||||||
@@ -10348,7 +10348,7 @@ code = '''
|
|||||||
|
|
||||||
# I don't know if this actually happens in littlefs, but this tests a specific
|
# I don't know if this actually happens in littlefs, but this tests a specific
|
||||||
# code path in lfsr_rbyd_append (split altgt + shrinking)
|
# code path in lfsr_rbyd_append (split altgt + shrinking)
|
||||||
[cases.test_rbyd_sparse_grappend_permutations]
|
[cases.t1_rbyd_sparse_grappend_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.D = [1, 2]
|
defines.D = [1, 2]
|
||||||
@@ -10496,7 +10496,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_shrink_permutations]
|
[cases.t1_rbyd_sparse_shrink_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.D = [1, 2]
|
defines.D = [1, 2]
|
||||||
@@ -10622,7 +10622,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_shrupdate_permutations]
|
[cases.t1_rbyd_sparse_shrupdate_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.D = [1, 2]
|
defines.D = [1, 2]
|
||||||
@@ -10757,7 +10757,7 @@ code = '''
|
|||||||
|
|
||||||
# I don't know if this actually happens in littlefs, but this tests a specific
|
# I don't know if this actually happens in littlefs, but this tests a specific
|
||||||
# code path in lfsr_rbyd_append (split altgt + shrinking)
|
# code path in lfsr_rbyd_append (split altgt + shrinking)
|
||||||
[cases.test_rbyd_sparse_shrappend_permutations]
|
[cases.t1_rbyd_sparse_shrappend_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.D = [1, 2]
|
defines.D = [1, 2]
|
||||||
@@ -10905,7 +10905,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_delete_permutations]
|
[cases.t1_rbyd_sparse_delete_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -11058,7 +11058,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_sparse_attr_permutations]
|
[cases.t1_rbyd_sparse_attr_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -11236,7 +11236,7 @@ code = '''
|
|||||||
|
|
||||||
# Some more fuzzish testing
|
# Some more fuzzish testing
|
||||||
|
|
||||||
[cases.test_rbyd_fuzz_mixed]
|
[cases.t1_rbyd_fuzz_mixed]
|
||||||
defines.N = 'range(1, 33)'
|
defines.N = 'range(1, 33)'
|
||||||
defines.M = 3
|
defines.M = 3
|
||||||
defines.SAMPLES = 1000
|
defines.SAMPLES = 1000
|
||||||
@@ -11418,7 +11418,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_fuzz_sparse]
|
[cases.t1_rbyd_fuzz_sparse]
|
||||||
defines.N = 'range(1, 33)'
|
defines.N = 'range(1, 33)'
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.SAMPLES = 1000
|
defines.SAMPLES = 1000
|
||||||
@@ -11644,7 +11644,7 @@ code = '''
|
|||||||
|
|
||||||
### Wide-tag things ###
|
### Wide-tag things ###
|
||||||
|
|
||||||
[cases.test_rbyd_wide_lookup_permutations]
|
[cases.t1_rbyd_wide_lookup_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -11729,7 +11729,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_wide_remove_permutations]
|
[cases.t1_rbyd_wide_remove_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -11866,7 +11866,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_wide_replace_permutations]
|
[cases.t1_rbyd_wide_replace_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -12007,7 +12007,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_wide_mixed_lookup_permutations]
|
[cases.t1_rbyd_wide_mixed_lookup_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -12093,7 +12093,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_wide_mixed_remove_permutations]
|
[cases.t1_rbyd_wide_mixed_remove_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -12238,7 +12238,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_wide_mixed_replace_permutations]
|
[cases.t1_rbyd_wide_mixed_replace_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -12387,7 +12387,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_rbyd_wide_weighted_lookup_permutations]
|
[cases.t1_rbyd_wide_weighted_lookup_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -12471,7 +12471,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_wide_weighted_remove_permutations]
|
[cases.t1_rbyd_wide_weighted_remove_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -12610,7 +12610,7 @@ code = '''
|
|||||||
|
|
||||||
# NOTE if we separate physical/logical block sizes we may be able to
|
# NOTE if we separate physical/logical block sizes we may be able to
|
||||||
# use emubd's copy-on-write copy to speed this up significantly
|
# use emubd's copy-on-write copy to speed this up significantly
|
||||||
[cases.test_rbyd_wide_weighted_replace_permutations]
|
[cases.t1_rbyd_wide_weighted_replace_permutations]
|
||||||
defines.N = 'range(1, 7)'
|
defines.N = 'range(1, 7)'
|
||||||
defines.SHIFT = [0, 3, -3]
|
defines.SHIFT = [0, 3, -3]
|
||||||
# -1 => exhaust all permutations
|
# -1 => exhaust all permutations
|
||||||
@@ -5,7 +5,7 @@ defines.LOOKAHEAD_SIZE = 'lfs_alignup(BLOCK_COUNT / 8, 8)'
|
|||||||
|
|
||||||
|
|
||||||
# test an empty tree
|
# test an empty tree
|
||||||
[cases.test_btree_zero]
|
[cases.t2_btree_zero]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -36,7 +36,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# test an inlined tree
|
# test an inlined tree
|
||||||
[cases.test_btree_one]
|
[cases.t2_btree_one]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -75,7 +75,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# test a single-rbyd tree
|
# test a single-rbyd tree
|
||||||
[cases.test_btree_two]
|
[cases.t2_btree_two]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -121,7 +121,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_two_backwards]
|
[cases.t2_btree_two_backwards]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -168,7 +168,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# still a single-rbyd tree, just making sure it works
|
# still a single-rbyd tree, just making sure it works
|
||||||
[cases.test_btree_three]
|
[cases.t2_btree_three]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -222,7 +222,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_three_backwards]
|
[cases.t2_btree_three_backwards]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -278,7 +278,7 @@ code = '''
|
|||||||
|
|
||||||
# try larger trees, when exactly a tree splits depends on the disk geometry, so
|
# try larger trees, when exactly a tree splits depends on the disk geometry, so
|
||||||
# we don't really have a better way of testing multi-rbyd trees
|
# we don't really have a better way of testing multi-rbyd trees
|
||||||
[cases.test_btree_push]
|
[cases.t2_btree_push]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -330,7 +330,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_push_backwards]
|
[cases.t2_btree_push_backwards]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -382,7 +382,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_push_fuzz]
|
[cases.t2_btree_push_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -478,7 +478,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_push_sparse]
|
[cases.t2_btree_push_sparse]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -547,7 +547,7 @@ code = '''
|
|||||||
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_push_sparse_fuzz]
|
[cases.t2_btree_push_sparse_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
@@ -701,7 +701,7 @@ code = '''
|
|||||||
# test btree updates
|
# test btree updates
|
||||||
|
|
||||||
# try some small trees for easy corner cases first
|
# try some small trees for easy corner cases first
|
||||||
[cases.test_btree_update_one]
|
[cases.t2_btree_update_one]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -742,7 +742,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_update_two]
|
[cases.t2_btree_update_two]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -793,7 +793,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_update_three]
|
[cases.t2_btree_update_three]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -854,7 +854,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_update]
|
[cases.t2_btree_update]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -923,7 +923,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_update_fuzz]
|
[cases.t2_btree_update_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -1031,7 +1031,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_update_sparse]
|
[cases.t2_btree_update_sparse]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -1117,7 +1117,7 @@ code = '''
|
|||||||
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_update_sparse_fuzz]
|
[cases.t2_btree_update_sparse_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
@@ -1283,7 +1283,7 @@ code = '''
|
|||||||
|
|
||||||
# try some corner cases first, these are actually pretty tricky since we
|
# try some corner cases first, these are actually pretty tricky since we
|
||||||
# need to recognize when to collapse back into an inlined tree
|
# need to recognize when to collapse back into an inlined tree
|
||||||
[cases.test_btree_pop_one]
|
[cases.t2_btree_pop_one]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1336,7 +1336,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_pop_two]
|
[cases.t2_btree_pop_two]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1403,7 +1403,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_pop_two_other]
|
[cases.t2_btree_pop_two_other]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1470,7 +1470,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_pop_three]
|
[cases.t2_btree_pop_three]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -1551,7 +1551,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_pop]
|
[cases.t2_btree_pop]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.REMAINING = [64, 2, 1, 0]
|
defines.REMAINING = [64, 2, 1, 0]
|
||||||
if = 'N > REMAINING'
|
if = 'N > REMAINING'
|
||||||
@@ -1642,7 +1642,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_pop_backwards]
|
[cases.t2_btree_pop_backwards]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.REMAINING = [64, 2, 1, 0]
|
defines.REMAINING = [64, 2, 1, 0]
|
||||||
if = 'N > REMAINING'
|
if = 'N > REMAINING'
|
||||||
@@ -1732,7 +1732,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_pop_fuzz]
|
[cases.t2_btree_pop_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.REMAINING = [64, 2, 1, 0]
|
defines.REMAINING = [64, 2, 1, 0]
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
@@ -1842,7 +1842,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_pop_sparse]
|
[cases.t2_btree_pop_sparse]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.REMAINING = [64, 2, 1, 0]
|
defines.REMAINING = [64, 2, 1, 0]
|
||||||
@@ -1959,7 +1959,7 @@ code = '''
|
|||||||
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_pop_sparse_fuzz]
|
[cases.t2_btree_pop_sparse_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.REMAINING = [64, 2, 1, 0]
|
defines.REMAINING = [64, 2, 1, 0]
|
||||||
@@ -2135,7 +2135,7 @@ code = '''
|
|||||||
|
|
||||||
|
|
||||||
# test btree splits
|
# test btree splits
|
||||||
[cases.test_btree_split]
|
[cases.t2_btree_split]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -2190,7 +2190,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_split_fuzz]
|
[cases.t2_btree_split_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -2292,7 +2292,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_split_sparse]
|
[cases.t2_btree_split_sparse]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -2348,7 +2348,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_split_sparse_fuzz]
|
[cases.t2_btree_split_sparse_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
@@ -2512,7 +2512,7 @@ code = '''
|
|||||||
|
|
||||||
|
|
||||||
# Some more general fuzz testing
|
# Some more general fuzz testing
|
||||||
[cases.test_btree_general_fuzz]
|
[cases.t2_btree_general_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.SAMPLES = 100
|
defines.SAMPLES = 100
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -2639,7 +2639,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_general_sparse_fuzz]
|
[cases.t2_btree_general_sparse_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.SAMPLES = 100
|
defines.SAMPLES = 100
|
||||||
@@ -2826,7 +2826,7 @@ code = '''
|
|||||||
|
|
||||||
|
|
||||||
# test key-value btrees
|
# test key-value btrees
|
||||||
[cases.test_btree_find_zero]
|
[cases.t2_btree_find_zero]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -2857,7 +2857,7 @@ code = '''
|
|||||||
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
&id_, &tag_, &weight_, &data_) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find_one]
|
[cases.t2_btree_find_one]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -2904,7 +2904,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "0", 1) == 0);
|
assert(memcmp(buffer, "0", 1) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find_two]
|
[cases.t2_btree_find_two]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -2962,7 +2962,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "1", 1) == 0);
|
assert(memcmp(buffer, "1", 1) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find_three]
|
[cases.t2_btree_find_three]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -3031,7 +3031,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "2", 1) == 0);
|
assert(memcmp(buffer, "2", 1) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find_three_backwards]
|
[cases.t2_btree_find_three_backwards]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -3100,7 +3100,7 @@ code = '''
|
|||||||
assert(memcmp(buffer, "2", 1) == 0);
|
assert(memcmp(buffer, "2", 1) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find]
|
[cases.t2_btree_find]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -3163,7 +3163,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find_fuzz]
|
[cases.t2_btree_find_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -3284,7 +3284,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find_sparse]
|
[cases.t2_btree_find_sparse]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -3349,7 +3349,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find_sparse_fuzz]
|
[cases.t2_btree_find_sparse_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
@@ -3511,7 +3511,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# make sure we test finds with other operations
|
# make sure we test finds with other operations
|
||||||
[cases.test_btree_find_general_fuzz]
|
[cases.t2_btree_find_general_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.SAMPLES = 100
|
defines.SAMPLES = 100
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -3695,7 +3695,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_find_general_sparse_fuzz]
|
[cases.t2_btree_find_general_sparse_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
defines.W = 5
|
defines.W = 5
|
||||||
defines.SAMPLES = 100
|
defines.SAMPLES = 100
|
||||||
@@ -3932,7 +3932,7 @@ code = '''
|
|||||||
## B-tree traversal tests ##
|
## B-tree traversal tests ##
|
||||||
|
|
||||||
# some simple btree traversals
|
# some simple btree traversals
|
||||||
[cases.test_btree_traversal]
|
[cases.t2_btree_traversal]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -4050,7 +4050,7 @@ code = '''
|
|||||||
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
&tag_, &weight_, buffer, 4) => LFS_ERR_NOENT;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_btree_traversal_fuzz]
|
[cases.t2_btree_traversal_fuzz]
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
|
||||||
defines.SAMPLES = 10
|
defines.SAMPLES = 10
|
||||||
# -1 => all pseudo-random seeds
|
# -1 => all pseudo-random seeds
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
defines.LOOKAHEAD_SIZE = 'BLOCK_COUNT / 8'
|
defines.LOOKAHEAD_SIZE = 'BLOCK_COUNT / 8'
|
||||||
|
|
||||||
# test a single mroot
|
# test a single mroot
|
||||||
[cases.test_mtree_mroot]
|
[cases.t3_mtree_mroot]
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
lfsr_format(&lfs, cfg) => 0;
|
lfsr_format(&lfs, cfg) => 0;
|
||||||
@@ -12,7 +12,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# test a single mroot with attributes
|
# test a single mroot with attributes
|
||||||
[cases.test_mtree_mroot_attrs]
|
[cases.t3_mtree_mroot_attrs]
|
||||||
defines.N = [1, 3]
|
defines.N = [1, 3]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -51,7 +51,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# test a single mroot with forced compaction
|
# test a single mroot with forced compaction
|
||||||
[cases.test_mtree_mroot_compact]
|
[cases.t3_mtree_mroot_compact]
|
||||||
defines.N = [1, 3]
|
defines.N = [1, 3]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -93,7 +93,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# test a single mroot with many commits
|
# test a single mroot with many commits
|
||||||
[cases.test_mtree_mroot_many_commits]
|
[cases.t3_mtree_mroot_many_commits]
|
||||||
defines.N = [5, 5000]
|
defines.N = [5, 5000]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -135,7 +135,7 @@ code = '''
|
|||||||
## Splitting operations ##
|
## Splitting operations ##
|
||||||
|
|
||||||
# specific split corner cases
|
# specific split corner cases
|
||||||
[cases.test_mtree_uninline]
|
[cases.t3_mtree_uninline]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -207,7 +207,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_uninline_split]
|
[cases.t3_mtree_uninline_split]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -278,7 +278,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_split]
|
[cases.t3_mtree_split]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -377,7 +377,7 @@ code = '''
|
|||||||
|
|
||||||
|
|
||||||
# try creating a range of entries that may or may not split our mtree
|
# try creating a range of entries that may or may not split our mtree
|
||||||
[cases.test_mtree_split_many]
|
[cases.t3_mtree_split_many]
|
||||||
defines.N = [5, 10, 20, 40, 80, 160, 320]
|
defines.N = [5, 10, 20, 40, 80, 160, 320]
|
||||||
defines.FORCE_COMPACTION = [false, true]
|
defines.FORCE_COMPACTION = [false, true]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -459,7 +459,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# create random entries
|
# create random entries
|
||||||
[cases.test_mtree_split_fuzz]
|
[cases.t3_mtree_split_fuzz]
|
||||||
defines.N = [5, 10, 20, 40, 80, 160]
|
defines.N = [5, 10, 20, 40, 80, 160]
|
||||||
defines.FORCE_COMPACTION = [false, true]
|
defines.FORCE_COMPACTION = [false, true]
|
||||||
defines.SAMPLES = 100
|
defines.SAMPLES = 100
|
||||||
@@ -576,7 +576,7 @@ code = '''
|
|||||||
## Dropping operations ##
|
## Dropping operations ##
|
||||||
|
|
||||||
# specific drop corner cases
|
# specific drop corner cases
|
||||||
[cases.test_mtree_drop]
|
[cases.t3_mtree_drop]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -643,7 +643,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_compact]
|
[cases.t3_mtree_drop_compact]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -713,7 +713,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_uninline]
|
[cases.t3_mtree_drop_uninline]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -770,7 +770,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_uninline_split_l]
|
[cases.t3_mtree_drop_uninline_split_l]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -835,7 +835,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_uninline_split_r]
|
[cases.t3_mtree_drop_uninline_split_r]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -900,7 +900,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_uninline_split_both]
|
[cases.t3_mtree_drop_uninline_split_both]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -948,7 +948,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_split_l]
|
[cases.t3_mtree_drop_split_l]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -1040,7 +1040,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_split_r]
|
[cases.t3_mtree_drop_split_r]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -1132,7 +1132,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_split_both]
|
[cases.t3_mtree_drop_split_both]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -1209,7 +1209,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# try creating an mtree and then dropping mdirs
|
# try creating an mtree and then dropping mdirs
|
||||||
[cases.test_mtree_drop_many]
|
[cases.t3_mtree_drop_many]
|
||||||
defines.N = [5, 10, 20, 40, 80, 160, 320]
|
defines.N = [5, 10, 20, 40, 80, 160, 320]
|
||||||
defines.REMAINING = [20, 5, 1, 0]
|
defines.REMAINING = [20, 5, 1, 0]
|
||||||
if = 'N > REMAINING'
|
if = 'N > REMAINING'
|
||||||
@@ -1306,7 +1306,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# this one has some pretty nasty corner cases
|
# this one has some pretty nasty corner cases
|
||||||
[cases.test_mtree_repeated_drop]
|
[cases.t3_mtree_repeated_drop]
|
||||||
defines.N = [5, 10, 20, 40]
|
defines.N = [5, 10, 20, 40]
|
||||||
defines.FORCE_COMPACTION = [false, true]
|
defines.FORCE_COMPACTION = [false, true]
|
||||||
defines.CYCLES = 10
|
defines.CYCLES = 10
|
||||||
@@ -1390,7 +1390,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_fuzz]
|
[cases.t3_mtree_drop_fuzz]
|
||||||
defines.N = [5, 10, 20, 40, 80, 160]
|
defines.N = [5, 10, 20, 40, 80, 160]
|
||||||
defines.FORCE_COMPACTION = [false, true]
|
defines.FORCE_COMPACTION = [false, true]
|
||||||
defines.SAMPLES = 100
|
defines.SAMPLES = 100
|
||||||
@@ -1530,7 +1530,7 @@ code = '''
|
|||||||
## Relocation operations ##
|
## Relocation operations ##
|
||||||
|
|
||||||
# specific relocation corner cases
|
# specific relocation corner cases
|
||||||
[cases.test_mtree_relocate]
|
[cases.t3_mtree_relocate]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -1623,7 +1623,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_relocate_sibling_l]
|
[cases.t3_mtree_relocate_sibling_l]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -1715,7 +1715,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_relocate_sibling_r]
|
[cases.t3_mtree_relocate_sibling_r]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -1807,7 +1807,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_extend]
|
[cases.t3_mtree_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -1861,7 +1861,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_extend_twice]
|
[cases.t3_mtree_extend_twice]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -1920,7 +1920,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_relocate_mroot]
|
[cases.t3_mtree_relocate_mroot]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -1985,7 +1985,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_relocate_extend]
|
[cases.t3_mtree_relocate_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -2089,7 +2089,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_split_extend]
|
[cases.t3_mtree_split_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -2200,7 +2200,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_drop_extend]
|
[cases.t3_mtree_drop_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -2280,7 +2280,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_uninline_extend]
|
[cases.t3_mtree_uninline_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -2366,7 +2366,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_uninline_split_extend]
|
[cases.t3_mtree_uninline_split_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -2452,7 +2452,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# this fuzz covers a lot of configuratinos
|
# this fuzz covers a lot of configuratinos
|
||||||
[cases.test_mtree_relocating_fuzz]
|
[cases.t3_mtree_relocating_fuzz]
|
||||||
defines.N = [5, 10, 20, 40]
|
defines.N = [5, 10, 20, 40]
|
||||||
defines.FORCE_COMPACTION = [false, true]
|
defines.FORCE_COMPACTION = [false, true]
|
||||||
defines.BLOCK_CYCLES = [5, 2, 1]
|
defines.BLOCK_CYCLES = [5, 2, 1]
|
||||||
@@ -2605,7 +2605,7 @@ code = '''
|
|||||||
|
|
||||||
## Neighboring mdir updates ##
|
## Neighboring mdir updates ##
|
||||||
|
|
||||||
[cases.test_mtree_neighbor]
|
[cases.t3_mtree_neighbor]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||||
@@ -2651,7 +2651,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_neighbor_remove_l]
|
[cases.t3_mtree_neighbor_remove_l]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||||
@@ -2690,7 +2690,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_neighbor_remove_r]
|
[cases.t3_mtree_neighbor_remove_r]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||||
@@ -2730,7 +2730,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_neighbor_uninline]
|
[cases.t3_mtree_neighbor_uninline]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -2800,7 +2800,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_neighbor_uninline_split]
|
[cases.t3_mtree_neighbor_uninline_split]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -2870,7 +2870,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_neighbor_split]
|
[cases.t3_mtree_neighbor_split]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
@@ -2962,7 +2962,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_neighbor_extend]
|
[cases.t3_mtree_neighbor_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -3024,7 +3024,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_neighbor_relocate]
|
[cases.t3_mtree_neighbor_relocate]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -3116,7 +3116,7 @@ code = '''
|
|||||||
## mtree traversal ##
|
## mtree traversal ##
|
||||||
|
|
||||||
# test specific corner cases
|
# test specific corner cases
|
||||||
[cases.test_mtree_traversal]
|
[cases.t3_mtree_traversal]
|
||||||
defines.VALIDATE = [false, true]
|
defines.VALIDATE = [false, true]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -3211,7 +3211,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_traversal_uninline]
|
[cases.t3_mtree_traversal_uninline]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
defines.VALIDATE = [false, true]
|
defines.VALIDATE = [false, true]
|
||||||
@@ -3341,7 +3341,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_traversal_split]
|
[cases.t3_mtree_traversal_split]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
defines.VALIDATE = [false, true]
|
defines.VALIDATE = [false, true]
|
||||||
@@ -3471,7 +3471,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_traversal_extend]
|
[cases.t3_mtree_traversal_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -3584,7 +3584,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# larger traversal tests
|
# larger traversal tests
|
||||||
[cases.test_mtree_traversal_many]
|
[cases.t3_mtree_traversal_many]
|
||||||
defines.N = [5, 10, 20, 40, 80, 160, 320]
|
defines.N = [5, 10, 20, 40, 80, 160, 320]
|
||||||
defines.VALIDATE = [false, true]
|
defines.VALIDATE = [false, true]
|
||||||
defines.FORCE_COMPACTION = [false, true]
|
defines.FORCE_COMPACTION = [false, true]
|
||||||
@@ -3723,7 +3723,7 @@ code = '''
|
|||||||
lfsr_unmount(&lfs) => 0;
|
lfsr_unmount(&lfs) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_traversal_fuzz]
|
[cases.t3_mtree_traversal_fuzz]
|
||||||
defines.N = [5, 10, 20, 40, 80, 160]
|
defines.N = [5, 10, 20, 40, 80, 160]
|
||||||
defines.VALIDATE = [false, true]
|
defines.VALIDATE = [false, true]
|
||||||
defines.FORCE_COMPACTION = [false, true]
|
defines.FORCE_COMPACTION = [false, true]
|
||||||
@@ -3899,7 +3899,7 @@ code = '''
|
|||||||
## Cycle detection? ##
|
## Cycle detection? ##
|
||||||
|
|
||||||
# test that our cycle detector at least works in common cases
|
# test that our cycle detector at least works in common cases
|
||||||
[cases.test_mtree_traversal_mroot_cycle]
|
[cases.t3_mtree_traversal_mroot_cycle]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -3960,7 +3960,7 @@ code = '''
|
|||||||
## Magic consistency ##
|
## Magic consistency ##
|
||||||
|
|
||||||
# make sure our magic string ("littlefs") shows up in the same place (off=8)
|
# make sure our magic string ("littlefs") shows up in the same place (off=8)
|
||||||
[cases.test_mtree_magic]
|
[cases.t3_mtree_magic]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -3979,7 +3979,7 @@ code = '''
|
|||||||
assert(memcmp(&magic[8], "littlefs", 8) == 0);
|
assert(memcmp(&magic[8], "littlefs", 8) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_magic_extend]
|
[cases.t3_mtree_magic_extend]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -4031,7 +4031,7 @@ code = '''
|
|||||||
assert(memcmp(&magic[8], "littlefs", 8) == 0);
|
assert(memcmp(&magic[8], "littlefs", 8) == 0);
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mtree_magic_extend_twice]
|
[cases.t3_mtree_magic_extend_twice]
|
||||||
# this should be set so only one entry can fit in a metadata block
|
# this should be set so only one entry can fit in a metadata block
|
||||||
defines.SIZE = 'BLOCK_SIZE / 4'
|
defines.SIZE = 'BLOCK_SIZE / 4'
|
||||||
# make it so blocks relocate every two compacts
|
# make it so blocks relocate every two compacts
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
# config limit the block count by a couple blocks
|
# config limit the block count by a couple blocks
|
||||||
|
|
||||||
# test that we can alloc
|
# test that we can alloc
|
||||||
[cases.test_alloc_blocks]
|
[cases.t4_alloc_blocks]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -39,7 +39,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# test that we can realloc after an ack
|
# test that we can realloc after an ack
|
||||||
[cases.test_alloc_reuse]
|
[cases.t4_alloc_reuse]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
lfs_t lfs;
|
lfs_t lfs;
|
||||||
@@ -95,7 +95,7 @@ code = '''
|
|||||||
|
|
||||||
# test that we can alloc an mtree, the difference between this and mtree tests
|
# test that we can alloc an mtree, the difference between this and mtree tests
|
||||||
# is we expect this to be able to handle wrap-around
|
# is we expect this to be able to handle wrap-around
|
||||||
[cases.test_alloc_mtree]
|
[cases.t4_alloc_mtree]
|
||||||
in = 'lfs.c'
|
in = 'lfs.c'
|
||||||
code = '''
|
code = '''
|
||||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||||
Reference in New Issue
Block a user