Reverted lfsr_mtree_*lookupleaf -> lfsr_mtree_lookup

Why?

- lfsr_mtree_lookupleaf vs lfsr_mtree_commit is inconsistent. Should
  lfsr_mdir_commit be called lfsr_mtree_commitleaf? That'd be weird.

  It's reasonable to call mdirs entries of the mtree, but it'd be weird
  to call rbyds entries of btrees, so the inconsistency there is
  expected.

- lfsr_mtree_lookup/lfsr_mtree_lookupnext (going mtree -> mdir) aren't
  actually useful.

- The lfsr_mtree_namelookup/lfsr_mtree_namelookupleaf split is just more
  of a headache than it's worth.

Saves a tiny bit of code:

           code          stack          ctx
  before: 35768           2392          640
  after:  35764 (-0.0%)   2392 (+0.0%)  640 (+0.0%)
This commit is contained in:
Christopher Haster
2025-04-28 19:37:52 -05:00
parent 38f9f2541f
commit 6c8fa28ae4
3 changed files with 120 additions and 157 deletions
+103 -103
View File
@@ -186,7 +186,7 @@ code = '''
memset(buffer, 'b', SIZE);
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
@@ -205,7 +205,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[0] == 'a');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -229,7 +229,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[0] == 'a');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -286,13 +286,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -312,13 +312,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -395,13 +395,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -411,7 +411,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -431,13 +431,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -447,7 +447,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -497,7 +497,7 @@ code = '''
// try looking up each entry
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_data_t data;
uint8_t buffer[256];
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
@@ -508,7 +508,7 @@ code = '''
sprintf(name+1, "%03x", i);
mdir.mid += 1;
if (lfsr_mrid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) {
lfsr_mtree_lookupleaf(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1,
lfsr_mtree_lookup(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1,
&mdir) => 0;
}
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
@@ -521,7 +521,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// try looking up each entry
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, sizeof(buffer)) => 1;
for (lfs_size_t i = 0; i < N; i++) {
@@ -530,7 +530,7 @@ code = '''
sprintf(name+1, "%03x", i);
mdir.mid += 1;
if (lfsr_mrid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) {
lfsr_mtree_lookupleaf(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1,
lfsr_mtree_lookup(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1,
&mdir) => 0;
}
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
@@ -596,7 +596,7 @@ code = '''
// try looking up each entry
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_data_t data;
uint8_t buffer[256];
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
@@ -622,7 +622,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// try looking up each entry
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, sizeof(buffer)) => 1;
for (lfs_size_t i = 0; i < N; i++) {
@@ -705,7 +705,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -725,7 +725,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -797,7 +797,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -817,7 +817,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -880,7 +880,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -896,7 +896,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -974,7 +974,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -984,7 +984,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1000,7 +1000,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1010,7 +1010,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1088,13 +1088,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1114,13 +1114,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1213,7 +1213,7 @@ code = '''
// try looking up each entry
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_data_t data;
uint8_t buffer[256];
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
@@ -1239,7 +1239,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// try looking up each entry
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, sizeof(buffer)) => 1;
for (lfs_size_t i = 0; i < N; i++) {
@@ -1286,7 +1286,7 @@ code = '''
memset(buffer, 'b', SIZE);
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
@@ -1301,7 +1301,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// force mdir to compact twice, this should relocate
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_t old_mdir = mdir;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
@@ -1322,7 +1322,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[0] == 'a');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1332,7 +1332,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(4), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
@@ -1356,7 +1356,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[0] == 'a');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1366,7 +1366,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(4), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
@@ -1444,13 +1444,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1460,7 +1460,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
@@ -1480,13 +1480,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1496,7 +1496,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
@@ -1574,13 +1574,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1590,7 +1590,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
@@ -1610,13 +1610,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1626,7 +1626,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
@@ -1677,7 +1677,7 @@ code = '''
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
// assert that our entry is still in the mroot
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1696,7 +1696,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// assert that our rattr is still in the mroot
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1772,7 +1772,7 @@ code = '''
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
// assert that our rattr is still in the mroot
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1807,7 +1807,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// assert that our rattr is still in the mroot
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1889,7 +1889,7 @@ code = '''
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
// assert that our entry is still in the mroot
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -1916,7 +1916,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// assert that our rattr is still in the mroot
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2011,13 +2011,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2027,7 +2027,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
@@ -2047,13 +2047,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2063,7 +2063,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
@@ -2153,13 +2153,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2169,7 +2169,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2193,13 +2193,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2209,7 +2209,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, 1) => 1;
assert(buffer[0] == 'c');
lfsr_mtree_lookupleaf(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2296,7 +2296,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2316,7 +2316,7 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2355,7 +2355,7 @@ code = '''
memset(buffer, 'b', SIZE);
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
@@ -2377,7 +2377,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[0] == 'a');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2401,7 +2401,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[0] == 'a');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2468,13 +2468,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2494,13 +2494,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -2624,7 +2624,7 @@ code = '''
// try looking up each entry
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_data_t data;
uint8_t buffer[256];
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
@@ -2650,7 +2650,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// try looking up each entry
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, sizeof(buffer)) => 1;
for (lfs_size_t i = 0; i < N; i++) {
@@ -3588,7 +3588,7 @@ code = '''
memset(buffer, 'b', SIZE);
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
@@ -3672,7 +3672,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[0] == 'a');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(1), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -3692,7 +3692,7 @@ code = '''
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[0] == 'a');
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(1), NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -3811,13 +3811,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -3833,13 +3833,13 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -3977,19 +3977,19 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'b');
lfsr_mtree_lookupleaf(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -4005,19 +4005,19 @@ code = '''
assert(lfs.mroot.rbyd.weight == 0);
// assert that our entries are still in the mtree
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'a');
lfsr_mtree_lookupleaf(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
assert(buffer[1] == 'b');
lfsr_mtree_lookupleaf(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0;
assert(mdir.rbyd.weight == 1);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -4242,7 +4242,7 @@ code = '''
// try looking up each entry
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_data_t data;
uint8_t buffer[256];
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
@@ -4253,7 +4253,7 @@ code = '''
sprintf(name+1, "%03x", i);
mdir.mid += 1;
if (lfsr_mrid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) {
lfsr_mtree_lookupleaf(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1,
lfsr_mtree_lookup(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1,
&mdir) => 0;
}
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
@@ -4266,7 +4266,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// try looking up each entry
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, sizeof(buffer)) => 1;
for (lfs_size_t i = 0; i < N; i++) {
@@ -4275,7 +4275,7 @@ code = '''
sprintf(name+1, "%03x", i);
mdir.mid += 1;
if (lfsr_mrid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) {
lfsr_mtree_lookupleaf(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1,
lfsr_mtree_lookup(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1,
&mdir) => 0;
}
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
@@ -4406,7 +4406,7 @@ code = '''
// try looking up each entry
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_data_t data;
uint8_t buffer[256];
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
@@ -4432,7 +4432,7 @@ code = '''
lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0;
// try looking up each entry
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_BOOKMARK, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, sizeof(buffer)) => 1;
for (lfs_size_t i = 0; i < N; i++) {
@@ -4810,7 +4810,7 @@ code = '''
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
// assert that our entry is still in the mroot
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
@@ -4883,7 +4883,7 @@ code = '''
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
// assert that our rattr is still in the mroot
lfsr_mtree_lookupleaf(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0;
assert(mdir.rbyd.weight == 2);
lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, NULL, &data) => 0;
lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE;
+4 -4
View File
@@ -7989,7 +7989,7 @@ code = '''
assert(lfsr_mtree_weight(&lfs)
<= ((1+lfs_popc(BOOKENDS)) << lfs.mbits));
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight <= 1+lfs_popc(BOOKENDS));
// check that other files are unaffected
@@ -8125,7 +8125,7 @@ code = '''
assert(lfsr_mtree_weight(&lfs)
<= ((1+lfs_popc(BOOKENDS)) << lfs.mbits));
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight <= 1+lfs_popc(BOOKENDS));
// check that other files are unaffected
@@ -8275,7 +8275,7 @@ code = '''
assert(lfsr_mtree_weight(&lfs)
<= ((1+lfs_popc(BOOKENDS)) << lfs.mbits));
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight <= 1+lfs_popc(BOOKENDS));
// check that other files are unaffected
@@ -8431,7 +8431,7 @@ code = '''
assert(lfsr_mtree_weight(&lfs)
<= ((1+lfs_popc(BOOKENDS)) << lfs.mbits));
lfsr_mdir_t mdir;
lfsr_mtree_lookupleaf(&lfs, 0, &mdir) => 0;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
assert(mdir.rbyd.weight <= 1+lfs_popc(BOOKENDS));
// check that other files are unaffected