Skip to content

Commit ce91cee

Browse files
Mircea Capriorurlubos
authored andcommitted
[nrf fromtree] tests: fs: zms: verify cycle count survives zms_clear()
Extend test_zms_cycle_count_persistence to call zms_clear() between the advances and the remount and check the counter is preserved. Signed-off-by: Mircea Caprioru <mcaprioru@baylibre.com> (cherry picked from commit fa07d33)
1 parent 8d2330b commit ce91cee

1 file changed

Lines changed: 22 additions & 6 deletions

File tree

  • tests/subsys/kvss/zms/src

tests/subsys/kvss/zms/src/main.c

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,8 @@ ZTEST_F(zms, test_zms_cycle_count_persistence)
407407
int err;
408408
uint32_t base_cycles;
409409
uint32_t num_cycles_before;
410-
uint32_t num_cycles_after;
410+
uint32_t num_cycles_after_clear;
411+
uint32_t num_cycles_after_remount;
411412
const uint32_t advances = 6;
412413

413414
fixture->fs.sector_count = 3;
@@ -429,17 +430,32 @@ ZTEST_F(zms, test_zms_cycle_count_persistence)
429430
"cycle count did not advance: before=%u base=%u", num_cycles_before,
430431
base_cycles);
431432

433+
/* zms_clear must not roll the cycle counter back: the per-sector
434+
* full_cycle_cnt is preserved (and bumped) by zms_wipe_partition.
435+
*/
436+
err = zms_clear(&fixture->fs);
437+
zassert_true(err == 0, "zms_clear failed: %d", err);
438+
439+
err = zms_mount(&fixture->fs);
440+
zassert_true(err == 0, "zms_mount (after clear) call failure: %d", err);
441+
442+
err = zms_get_num_cycles(&fixture->fs, &num_cycles_after_clear);
443+
zassert_true(err == 0, "zms_get_num_cycles failed: %d", err);
444+
zassert_true(num_cycles_after_clear >= num_cycles_before,
445+
"cycle count regressed across zms_clear: before=%u after=%u",
446+
num_cycles_before, num_cycles_after_clear);
447+
432448
/* Re-mount and ensure the cycle count survives, exercising the
433-
* full_cycle_cnt persistence path fixed in 6aa5edc5/6db9fd35.
449+
* full_cycle_cnt persistence path.
434450
*/
435451
err = zms_mount(&fixture->fs);
436452
zassert_true(err == 0, "zms_mount (remount) call failure: %d", err);
437453

438-
err = zms_get_num_cycles(&fixture->fs, &num_cycles_after);
454+
err = zms_get_num_cycles(&fixture->fs, &num_cycles_after_remount);
439455
zassert_true(err == 0, "zms_get_num_cycles failed: %d", err);
440-
zassert_equal(num_cycles_after, num_cycles_before,
441-
"cycle count not persisted across remount: before=%u after=%u",
442-
num_cycles_before, num_cycles_after);
456+
zassert_equal(num_cycles_after_remount, num_cycles_after_clear,
457+
"cycle count not persisted across remount: after_clear=%u after_remount=%u",
458+
num_cycles_after_clear, num_cycles_after_remount);
443459
}
444460

445461
static void write_content(uint32_t max_id, uint32_t begin, uint32_t end, struct zms_fs *fs)

0 commit comments

Comments
 (0)