summaryrefslogtreecommitdiff
path: root/test/nvmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/nvmem.c')
-rw-r--r--test/nvmem.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/nvmem.c b/test/nvmem.c
index a7e339ebf1..52cf40138a 100644
--- a/test/nvmem.c
+++ b/test/nvmem.c
@@ -828,6 +828,7 @@ static int test_nvmem_incomplete_transaction(void)
uint16_t offsets[MAX_OFFSETS];
size_t num_objects;
uint8_t buf[nvmem_user_sizes[NVMEM_TPM]];
+ uint8_t *p;
TEST_ASSERT(prepare_post_migration_nvmem() == EC_SUCCESS);
num_objects = fill_obj_offsets(offsets, ARRAY_SIZE(offsets));
@@ -859,6 +860,19 @@ static int test_nvmem_incomplete_transaction(void)
num_objects = fill_obj_offsets(offsets, ARRAY_SIZE(offsets));
TEST_ASSERT(num_objects == 7);
+ /*
+ * Now, let's modify an object and introduce corruption when saving
+ * it.
+ */
+ p = evictable_offs_to_addr(offsets[4]);
+ p[10] ^= 0x55;
+ failure_mode = TEST_FAILED_HASH;
+ new_nvmem_save();
+ failure_mode = TEST_NO_FAILURE;
+
+ /* And verify that nvmem can still successfully initialize. */
+ TEST_ASSERT(nvmem_init() == EC_SUCCESS);
+
return EC_SUCCESS;
}