Reintroduced LFSR_RATTR_BUF

Mainly just for self-documentation reasons.

This may also make it easier to add LFSR_RATTR_BUF-specific asserts/
tweaks/etc, and helps future refactoring.

But functionally LFSR_RATTR_BUF is equivalent to LFSR_RATTR for now.

No code changes.
This commit is contained in:
Christopher Haster
2025-02-11 17:05:45 -06:00
parent 1b291e4e2d
commit a017c230dc
7 changed files with 929 additions and 922 deletions
+19 -12
View File
@@ -2111,6 +2111,13 @@ typedef struct lfsr_rattr {
.weight=_weight, \
.u.etc=_etc})
#define LFSR_RATTR_BUF(_tag, _weight, _buffer, _size) \
((lfsr_rattr_t){ \
.tag=_tag, \
.data_count=(uint16_t){_size}, \
.weight=_weight, \
.u.buffer=(const void*)(_buffer)})
#define LFSR_RATTR_DATA(_tag, _weight, _data) \
((lfsr_rattr_t){ \
.tag=_tag, \
@@ -5724,12 +5731,12 @@ static int lfsr_btree_commit__(lfs_t *lfs, lfsr_btree_t *btree,
if (!lfsr_rbyd_trunk(&parent)) {
lfsr_data_t branch_l = lfsr_data_frombranch(
&rbyd__, &bctx->buf[0*LFSR_BRANCH_DSIZE]);
bctx->rattrs[rattr_count_++] = LFSR_RATTR(
bctx->rattrs[rattr_count_++] = LFSR_RATTR_BUF(
LFSR_TAG_BRANCH, +rbyd__.weight,
branch_l.u.buffer, lfsr_data_size(branch_l));
lfsr_data_t branch_r = lfsr_data_frombranch(
&sibling, &bctx->buf[1*LFSR_BRANCH_DSIZE]);
bctx->rattrs[rattr_count_++] = LFSR_RATTR(
bctx->rattrs[rattr_count_++] = LFSR_RATTR_BUF(
LFSR_TAG_BRANCH, +sibling.weight,
branch_r.u.buffer, lfsr_data_size(branch_r));
if (lfsr_tag_suptype(split_tag) == LFSR_TAG_NAME) {
@@ -5742,7 +5749,7 @@ static int lfsr_btree_commit__(lfs_t *lfs, lfsr_btree_t *btree,
bid_ -= pid - (rbyd_.weight-1);
lfsr_data_t branch_l = lfsr_data_frombranch(
&rbyd__, &bctx->buf[0*LFSR_BRANCH_DSIZE]);
bctx->rattrs[rattr_count_++] = LFSR_RATTR(
bctx->rattrs[rattr_count_++] = LFSR_RATTR_BUF(
LFSR_TAG_BRANCH, 0,
branch_l.u.buffer, lfsr_data_size(branch_l));
if (rbyd__.weight != rbyd_.weight) {
@@ -5752,7 +5759,7 @@ static int lfsr_btree_commit__(lfs_t *lfs, lfsr_btree_t *btree,
}
lfsr_data_t branch_r = lfsr_data_frombranch(
&sibling, &bctx->buf[1*LFSR_BRANCH_DSIZE]);
bctx->rattrs[rattr_count_++] = LFSR_RATTR(
bctx->rattrs[rattr_count_++] = LFSR_RATTR_BUF(
LFSR_TAG_BRANCH, +sibling.weight,
branch_r.u.buffer, lfsr_data_size(branch_r));
if (lfsr_tag_suptype(split_tag) == LFSR_TAG_NAME) {
@@ -5838,7 +5845,7 @@ static int lfsr_btree_commit__(lfs_t *lfs, lfsr_btree_t *btree,
LFSR_TAG_RM, -sibling.weight, NULL, 0);
lfsr_data_t branch = lfsr_data_frombranch(
&rbyd__, &bctx->buf[0*LFSR_BRANCH_DSIZE]);
bctx->rattrs[rattr_count_++] = LFSR_RATTR(
bctx->rattrs[rattr_count_++] = LFSR_RATTR_BUF(
LFSR_TAG_BRANCH, 0,
branch.u.buffer, lfsr_data_size(branch));
if (rbyd__.weight != rbyd_.weight) {
@@ -5880,7 +5887,7 @@ static int lfsr_btree_commit__(lfs_t *lfs, lfsr_btree_t *btree,
} else {
lfsr_data_t branch = lfsr_data_frombranch(
&rbyd__, &bctx->buf[0*LFSR_BRANCH_DSIZE]);
bctx->rattrs[rattr_count_++] = LFSR_RATTR(
bctx->rattrs[rattr_count_++] = LFSR_RATTR_BUF(
LFSR_TAG_BRANCH, 0,
branch.u.buffer, lfsr_data_size(branch));
if (rbyd__.weight != rbyd_.weight) {
@@ -7059,7 +7066,7 @@ static int lfsr_rbyd_appendgdelta(lfs_t *lfs, lfsr_rbyd_t *rbyd) {
// append to our rbyd, replacing any existing delta
lfs_size_t size = lfs_memlen(grmdelta_, LFSR_GRM_DSIZE);
err = lfsr_rbyd_appendrattr(lfs, rbyd, -1, LFSR_RATTR(
err = lfsr_rbyd_appendrattr(lfs, rbyd, -1, LFSR_RATTR_BUF(
// opportunistically remove this tag if delta is all zero
(size == 0)
? LFSR_TAG_RM | LFSR_TAG_GRMDELTA
@@ -7670,7 +7677,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir,
LFSR_TAG_RM
| LFSR_TAG_ATTR(attrs_[j].type), 0,
NULL, 0)
: LFSR_RATTR(
: LFSR_RATTR_BUF(
LFSR_TAG_ATTR(attrs_[j].type), 0,
attrs_[j].buffer,
lfsr_attr_size(&attrs_[j])));
@@ -8619,7 +8626,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
err = lfsr_mdir_commit__(lfs, &mrootanchor_, -2, -1,
-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_MAGIC, 0,
"littlefs", 8),
LFSR_RATTR(
@@ -10741,7 +10748,7 @@ int lfsr_setattr(lfs_t *lfs, const char *path, uint8_t type,
// commit our attr
lfs_alloc_ckpoint(lfs);
err = lfsr_mdir_commit(lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_ATTR(type), 0,
buffer, size)));
if (err) {
@@ -13802,10 +13809,10 @@ static int lfsr_formatinited(lfs_t *lfs) {
// - any format-time configuration
// - the root's bookmark tag, which reserves did = 0 for the root
err = lfsr_rbyd_appendrattrs(lfs, &rbyd, -1, -1, -1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_MAGIC, 0,
"littlefs", 8),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_VERSION, 0,
((const uint8_t[2]){
LFS_DISK_VERSION_MAJOR,
+3 -3
View File
@@ -76,7 +76,7 @@ code = '''
// add to btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
@@ -1851,7 +1851,7 @@ code = '''
// add to btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
@@ -3626,7 +3626,7 @@ code = '''
// add to btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
+125 -125
View File
@@ -55,7 +55,7 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -97,9 +97,9 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -147,9 +147,9 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -198,11 +198,11 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 2, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "c", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -257,11 +257,11 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "c", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -321,7 +321,7 @@ code = '''
lfs_size_t n = 0;
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
n += 1;
@@ -372,7 +372,7 @@ code = '''
lfs_size_t n = 0;
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+((N-1-i) % 26)}, 1))) => 0;
n += 1;
@@ -438,7 +438,7 @@ code = '''
// add to btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
@@ -508,7 +508,7 @@ code = '''
lfs_size_t n = 0;
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i*W, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +W,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
n += 1;
@@ -600,7 +600,7 @@ code = '''
// add to btree
lfsr_btree_commit(&lfs, &btree, weighted_bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +weight,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
@@ -711,10 +711,10 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
// update the tree
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
"A", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
@@ -757,16 +757,16 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
// update the tree
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
"A", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
"B", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
@@ -816,22 +816,22 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 2, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "c", 1))) => 0;
// update the tree
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
"A", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
"B", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 2, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
"C", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
@@ -890,14 +890,14 @@ code = '''
lfsr_btree_init(&btree);
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
// update the tree
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
&(uint8_t){'A'+(i % 26)}, 1))) => 0;
}
@@ -948,7 +948,7 @@ code = '''
lfsr_btree_init(&btree);
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
@@ -969,7 +969,7 @@ code = '''
// update btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
&(uint8_t){'A'+(i % 26)}, 1))) => 0;
@@ -1035,14 +1035,14 @@ code = '''
lfsr_btree_init(&btree);
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i*W, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +W,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
// update the tree
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i*W+W-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
&(uint8_t){'A'+(i % 26)}, 1))) => 0;
}
@@ -1109,7 +1109,7 @@ code = '''
lfsr_btree_init(&btree);
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i*W, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +W,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
@@ -1141,7 +1141,7 @@ code = '''
// update btree
lfsr_btree_commit(&lfs, &btree,
weighted_bid+sim_weights[bid]-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
&(uint8_t){'A'+(i % 26)}, 1),
LFSR_RATTR(
@@ -1252,7 +1252,7 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
// pop!
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_RM, -1, NULL, 0))) => 0;
@@ -1273,7 +1273,7 @@ code = '''
// try to putting it back to see if things still work
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "A", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "A", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -1309,9 +1309,9 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
// pop!
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_RM, -1, NULL, 0))) => 0;
@@ -1339,7 +1339,7 @@ code = '''
// try to putting it back to see if things still work
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "B", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "B", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -1382,9 +1382,9 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
// pop!
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_RM, -1, NULL, 0))) => 0;
@@ -1412,7 +1412,7 @@ code = '''
// try to putting it back to see if things still work
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "A", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "A", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -1455,11 +1455,11 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "a", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "a", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "b", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 2, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "c", 1))) => 0;
// pop!
lfsr_btree_commit(&lfs, &btree, 2, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_RM, -1, NULL, 0))) => 0;
@@ -1494,7 +1494,7 @@ code = '''
// try to putting it back to see if things still work
lfsr_btree_commit(&lfs, &btree, 2, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "C", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "C", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -1548,7 +1548,7 @@ code = '''
lfsr_btree_init(&btree);
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
@@ -1585,7 +1585,7 @@ code = '''
// try recovering
lfsr_btree_commit(&lfs, &btree, REMAINING, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "R", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "R", 1))) => 0;
for (lfs_size_t i = 0; i < REMAINING; i++) {
lfsr_btree_lookup(&lfs, &btree, i,
@@ -1628,7 +1628,7 @@ code = '''
lfsr_btree_init(&btree);
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
@@ -1665,7 +1665,7 @@ code = '''
// try recovering
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "R", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "R", 1))) => 0;
lfsr_btree_lookup(&lfs, &btree, 0,
&tag_, &weight_, &data_) => 0;
@@ -1711,7 +1711,7 @@ code = '''
lfsr_btree_init(&btree);
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
@@ -1800,7 +1800,7 @@ code = '''
lfsr_btree_init(&btree);
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i*W, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +W,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
@@ -1836,7 +1836,7 @@ code = '''
// try recovering
lfsr_btree_commit(&lfs, &btree, REMAINING*W, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +W, "R", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +W, "R", 1))) => 0;
for (lfs_size_t i = 0; i < REMAINING; i++) {
lfsr_btree_lookup(&lfs, &btree, i*W+W-1,
@@ -1927,7 +1927,7 @@ code = '''
}
lfsr_btree_commit(&lfs, &btree, weighted_bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +weight,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
@@ -2057,16 +2057,16 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(0 % 26)}, 1))) => 0;
lfs_size_t n = 1;
for (lfs_size_t i = 1; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'a'+((i-1) % 26)}, 1),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+((i-0) % 26)}, 1))) => 0;
n += 1;
@@ -2117,7 +2117,7 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "_", 1))) => 0;
// set up a simulation to compare against
//
@@ -2135,10 +2135,10 @@ code = '''
// split btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'a'+(i % 26)}, 1),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'A'+(i % 26)}, 1))) => 0;
@@ -2207,16 +2207,16 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +W,
&(uint8_t){'a'+(0 % 26)}, 1))) => 0;
lfs_size_t n = 1;
for (lfs_size_t i = 1; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, (i-1)*W+W-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'a'+((i-1) % 26)}, 1),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +W,
&(uint8_t){'a'+((i-0) % 26)}, 1))) => 0;
n += 1;
@@ -2268,7 +2268,7 @@ code = '''
lfsr_btree_t btree;
lfsr_btree_init(&btree);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +W, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +W, "_", 1))) => 0;
// set up a simulation to compare against
//
@@ -2302,10 +2302,10 @@ code = '''
LFSR_RATTR(
LFSR_TAG_GROW, +weight1-sim_weights[bid],
NULL, 0),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'a'+(i % 26)}, 1),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +weight2,
&(uint8_t){'A'+(i % 26)}, 1))) => 0;
@@ -2449,19 +2449,19 @@ code = '''
// the extra push here avoids trying to inline the big entry
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "_", 1))) => 0;
uint8_t buf1[SIZE];
memset(buf1, 'a', SIZE);
uint8_t buf2[SIZE];
memset(buf2, 'b', SIZE);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, buf1, SIZE),
LFSR_RATTR(LFSR_TAG_DATA, +1, buf2, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, buf1, SIZE),
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, buf2, SIZE))) => 0;
// force compaction
btree.eoff = -1;
memset(buf2, 'b', SIZE);
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
buf2, SIZE))) => 0;
assert(btree.weight == 2);
@@ -2517,19 +2517,19 @@ code = '''
// the extra push here avoids trying to inline the big entry
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "_", 1))) => 0;
uint8_t buf1[SIZE];
memset(buf1, 'a', SIZE);
uint8_t buf2[SIZE];
memset(buf2, 'b', SIZE);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, buf1, SIZE),
LFSR_RATTR(LFSR_TAG_DATA, +1, buf2, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, buf1, SIZE),
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, buf2, SIZE))) => 0;
// force compaction
btree.eoff = -1;
memset(buf2, 'b', SIZE);
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
buf2, SIZE))) => 0;
assert(btree.weight == 2);
@@ -2588,14 +2588,14 @@ code = '''
// the extra push here avoids trying to inline the big entry
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "_", 1))) => 0;
uint8_t buf1[SIZE];
memset(buf1, 'a', SIZE);
uint8_t buf2[SIZE];
memset(buf2, 'b', SIZE);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, buf1, SIZE),
LFSR_RATTR(LFSR_TAG_DATA, +1, buf2, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, buf1, SIZE),
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, buf2, SIZE))) => 0;
// force compaction, causing a split, but while we're splitting,
// also remove an entry, bringing the split rbyd down to zero mid split
@@ -2652,30 +2652,30 @@ code = '''
// the extra push here avoids trying to inline the big entry
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "_", 1))) => 0;
uint8_t buf1[SIZE];
memset(buf1, 'a', SIZE);
uint8_t buf2[SIZE];
memset(buf2, 'b', SIZE);
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, buf1, SIZE),
LFSR_RATTR(LFSR_TAG_DATA, +1, buf2, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, buf1, SIZE),
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, buf2, SIZE))) => 0;
// force compaction
btree.eoff = -1;
memset(buf2, 'b', SIZE);
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
buf2, SIZE))) => 0;
assert(btree.weight == 2);
// now make both entries small so they should be merged if either compacts
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
"a", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
"b", 1))) => 0;
@@ -2747,7 +2747,7 @@ code = '''
if (op == 0 || bid == sim_size) {
// push to btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
@@ -2759,7 +2759,7 @@ code = '''
} else if (op == 1) {
// update btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
@@ -2864,7 +2864,7 @@ code = '''
if (op == 0 || bid == sim_size) {
// push to btree
lfsr_btree_commit(&lfs, &btree, weighted_bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +weight,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
@@ -2880,7 +2880,7 @@ code = '''
// update btree
lfsr_btree_commit(&lfs, &btree,
weighted_bid+sim_weights[bid]-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
&(uint8_t){'a'+(i % 26)}, 1),
LFSR_RATTR(
@@ -3040,7 +3040,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, "aaa", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "0", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "0", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -3093,13 +3093,13 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, "aaa", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "0", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "0", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, "0", 1),
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "0", 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, "aab", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "1", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "1", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -3160,19 +3160,19 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, "aaa", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "0", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "0", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, "0", 1),
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "0", 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
1*DID, "aab", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "1", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "1", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 1, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, "1", 1),
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "1", 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
2*DID, "aac", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "2", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "2", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -3241,19 +3241,19 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, "aaa", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "0", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "0", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, "1", 1),
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "1", 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
2*DID, "aac", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "2", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "2", 1))) => 0;
lfsr_btree_commit(&lfs, &btree, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, 0, "0", 1),
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "0", 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
1*DID, "aab", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "1", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "1", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.weight,
btree.blocks[0],
@@ -3326,7 +3326,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(0 % 10)}, 1))) => 0;
lfs_size_t n = 1;
@@ -3335,13 +3335,13 @@ code = '''
'a'+((i/26/26) % 26), 'a'+((i/26) % 26), 'a'+(i % 26)
};
lfsr_btree_commit(&lfs, &btree, i-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+((i-1) % 10)}, 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
i*DID, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+((i-0) % 10)}, 1))) => 0;
n += 1;
@@ -3397,7 +3397,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, "___", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "_", 1))) => 0;
// set up a simulation to compare against
//
@@ -3431,13 +3431,13 @@ code = '''
// split btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1))) => 0;
@@ -3515,7 +3515,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +W,
0, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(0 % 10)}, 1))) => 0;
lfs_size_t n = 1;
@@ -3524,13 +3524,13 @@ code = '''
'a'+((i/26/26) % 26), 'a'+((i/26) % 26), 'a'+(i % 26)
};
lfsr_btree_commit(&lfs, &btree, (i-1)*W+W-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+((i-1) % 10)}, 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +W,
i*DID, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+((i-0) % 10)}, 1))) => 0;
n += 1;
@@ -3587,7 +3587,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +W,
0, "___", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "_", 1))) => 0;
// set up a simulation to compare against
//
@@ -3637,13 +3637,13 @@ code = '''
LFSR_RATTR(
LFSR_TAG_GROW, +weight1-sim_weights[bid],
NULL, 0),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1),
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +weight2,
0, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1))) => 0;
@@ -3744,7 +3744,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, "___", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "_", 1))) => 0;
// set up a simulation to compare against
//
@@ -3795,7 +3795,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1))) => 0;
} else {
@@ -3806,7 +3806,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +1,
0, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1))) => 0;
}
@@ -3821,7 +3821,7 @@ code = '''
} else if (op == 1) {
// update btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1))) => 0;
@@ -3901,7 +3901,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +W,
0, "___", 3),
LFSR_RATTR(LFSR_TAG_DATA, 0, "_", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, 0, "_", 1))) => 0;
// set up a simulation to compare against
//
@@ -3964,7 +3964,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +weight,
0, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1))) => 0;
} else {
@@ -3975,7 +3975,7 @@ code = '''
LFSR_RATTR_NAME(
LFSR_TAG_NAME, +weight,
0, name, 3),
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1))) => 0;
}
@@ -3994,7 +3994,7 @@ code = '''
// update btree
lfsr_btree_commit(&lfs, &btree,
weighted_bid+sim_weights[bid]-1, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_SUB | LFSR_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1),
LFSR_RATTR(
@@ -4105,7 +4105,7 @@ code = '''
lfs_size_t n = 0;
for (lfs_size_t i = 0; i < N; i++) {
lfsr_btree_commit(&lfs, &btree, i, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
n += 1;
@@ -4243,7 +4243,7 @@ code = '''
// add to btree
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_DATA, +1,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
+2 -2
View File
@@ -1101,7 +1101,7 @@ code = '''
.bshrub=&file.b,
.rid=0,
.rattrs=((lfsr_rattr_t[]){
LFSR_RATTR(LFSR_TAG_DATA, +1, "?", 1)}),
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "?", 1)}),
.rattr_count=1}), 0))) => 0;
lfsr_mdir_commit(&lfs, &file.b.o.mdir, LFSR_RATTRS(
LFSR_RATTR(
@@ -1232,7 +1232,7 @@ code = '''
lfs_alloc_ckpoint(&lfs);
lfsr_rbyd_alloc(&lfs, &file.b.shrub) => 0;
lfsr_rbyd_commit(&lfs, &file.b.shrub, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_DATA, +1, "?", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_DATA, +1, "?", 1))) => 0;
lfsr_rbyd_commit(&lfs, &file.b.shrub, 0, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_RM, -1, NULL, 0))) => 0;
lfsr_mdir_commit(&lfs, &file.b.o.mdir, LFSR_RATTRS(
+4 -4
View File
@@ -569,7 +569,7 @@ code = '''
// is not a user API
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_MAGIC, 0,
"lottlefs", 8))) => 0;
lfsr_unmount(&lfs) => 0;
@@ -593,7 +593,7 @@ code = '''
// is not a user API
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_VERSION, 0,
((const uint8_t[2]){
LFS_DISK_VERSION_MAJOR+1,
@@ -619,7 +619,7 @@ code = '''
// is not a user API
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_VERSION, 0,
((const uint8_t[2]){
LFS_DISK_VERSION_MAJOR,
@@ -1086,7 +1086,7 @@ code = '''
// create an unknown config
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_CONFIG + 0x13, 0,
"oh no!", strlen("oh no!")))) => 0;
lfsr_unmount(&lfs) => 0;
+50 -50
View File
@@ -37,7 +37,7 @@ code = '''
for (lfs_size_t i = 0; i < N; i++) {
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_ATTR(i), 0,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
@@ -82,7 +82,7 @@ code = '''
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_ATTR(i), 0,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
}
@@ -124,7 +124,7 @@ code = '''
for (lfs_size_t i = 0; i < N; i++) {
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(
LFSR_RATTR_BUF(
LFSR_TAG_ATTR(1), 0,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
lfsr_data_t data;
@@ -173,18 +173,18 @@ code = '''
uint8_t buffer[SIZE];
memset(buffer, 'a', SIZE);
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
memset(buffer, 'b', SIZE);
lfsr_mdir_t mdir;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "c", 1))) => 0;
// assert mdirs were unininlined
assert(lfs.mtree.weight == (1 << lfs.mdir_bits));
@@ -269,7 +269,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -358,7 +358,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -378,7 +378,7 @@ code = '''
// force mdir to compact
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "e", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "e", 1))) => 0;
// assert mdir was split correctly
assert(lfs.mtree.weight == (3 << lfs.mdir_bits));
@@ -675,7 +675,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -765,7 +765,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -932,7 +932,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -1046,7 +1046,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -1273,18 +1273,18 @@ code = '''
uint8_t buffer[SIZE];
memset(buffer, 'a', SIZE);
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
memset(buffer, 'b', SIZE);
lfsr_mdir_t mdir;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "c", 1))) => 0;
// assert mdirs were unininlined
assert(lfs.mtree.weight == (1 << lfs.mdir_bits));
@@ -1296,10 +1296,10 @@ code = '''
lfsr_mdir_t old_mdir = mdir;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(4), 0, "d", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(4), 0, "d", 1))) => 0;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(5), 0, "e", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(5), 0, "e", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0);
@@ -1408,7 +1408,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -1422,10 +1422,10 @@ code = '''
lfsr_mdir_t old_mdir = mdir;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "d", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "d", 1))) => 0;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "e", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "e", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0);
@@ -1538,7 +1538,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -1552,10 +1552,10 @@ code = '''
lfsr_mdir_t old_mdir = mdir;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "d", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "d", 1))) => 0;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "e", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "e", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0);
@@ -1660,10 +1660,10 @@ code = '''
lfsr_mdir_t old_mroot = lfs.mroot;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "b", 1))) => 0;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "c", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
@@ -1737,10 +1737,10 @@ code = '''
lfsr_mdir_t old_mroot = lfs.mroot;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "b", 1))) => 0;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "c", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
@@ -1749,16 +1749,16 @@ code = '''
old_mroot = lfs.mroot;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "d", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "d", 1))) => 0;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(4), 0, "e", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(4), 0, "e", 1))) => 0;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(5), 0, "f", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(5), 0, "f", 1))) => 0;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(6), 0, "g", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(6), 0, "g", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
@@ -1861,10 +1861,10 @@ code = '''
lfsr_mdir_t old_mroot = lfs.mroot;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "b", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "b", 1))) => 0;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "c", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
@@ -1872,10 +1872,10 @@ code = '''
old_mroot = lfs.mroot;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "d", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "d", 1))) => 0;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(4), 0, "e", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(4), 0, "e", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
@@ -1970,7 +1970,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -1987,10 +1987,10 @@ code = '''
lfsr_mdir_t old_mdir = mdir;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "d", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "d", 1))) => 0;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "e", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "e", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0);
// assert mroot relocated
@@ -2105,7 +2105,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -2129,10 +2129,10 @@ code = '''
lfsr_mdir_t old_mdir = mdir;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "e", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "e", 1))) => 0;
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "f", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "f", 1))) => 0;
// assert we relocated
assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0);
// assert mroot relocated
@@ -2255,7 +2255,7 @@ code = '''
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mdirs were unininlined and split
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
@@ -2272,7 +2272,7 @@ code = '''
// force mdir to compact twice, this should relocate
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, "d", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "d", 1))) => 0;
// force mdir to compact while we're removing
mdir.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
@@ -2342,19 +2342,19 @@ code = '''
uint8_t buffer[SIZE];
memset(buffer, 'a', SIZE);
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
memset(buffer, 'b', SIZE);
lfsr_mdir_t mdir;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, buffer, SIZE))) => 0;
// force mroot to compact, this should both uninline and relocate
lfsr_mdir_t old_mroot = lfs.mroot;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(3), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "c", 1))) => 0;
// assert mroot relocated
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
@@ -2449,7 +2449,7 @@ code = '''
lfsr_mdir_t old_mroot = lfs.mroot;
lfs.mroot.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
// assert mroot relocated
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
@@ -3575,13 +3575,13 @@ code = '''
uint8_t buffer[SIZE];
memset(buffer, 'a', SIZE);
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
memset(buffer, 'b', SIZE);
lfsr_mdir_t mdir;
lfsr_mtree_lookup(&lfs, 0, &mdir) => 0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
LFSR_RATTR(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
// force mroot to compact
lfs.mroot.rbyd.eoff = -1;
+726 -726
View File
File diff suppressed because it is too large Load Diff