rattrs: Reverted implicit lfs3_path_namelen in LFS3_FROM_NAME

I don't think there was anything inherently wrong with this idea, but:

- The code savings (28 bytes) was surprisingly small.

- Expecting lfs3_path_namelen may be a headache for future
  non-null-terminated string support.

- Even if you don't care about non-null-terminated strings, precomputing
  strlen as early as possible is a good idea to minimize repeated strlen
  scans.

Reverting adds a bit of code:

                 code          stack          ctx
  before:       35288           2176          660
  after:        35316 (+0.1%)   2176 (+0.0%)  660 (+0.0%)

                 code          stack          ctx
  gbmap before: 38140           2192          772
  gbmap after:  38168 (+0.1%)   2192 (+0.0%)  772 (+0.0%)
This commit is contained in:
Christopher Haster
2025-11-30 01:19:27 -06:00
parent 03df517dae
commit b28b7c12aa
4 changed files with 316 additions and 226 deletions
+12 -10
View File
@@ -3254,7 +3254,6 @@ static int lfs3_rbyd_appendtag(lfs3_t *lfs3, lfs3_rbyd_t *rbyd,
#endif
// needed in lfs3_rbyd_appendrattr_
static inline lfs3_size_t lfs3_path_namelen(const char *path);
static lfs3_data_t lfs3_data_frombranch(const lfs3_rbyd_t *branch,
uint8_t buffer[static LFS3_BRANCH_DSIZE]);
static lfs3_data_t lfs3_data_frombtree(const lfs3_btree_t *btree,
@@ -3386,9 +3385,7 @@ static int lfs3_rbyd_appendrattr_(lfs3_t *lfs3, lfs3_rbyd_t *rbyd,
// name?
} else if (from == LFS3_FROM_NAME) {
ctx.u.name.datas[0] = lfs3_data_fromleb128(args[0], ctx.u.name.buf);
ctx.u.name.datas[1] = LFS3_DATA_BUF(
(const char*)args[1],
lfs3_path_namelen((const char*)args[1]));
ctx.u.name.datas[1] = LFS3_DATA_BUF((const uint8_t*)args[1], args[2]);
datas = ctx.u.name.datas;
data_count = 2;
@@ -11324,11 +11321,12 @@ int lfs3_mkdir(lfs3_t *lfs3, const char *path) {
// process
lfs3_grm_pop(lfs3);
err = lfs3_mdir_commit(lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK12 | LFS3_TAG_DIR,
LFS3_RATTR(4, LFS3_tag_MASK12 | LFS3_TAG_DIR,
(tag == LFS3_ERR_NOENT) ? +1 : 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(name_len),
LFS3_RATTR(2, LFS3_TAG_DID, 0, LFS3_FROM_LEB128),
LFS3_RATTR_ARG(did_),
LFS3_RATTR_NULL));
@@ -11476,11 +11474,12 @@ int lfs3_remove(lfs3_t *lfs3, const char *path) {
// we use a create+delete here to also clear any rattrs
// and trim the entry size
(zombie)
? LFS3_RATTR(3, LFS3_tag_MASK12 | LFS3_TAG_STICKYNOTE, 0,
? LFS3_RATTR(4, LFS3_tag_MASK12 | LFS3_TAG_STICKYNOTE, 0,
LFS3_FROM_NAME)
: LFS3_RATTR(3, LFS3_tag_RM, -1),
: LFS3_RATTR(4, LFS3_tag_RM, -1),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL));
if (err) {
return err;
@@ -11651,11 +11650,12 @@ int lfs3_rename(lfs3_t *lfs3, const char *old_path, const char *new_path) {
// rename our entry, copying all tags associated with the old rid to the
// new rid, while also marking the old rid for removal
err = lfs3_mdir_commit(lfs3, &new_mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK12 | old_tag,
LFS3_RATTR(4, LFS3_tag_MASK12 | old_tag,
(new_tag == LFS3_ERR_NOENT) ? +1 : 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(new_did),
LFS3_RATTR_ARG(new_path),
LFS3_RATTR_ARG(lfs3_path_namelen(new_path)),
LFS3_RATTR(2, LFS3_tag_MOVE, 0),
LFS3_RATTR_ARG(&old_mdir),
LFS3_RATTR_NULL));
@@ -12410,9 +12410,10 @@ int lfs3_file_opencfg_(lfs3_t *lfs3, lfs3_file_t *file,
file->b.h.flags |= LFS3_o_UNSYNC;
err = lfs3_file_sync_(lfs3, file, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL));
if (err) {
goto failed;
@@ -12422,9 +12423,10 @@ int lfs3_file_opencfg_(lfs3_t *lfs3, lfs3_file_t *file,
// create a stickynote entry if we don't have one, this
// reserves the mid until first sync
err = lfs3_mdir_commit(lfs3, &file->b.h.mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_STICKYNOTE, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_STICKYNOTE, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL));
if (err) {
goto failed;
+62 -39
View File
@@ -3214,9 +3214,10 @@ code = '''
lfs3_btree_t btree;
lfs3_btree_init(&btree);
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("aaa"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("0"),
LFS3_RATTR_NULL)) => 0;
@@ -3275,18 +3276,20 @@ code = '''
lfs3_btree_t btree;
lfs3_btree_init(&btree);
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("aaa"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("0"),
LFS3_RATTR_NULL)) => 0;
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("0"),
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("aab"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("1"),
LFS3_RATTR_NULL)) => 0;
@@ -3356,27 +3359,30 @@ code = '''
lfs3_btree_t btree;
lfs3_btree_init(&btree);
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("aaa"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("0"),
LFS3_RATTR_NULL)) => 0;
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("0"),
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(1*DID),
LFS3_RATTR_ARG("aab"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("1"),
LFS3_RATTR_NULL)) => 0;
lfs3_btree_commit(&lfs3, &btree, 1, LFS3_RATTRS(
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("1"),
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(2*DID),
LFS3_RATTR_ARG("aac"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("2"),
LFS3_RATTR_NULL)) => 0;
@@ -3457,27 +3463,30 @@ code = '''
lfs3_btree_t btree;
lfs3_btree_init(&btree);
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("aaa"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("0"),
LFS3_RATTR_NULL)) => 0;
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("1"),
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(2*DID),
LFS3_RATTR_ARG("aac"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("2"),
LFS3_RATTR_NULL)) => 0;
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("0"),
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(1*DID),
LFS3_RATTR_ARG("aab"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("1"),
LFS3_RATTR_NULL)) => 0;
@@ -3558,27 +3567,29 @@ code = '''
// create a tree with N elements
lfs3_btree_t btree;
lfs3_btree_init(&btree);
char name[4] = {
'a'+((0/26/26) % 26), 'a'+((0/26) % 26), 'a'+(0 % 26), '\0',
char name[3] = {
'a'+((0/26/26) % 26), 'a'+((0/26) % 26), 'a'+(0 % 26)
};
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(0 % 10)}),
LFS3_RATTR_NULL)) => 0;
lfs3_size_t n = 1;
for (lfs3_size_t i = 1; i < N; i++) {
char name[4] = {
'a'+((i/26/26) % 26), 'a'+((i/26) % 26), 'a'+(i % 26), '\0',
char name[3] = {
'a'+((i/26/26) % 26), 'a'+((i/26) % 26), 'a'+(i % 26)
};
lfs3_btree_commit(&lfs3, &btree, i-1, LFS3_RATTRS(
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+((i-1) % 10)}),
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(i*DID),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+((i-0) % 10)}),
LFS3_RATTR_NULL)) => 0;
@@ -3635,9 +3646,10 @@ code = '''
lfs3_btree_t btree;
lfs3_btree_init(&btree);
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("___"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("_"),
LFS3_RATTR_NULL)) => 0;
@@ -3658,8 +3670,8 @@ code = '''
for (lfs3_size_t i = 1; i < N; i++) {
// choose a pseudo-random name
lfs3_size_t x = TEST_PRNG(&prng) % (26*26*26);
char name[4] = {
'a'+((x/26/26) % 26), 'a'+((x/26) % 26), 'a'+(x % 26), '\0',
char name[3] = {
'a'+((x/26/26) % 26), 'a'+((x/26) % 26), 'a'+(x % 26)
};
// find where to split
@@ -3676,9 +3688,10 @@ code = '''
lfs3_btree_commit(&lfs3, &btree, bid, LFS3_RATTRS(
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(i % 10)}),
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(i % 10)}),
LFS3_RATTR_NULL)) => 0;
@@ -3753,29 +3766,31 @@ code = '''
// create a tree with N elements
lfs3_btree_t btree;
lfs3_btree_init(&btree);
char name[4] = {
'a'+((0/26/26) % 26), 'a'+((0/26) % 26), 'a'+(0 % 26), '\0',
char name[3] = {
'a'+((0/26/26) % 26), 'a'+((0/26) % 26), 'a'+(0 % 26)
};
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(4, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR(5, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR_WEIGHT(+W),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(0 % 10)}),
LFS3_RATTR_NULL)) => 0;
lfs3_size_t n = 1;
for (lfs3_size_t i = 1; i < N; i++) {
char name[4] = {
'a'+((i/26/26) % 26), 'a'+((i/26) % 26), 'a'+(i % 26), '\0',
char name[3] = {
'a'+((i/26/26) % 26), 'a'+((i/26) % 26), 'a'+(i % 26)
};
lfs3_btree_commit(&lfs3, &btree, (i-1)*W+W-1, LFS3_RATTRS(
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+((i-1) % 10)}),
LFS3_RATTR(4, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR(5, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR_WEIGHT(+W),
LFS3_RATTR_ARG(i*DID),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+((i-0) % 10)}),
LFS3_RATTR_NULL)) => 0;
@@ -3833,10 +3848,11 @@ code = '''
lfs3_btree_t btree;
lfs3_btree_init(&btree);
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(4, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR(5, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR_WEIGHT(+W),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("___"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("_"),
LFS3_RATTR_NULL)) => 0;
@@ -3860,8 +3876,8 @@ code = '''
for (lfs3_size_t i = 1; i < N; i++) {
// choose a pseudo-random name
lfs3_size_t x = TEST_PRNG(&prng) % (26*26*26);
char name[4] = {
'a'+((x/26/26) % 26), 'a'+((x/26) % 26), 'a'+(x % 26), '\0',
char name[3] = {
'a'+((x/26/26) % 26), 'a'+((x/26) % 26), 'a'+(x % 26)
};
// choose pseudo-random weights
lfs3_size_t weight1 = 1 + (TEST_PRNG(&prng) % W);
@@ -3890,10 +3906,11 @@ code = '''
LFS3_RATTR_WEIGHT(+weight1-sim_weights[bid]),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(i % 10)}),
LFS3_RATTR(4, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR(5, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR_WEIGHT(+weight2),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(i % 10)}),
LFS3_RATTR_NULL)) => 0;
@@ -3995,9 +4012,10 @@ code = '''
lfs3_btree_t btree;
lfs3_btree_init(&btree);
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("___"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("_"),
LFS3_RATTR_NULL)) => 0;
@@ -4022,8 +4040,8 @@ code = '''
lfs3_size_t bid = TEST_PRNG(&prng) % ((sim_size == 0) ? 1 : sim_size);
// choose a pseudo-random name
lfs3_size_t x = TEST_PRNG(&prng) % (26*26*26);
char name[4] = {
'a'+((x/26/26) % 26), 'a'+((x/26) % 26), 'a'+(x % 26), '\0',
char name[3] = {
'a'+((x/26/26) % 26), 'a'+((x/26) % 26), 'a'+(x % 26)
};
// don't let sim drop below one element
@@ -4069,9 +4087,10 @@ code = '''
assert(cmp != LFS3_CMP_EQ);
if (cmp > LFS3_CMP_EQ) {
lfs3_btree_commit(&lfs3, &btree, split_bid, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(i % 10)}),
LFS3_RATTR_NULL)) => 0;
@@ -4079,9 +4098,10 @@ code = '''
lfs3_btree_commit(&lfs3, &btree, split_bid, LFS3_RATTRS(
// yes, we need this noop, see above
LFS3_RATTR(1, LFS3_RATTR_NULL, 0),
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(i % 10)}),
LFS3_RATTR_NULL)) => 0;
@@ -4179,10 +4199,11 @@ code = '''
lfs3_btree_t btree;
lfs3_btree_init(&btree);
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(4, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR(5, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR_WEIGHT(+W),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG("___"),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG("_"),
LFS3_RATTR_NULL)) => 0;
@@ -4210,8 +4231,8 @@ code = '''
lfs3_size_t bid = TEST_PRNG(&prng) % ((sim_size == 0) ? 1 : sim_size);
// choose a pseudo-random name
lfs3_size_t x = TEST_PRNG(&prng) % (26*26*26);
char name[4] = {
'a'+((x/26/26) % 26), 'a'+((x/26) % 26), 'a'+(x % 26), '\0',
char name[3] = {
'a'+((x/26/26) % 26), 'a'+((x/26) % 26), 'a'+(x % 26)
};
// choose a pseudo-random weight
lfs3_size_t weight = 1 + (TEST_PRNG(&prng) % W);
@@ -4268,10 +4289,11 @@ code = '''
if (cmp > LFS3_CMP_EQ) {
lfs3_btree_commit(&lfs3, &btree,
split_bid-(split_weight-1), LFS3_RATTRS(
LFS3_RATTR(4, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR(5, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR_WEIGHT(+weight),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(i % 10)}),
LFS3_RATTR_NULL)) => 0;
@@ -4279,10 +4301,11 @@ code = '''
lfs3_btree_commit(&lfs3, &btree, split_bid, LFS3_RATTRS(
// yes, we need this noop, see above
LFS3_RATTR(1, LFS3_RATTR_NULL, 0),
LFS3_RATTR(4, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR(5, LFS3_TAG_REG, -2, LFS3_FROM_NAME),
LFS3_RATTR_WEIGHT(+weight),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG(name),
LFS3_RATTR_ARG(3),
LFS3_RATTR(2, LFS3_TAG_DATA, 0, LFS3_FROM_BUF, 1),
LFS3_RATTR_ARG(&(uint8_t){'0'+(i % 10)}),
LFS3_RATTR_NULL)) => 0;
+18 -9
View File
@@ -1301,10 +1301,11 @@ code = '''
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
lfs3_unmount(&lfs3) => 0;
@@ -1389,10 +1390,11 @@ code = '''
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
lfs3_unmount(&lfs3) => 0;
@@ -1496,10 +1498,11 @@ code = '''
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
lfs3_unmount(&lfs3) => 0;
@@ -1606,10 +1609,11 @@ code = '''
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
lfs3_unmount(&lfs3) => 0;
@@ -1716,19 +1720,21 @@ code = '''
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
path = "c";
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
lfs3_unmount(&lfs3) => 0;
@@ -1835,10 +1841,11 @@ code = '''
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
lfs3_unmount(&lfs3) => 0;
@@ -1945,10 +1952,11 @@ code = '''
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
lfs3_unmount(&lfs3) => 0;
@@ -2055,10 +2063,11 @@ code = '''
lfs3_mtree_pathlookup(&lfs3, &path,
&mdir, &did) => LFS3_TAG_REG;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_RATTR(4, LFS3_tag_MASK8 | (LFS3_TAG_NAME + 0x13), 0,
LFS3_FROM_NAME),
LFS3_RATTR_ARG(did),
LFS3_RATTR_ARG(path),
LFS3_RATTR_ARG(lfs3_path_namelen(path)),
LFS3_RATTR_NULL)) => 0;
lfs3_unmount(&lfs3) => 0;
+224 -168
View File
@@ -282,9 +282,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -292,9 +293,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -381,9 +383,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -391,9 +394,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -414,9 +418,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -733,9 +738,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -743,9 +749,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -832,9 +839,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -842,9 +850,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -933,9 +942,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -943,9 +953,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -1013,9 +1024,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -1023,9 +1035,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -1046,9 +1059,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -1139,9 +1153,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -1149,9 +1164,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -1172,9 +1188,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -1545,9 +1562,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -1555,9 +1573,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -1693,9 +1712,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -1703,9 +1723,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -1841,9 +1862,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -1929,9 +1951,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -2080,9 +2103,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -2200,9 +2224,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -2210,9 +2235,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -2353,9 +2379,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -2363,9 +2390,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -2386,9 +2414,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -2524,9 +2553,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -2534,9 +2564,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -2742,9 +2773,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -2752,9 +2784,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -3235,9 +3268,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -3245,9 +3279,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 5);
@@ -3322,9 +3357,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -3332,9 +3368,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 5);
@@ -3347,9 +3384,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -3490,9 +3528,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -3500,9 +3539,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 5);
@@ -3601,9 +3641,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -3611,9 +3652,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 5);
@@ -3710,9 +3752,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -3720,9 +3763,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 5);
@@ -3735,9 +3779,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -3755,9 +3800,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -3832,9 +3878,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -3842,9 +3889,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 5);
@@ -3857,9 +3905,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 4);
@@ -4178,9 +4227,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -4188,9 +4238,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -4332,9 +4383,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -4342,9 +4394,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 3);
@@ -4362,9 +4415,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -5296,9 +5350,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);
@@ -5357,9 +5412,10 @@ code = '''
lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1,
&mdir, NULL) => LFS3_ERR_NOENT;
lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS(
LFS3_RATTR(3, LFS3_TAG_REG, +1, LFS3_FROM_DATA),
LFS3_RATTR_ARG(SIZE),
LFS3_RATTR_ARG(buffer),
LFS3_RATTR(4, LFS3_TAG_REG, +1, LFS3_FROM_NAME),
LFS3_RATTR_ARG(0),
LFS3_RATTR_ARG((const char*)buffer+1),
LFS3_RATTR_ARG(SIZE-1),
LFS3_RATTR_NULL)) => 0;
assert(mdir.r.weight == 2);