Fully adopted lazy attr encoding
This fully adopts LFSR_RATTR__ and friends:
- LFSR_RATTR -> LFSR_RATTR__ or LFSR_RATTR_DATA__
- LFSR_RATTR_BUF -> LFSR_RATTR__
- LFSR_RATTR_CAT -> LFSR_RATTR_CAT__
- LFSR_RATTR_NOOP -> LFSR_RATTR_NOOP__
- LFSR_RATTR_NAME -> LFSR_RATTR_NAME__
Note the new LFSR_RATTR__ macro also lets us a drop the special rattr
macros, at the cost of a bit less type safety:
- LFSR_RATTR_RATTRS -> LFSR_RATTR__
- LFSR_RATTR_MOVE -> LFSR_RATTR__
- LFSR_RATTR_GRM -> LFSR_RATTR__ (we weren't using this?)
- LFSR_RATTR_SHRUBCOMMIT -> LFSR_RATTR__
Curiously, this ended up adding ~88 bytes to lfsr_file_carve:
function (0 added, 0 removed) osize nsize dsize
lfsr_file_carve 1228 1316 +88 (+7.2%)
lfsr_mdir_commit 2144 2152 +8 (+0.4%)
lfsr_mdir_commit__ 1192 1188 -4 (-0.3%)
lfsr_file_truncate 184 182 -2 (-1.1%)
lfsr_mount 98 96 -2 (-2.0%)
TOTAL 35508 35596 +88 (+0.2%)
I'm really not sure why, all I can think of is maybe the change from a
forced-inline function to a macro added a bunch of compiler noise?
Still, 80 bytes is not worth two competing LFSR_RATTR APIs. Though
it may be worth looking into this in the future.
Total code changes:
code stack ctx
before: 35508 2472 636
after: 35596 (+0.2%) 2472 (+0.0%) 636 (+0.0%)
This commit is contained in:
@@ -76,9 +76,9 @@ code = '''
|
||||
|
||||
// add to btree
|
||||
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_DATA, +1,
|
||||
LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0;
|
||||
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
|
||||
|
||||
// add to sim
|
||||
memmove(&sim[bid+1], &sim[bid], sim_size-bid);
|
||||
@@ -1851,9 +1851,9 @@ code = '''
|
||||
|
||||
// add to btree
|
||||
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_DATA, +1,
|
||||
LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0;
|
||||
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
|
||||
|
||||
// add to sim
|
||||
memmove(&sim[bid+1], &sim[bid], sim_size-bid);
|
||||
@@ -3626,9 +3626,9 @@ code = '''
|
||||
|
||||
// add to btree
|
||||
lfsr_btree_commit(&lfs, &btree, bid, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_DATA, +1,
|
||||
LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0;
|
||||
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
|
||||
|
||||
// add to sim
|
||||
memmove(&sim[bid+1], &sim[bid], sim_size-bid);
|
||||
|
||||
+243
-245
File diff suppressed because it is too large
Load Diff
+18
-12
@@ -978,9 +978,9 @@ code = '''
|
||||
|
||||
// delete any bshrub/btree
|
||||
lfsr_mdir_commit(&lfs, &file.b.o.mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_RM | LFSR_TAG_SUB | LFSR_TAG_STRUCT, 0,
|
||||
LFSR_DATA_NULL()))) => 0;
|
||||
NULL, 0))) => 0;
|
||||
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
@@ -1095,17 +1095,23 @@ code = '''
|
||||
|
||||
// create an empty bshrub
|
||||
lfsr_mdir_commit(&lfs, &file.b.o.mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_SHRUBCOMMIT(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_SHRUBCOMMIT, 0,
|
||||
&file.b, 0, ((lfsr_rattr_t[]){
|
||||
LFSR_RATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("?", 1))}),
|
||||
1))) => 0;
|
||||
(&(lfsr_shrubcommit_t){
|
||||
.bshrub=&file.b,
|
||||
.rid=0,
|
||||
.rattrs=((lfsr_rattr_t[]){
|
||||
LFSR_RATTR__(LFSR_TAG_DATA, +1, "?", 1)}),
|
||||
.rattr_count=1}), 0))) => 0;
|
||||
lfsr_mdir_commit(&lfs, &file.b.o.mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_SHRUBCOMMIT(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_SHRUBCOMMIT, 0,
|
||||
&file.b, 0, ((lfsr_rattr_t[]){
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL())}),
|
||||
1))) => 0;
|
||||
(&(lfsr_shrubcommit_t){
|
||||
.bshrub=&file.b,
|
||||
.rid=0,
|
||||
.rattrs=((lfsr_rattr_t[]){
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0)}),
|
||||
.rattr_count=1}), 0))) => 0;
|
||||
lfsr_mdir_commit(&lfs, &file.b.o.mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_SUB | LFSR_TAG_BSHRUB, 0,
|
||||
@@ -1226,9 +1232,9 @@ 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, LFSR_DATA_BUF("?", 1)))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_DATA, +1, "?", 1))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &file.b.shrub, 0, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
lfsr_mdir_commit(&lfs, &file.b.o.mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_SUB | LFSR_TAG_BTREE, 0,
|
||||
|
||||
+37
-51
@@ -545,9 +545,9 @@ 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__(
|
||||
LFSR_TAG_RM | LFSR_TAG_MAGIC, 0,
|
||||
LFSR_DATA_NULL()))) => 0;
|
||||
NULL, 0))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -569,9 +569,9 @@ 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__(
|
||||
LFSR_TAG_MAGIC, 0,
|
||||
LFSR_DATA_BUF("lottlefs", 8)))) => 0;
|
||||
"lottlefs", 8))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -593,11 +593,11 @@ 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__(
|
||||
LFSR_TAG_VERSION, 0,
|
||||
LFSR_DATA_BUF(((const uint8_t[2]){
|
||||
((const uint8_t[2]){
|
||||
LFS_DISK_VERSION_MAJOR+1,
|
||||
0}), 2)))) => 0;
|
||||
0}), 2))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -619,11 +619,11 @@ 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__(
|
||||
LFSR_TAG_VERSION, 0,
|
||||
LFSR_DATA_BUF(((const uint8_t[2]){
|
||||
((const uint8_t[2]){
|
||||
LFS_DISK_VERSION_MAJOR,
|
||||
LFS_DISK_VERSION_MINOR+1}), 2)))) => 0;
|
||||
LFS_DISK_VERSION_MINOR+1}), 2))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -645,14 +645,11 @@ code = '''
|
||||
// note we're messing around with internals to do this! this
|
||||
// is not a user API
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t rcompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR_LE32__(
|
||||
LFSR_TAG_RCOMPAT, 0,
|
||||
LFSR_DATA_LE32(
|
||||
LFSR_RCOMPAT_COMPAT
|
||||
| LFSR_RCOMPAT_NONSTANDARD,
|
||||
rcompat_buf)))) => 0;
|
||||
LFSR_RCOMPAT_COMPAT
|
||||
| LFSR_RCOMPAT_NONSTANDARD))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -674,14 +671,11 @@ code = '''
|
||||
// note we're messing around with internals to do this! this
|
||||
// is not a user API
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t wcompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR_LE32__(
|
||||
LFSR_TAG_WCOMPAT, 0,
|
||||
LFSR_DATA_LE32(
|
||||
LFSR_WCOMPAT_COMPAT
|
||||
| LFSR_WCOMPAT_NONSTANDARD,
|
||||
wcompat_buf)))) => 0;
|
||||
LFSR_WCOMPAT_COMPAT
|
||||
| LFSR_WCOMPAT_NONSTANDARD))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -706,14 +700,11 @@ code = '''
|
||||
// note we're messing around with internals to do this! this
|
||||
// is not a user API
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t ocompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR_LE32__(
|
||||
LFSR_TAG_OCOMPAT, 0,
|
||||
LFSR_DATA_LE32(
|
||||
LFSR_OCOMPAT_COMPAT
|
||||
| LFSR_OCOMPAT_NONSTANDARD,
|
||||
ocompat_buf)))) => 0;
|
||||
LFSR_OCOMPAT_COMPAT
|
||||
| LFSR_OCOMPAT_NONSTANDARD))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should _not_ fail, ocompat should always be ignored
|
||||
@@ -736,14 +727,11 @@ code = '''
|
||||
// note we're messing around with internals to do this! this
|
||||
// is not a user API
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t wcompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR_LE32__(
|
||||
LFSR_TAG_WCOMPAT, 0,
|
||||
LFSR_DATA_LE32(
|
||||
LFSR_WCOMPAT_COMPAT
|
||||
| LFSR_WCOMPAT_RDONLY,
|
||||
wcompat_buf)))) => 0;
|
||||
LFSR_WCOMPAT_COMPAT
|
||||
| LFSR_WCOMPAT_RDONLY))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -767,14 +755,11 @@ code = '''
|
||||
// note we're messing around with internals to do this! this
|
||||
// is not a user API
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t rcompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR_LE32__(
|
||||
LFSR_TAG_RCOMPAT, 0,
|
||||
LFSR_DATA_LE32(
|
||||
LFSR_RCOMPAT_COMPAT
|
||||
| LFSR_RCOMPAT_WRONLY,
|
||||
rcompat_buf)))) => 0;
|
||||
LFSR_RCOMPAT_COMPAT
|
||||
| LFSR_RCOMPAT_WRONLY))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -803,7 +788,7 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t rcompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR_CAT(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_RCOMPAT, 0,
|
||||
LFSR_DATA_LE32(LFSR_RCOMPAT_COMPAT, rcompat_buf),
|
||||
LFSR_DATA_BUF(overflow, sizeof(overflow))))) => 0;
|
||||
@@ -837,7 +822,7 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t wcompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR_CAT(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_WCOMPAT, 0,
|
||||
LFSR_DATA_LE32(LFSR_WCOMPAT_COMPAT, wcompat_buf),
|
||||
LFSR_DATA_BUF(overflow, sizeof(overflow))))) => 0;
|
||||
@@ -871,7 +856,7 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t ocompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR_CAT(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_OCOMPAT, 0,
|
||||
LFSR_DATA_LE32(LFSR_OCOMPAT_COMPAT, ocompat_buf),
|
||||
LFSR_DATA_BUF(overflow, sizeof(overflow))))) => 0;
|
||||
@@ -903,7 +888,7 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t rcompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR_CAT(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_RCOMPAT, 0,
|
||||
LFSR_DATA_LE32(LFSR_RCOMPAT_COMPAT, rcompat_buf),
|
||||
LFSR_DATA_BUF(overflow, sizeof(overflow))))) => 0;
|
||||
@@ -937,7 +922,7 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t wcompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR_CAT(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_WCOMPAT, 0,
|
||||
LFSR_DATA_LE32(LFSR_WCOMPAT_COMPAT, wcompat_buf),
|
||||
LFSR_DATA_BUF(overflow, sizeof(overflow))))) => 0;
|
||||
@@ -968,7 +953,7 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t ocompat_buf[LFSR_LE32_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR_CAT(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_OCOMPAT, 0,
|
||||
LFSR_DATA_LE32(LFSR_OCOMPAT_COMPAT, ocompat_buf),
|
||||
LFSR_DATA_BUF(overflow, sizeof(overflow))))) => 0;
|
||||
@@ -1075,7 +1060,7 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
uint8_t file_limit_buf[LFSR_LEB128_DSIZE];
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR_CAT(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_FILELIMIT, 0,
|
||||
// it's a bit difficult to test this since file limit
|
||||
// is usually our integer limit, but we can force a
|
||||
@@ -1101,9 +1086,9 @@ 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__(
|
||||
LFSR_TAG_CONFIG + 0x13, 0,
|
||||
LFSR_DATA_BUF("oh no!", strlen("oh no!"))))) => 0;
|
||||
"oh no!", strlen("oh no!")))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount should now fail
|
||||
@@ -1147,9 +1132,10 @@ code = '''
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => 0;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_SUB | (LFSR_TAG_NAME + 0x13), 0,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
|
||||
// mount
|
||||
|
||||
+64
-64
@@ -37,9 +37,9 @@ code = '''
|
||||
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_ATTR(i), 0,
|
||||
LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0;
|
||||
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
|
||||
}
|
||||
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
@@ -82,9 +82,9 @@ code = '''
|
||||
lfs.mroot.rbyd.eoff = -1;
|
||||
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_ATTR(i), 0,
|
||||
LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0;
|
||||
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
|
||||
}
|
||||
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
@@ -124,9 +124,9 @@ code = '''
|
||||
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_RATTRS(
|
||||
LFSR_RATTR(
|
||||
LFSR_RATTR__(
|
||||
LFSR_TAG_ATTR(1), 0,
|
||||
LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0;
|
||||
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
|
||||
lfsr_data_t data;
|
||||
|
||||
uint8_t buffer[4];
|
||||
@@ -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, LFSR_DATA_BUF(buffer, SIZE)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF(buffer, SIZE)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("e", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
|
||||
|
||||
// assert mdirs were unininlined and split
|
||||
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
|
||||
@@ -687,7 +687,7 @@ code = '''
|
||||
lfsr_mtree_namelookup(&lfs, 0, (const char*)buffer+1, SIZE-1,
|
||||
&mdir, NULL, NULL) => 0;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 0);
|
||||
|
||||
// assert mdir was dropped
|
||||
@@ -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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
|
||||
|
||||
// assert mdirs were unininlined and split
|
||||
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
|
||||
@@ -779,7 +779,7 @@ code = '''
|
||||
// force mdir to compact while we're removing
|
||||
mdir.rbyd.eoff = -1;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 0);
|
||||
|
||||
// assert mdir was dropped
|
||||
@@ -862,7 +862,7 @@ code = '''
|
||||
lfs.mroot.rbyd.eoff = -1;
|
||||
mdir.rbyd.eoff = -1;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 2);
|
||||
|
||||
// assert split/drop worked out
|
||||
@@ -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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
|
||||
|
||||
// assert mdirs were unininlined and split
|
||||
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
|
||||
@@ -956,7 +956,7 @@ code = '''
|
||||
// force mdir to compact while we're removing
|
||||
mdir.rbyd.eoff = -1;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 1);
|
||||
|
||||
// assert split/drop worked out
|
||||
@@ -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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
|
||||
|
||||
// assert mdirs were unininlined and split
|
||||
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
|
||||
@@ -1070,7 +1070,7 @@ code = '''
|
||||
// force mdir to compact while we're removing
|
||||
mdir.rbyd.eoff = -1;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 1);
|
||||
|
||||
// assert split/drop worked out
|
||||
@@ -1198,7 +1198,7 @@ code = '''
|
||||
mdir.rbyd.eoff = -1;
|
||||
}
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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, LFSR_DATA_BUF(buffer, SIZE)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF(buffer, SIZE)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("d", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("e", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("d", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("e", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("d", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("e", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("b", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("b", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("d", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("e", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("f", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("g", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("b", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("d", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("e", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("d", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("e", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("e", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("f", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
|
||||
|
||||
// assert mdirs were unininlined and split
|
||||
assert(lfs.mtree.weight == (2 << lfs.mdir_bits));
|
||||
@@ -2272,11 +2272,11 @@ 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, LFSR_DATA_BUF("d", 1)))) => 0;
|
||||
LFSR_RATTR__(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(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 0);
|
||||
// assert mroot relocated
|
||||
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
|
||||
@@ -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, LFSR_DATA_BUF(buffer, SIZE)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF(buffer, SIZE)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF("c", 1)))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0;
|
||||
// assert mroot relocated
|
||||
assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0);
|
||||
|
||||
@@ -2609,7 +2609,7 @@ code = '''
|
||||
mdir.rbyd.eoff = -1;
|
||||
}
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2755,7 +2755,7 @@ code = '''
|
||||
lfsr_mtree_namelookup(&lfs, 0, "a", 1,
|
||||
&mdir, NULL, NULL) => 0;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 2);
|
||||
|
||||
// assert neighbor was removed
|
||||
@@ -2805,7 +2805,7 @@ code = '''
|
||||
lfsr_mtree_namelookup(&lfs, 0, "b", 1,
|
||||
&mdir, NULL, NULL) => 0;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 2);
|
||||
|
||||
// assert neighbor was removed
|
||||
@@ -3427,7 +3427,7 @@ code = '''
|
||||
|
||||
// now remove the middle entry, forcing a drop
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_RM, -1, NULL, 0))) => 0;
|
||||
assert(mdir.rbyd.weight == 0);
|
||||
|
||||
// assert mdir was dropped correctly
|
||||
@@ -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, LFSR_DATA_BUF(buffer, SIZE)))) => 0;
|
||||
LFSR_RATTR__(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, LFSR_DATA_BUF(buffer, SIZE)))) => 0;
|
||||
LFSR_RATTR__(LFSR_TAG_ATTR(1), 0, buffer, SIZE))) => 0;
|
||||
|
||||
// force mroot to compact
|
||||
lfs.mroot.rbyd.eoff = -1;
|
||||
|
||||
+90
-60
@@ -4566,44 +4566,50 @@ code = '''
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/coldbrew";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/turkish";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/tubruk";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/vietnamese";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/thai";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
|
||||
// stat paths
|
||||
struct lfs_info info;
|
||||
@@ -4746,44 +4752,50 @@ code = '''
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coldbrew";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "turkish";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "tubruk";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "vietnamese";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "thai";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
|
||||
if (DIR) {
|
||||
lfsr_mkdir(&lfs, "drip/coffee") => LFS_ERR_NOTSUP;
|
||||
@@ -5036,44 +5048,50 @@ code = '''
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/coldbrew";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/turkish";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/tubruk";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/vietnamese";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/thai";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
|
||||
// stat paths
|
||||
struct lfs_info info;
|
||||
@@ -5272,44 +5290,50 @@ code = '''
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/coldbrew";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/turkish";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/tubruk";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/vietnamese";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/thai";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
|
||||
// stat paths
|
||||
struct lfs_info info;
|
||||
@@ -5508,44 +5532,50 @@ code = '''
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/coldbrew";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/turkish";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/tubruk";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/vietnamese";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
path = "coffee/thai";
|
||||
lfsr_mtree_pathlookup(&lfs, &path,
|
||||
&mdir, NULL, &did) => LFS_ERR_NOENT;
|
||||
lfsr_mdir_commit(&lfs, &mdir, LFSR_RATTRS(
|
||||
LFSR_RATTR_NAME(
|
||||
LFSR_RATTR_CAT__(
|
||||
LFSR_TAG_NAME + 0x13, +1,
|
||||
did, path, lfsr_path_namelen(path)))) => 0;
|
||||
LFSR_DATA_LEB128(did, (uint8_t[LFSR_LEB128_DSIZE]){0}),
|
||||
LFSR_DATA_BUF(path, lfsr_path_namelen(path))))) => 0;
|
||||
|
||||
// stat paths
|
||||
struct lfs_info info;
|
||||
|
||||
+1603
-1603
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user