Commit d9f2ae9d authored by Mateusz Kozlowski's avatar Mateusz Kozlowski Committed by Tomasz Zawadzki
Browse files

unit/ftl: Multiple previous version metadata in sb test



Add superblock upgrade test where multiple entries of the same metadata
regions are found - situation that could happen if a crash occured while
inbetween upgrading the entries between versions (e.g. v0 -> v1 ->v2),
which may happen now that both chunks and band have more than 2 versions.

Change-Id: I5b8989b5f51703ee74a598701dd1155c987e2c8f
Signed-off-by: default avatarMateusz Kozlowski <mateusz.kozlowski@solidigm.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20975


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarArtur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
parent cb00e90a
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
/*   SPDX-License-Identifier: BSD-3-Clause
 *   Copyright (C) 2022 Intel Corporation.
 *   Copyright 2023 Solidigm All Rights Reserved
 *   All rights reserved.
 */

@@ -551,6 +552,13 @@ test_sb_v3_md_layout(void)
	CU_ASSERT_EQUAL(rc, -EAGAIN);
	test_sb_v3_region_reinit();

	/* multiple (different ver) prev regions found: */
	sb_reg_next2->version = sb_reg_next->version - 1;
	rc = ftl_superblock_v3_md_layout_load_all(&g_dev);
	CU_ASSERT_EQUAL(rc, 0);
	CU_ASSERT_EQUAL(reg->current.version, sb_reg_next2->version);
	test_sb_v3_region_reinit();

	/* multiple current regions found: */
	sb_reg_next->version = sb_reg->version;
	sb_reg_next->df_next = df_next_reg;