diff --git a/src/spiffs_hydrogen.c b/src/spiffs_hydrogen.c index 456403c..1c2cbd9 100644 --- a/src/spiffs_hydrogen.c +++ b/src/spiffs_hydrogen.c @@ -1036,6 +1036,7 @@ struct spiffs_dirent *SPIFFS_readdir(spiffs_DIR *d, struct spiffs_dirent *e) { if (res == SPIFFS_OK) { d->block = bix; d->entry = entry + 1; + e->obj_id &= ~SPIFFS_OBJ_ID_IX_FLAG; ret = e; } else { d->fs->err_code = res; diff --git a/src/test/test_hydrogen.c b/src/test/test_hydrogen.c index 05aadb0..273327a 100644 --- a/src/test/test_hydrogen.c +++ b/src/test/test_hydrogen.c @@ -427,11 +427,17 @@ TEST(list_dir) break; } } + { + spiffs_stat s; + TEST_CHECK_EQ(SPIFFS_stat(FS, pe->name, &s), 0); + TEST_CHECK_EQ(pe->obj_id, s.obj_id); + TEST_CHECK_EQ(pe->size, s.size); + TEST_CHECK_EQ(pe->type, s.type); + TEST_CHECK_EQ(pe->pix, s.pix); #if SPIFFS_OBJ_META_LEN - for (i = 0; i < SPIFFS_OBJ_META_LEN; i++) { - TEST_CHECK_EQ(pe->meta[i], 0xff); - } + TEST_CHECK_EQ(memcmp(pe->meta, s.meta, SPIFFS_OBJ_META_LEN), 0); #endif + } } SPIFFS_closedir(&d);