tests/storage/flash_map: Fix erase and flatten test

Fix offset read for verification and comparison of read to
erased value, where type mismatch has been causing fails in
comparisons.

Fixes #74066

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
diff --git a/tests/subsys/storage/flash_map/src/main.c b/tests/subsys/storage/flash_map/src/main.c
index 18fea4b..4d219e4 100644
--- a/tests/subsys/storage/flash_map/src/main.c
+++ b/tests/subsys/storage/flash_map/src/main.c
@@ -225,21 +225,28 @@
 	rc = flash_area_erase(fa, 0, fa->fa_size);
 	zassert_true(rc == 0, "flash area erase fail");
 
+	TC_PRINT("Flash area info:\n");
+	TC_PRINT("\tpointer:\t %p\n", &fa);
+	TC_PRINT("\toffset:\t %ld\n", (long)fa->fa_off);
+	TC_PRINT("\tsize:\t %ld\n", (long)fa->fa_size);
+
 	/* we work under assumption that flash_fill is working and tested */
-	for (i = 0; erased && i < fa->fa_size; ++i) {
+	i = 0;
+	while (erased && i < fa->fa_size) {
 		uint8_t buf[32];
 		int chunk = MIN(sizeof(buf), fa->fa_size - i);
 
-		rc = flash_read(flash_dev, i, buf, chunk);
-		zassert_equal(rc, 0, "Unexpected read fail");
+		rc = flash_read(flash_dev, fa->fa_off + i, buf, chunk);
+		zassert_equal(rc, 0, "Unexpected read fail with error %d", rc);
 		for (int ii = 0; ii < chunk; ++ii, ++i) {
-			if (buf[ii] != flash_area_erased_val(fa)) {
+			if ((uint8_t)buf[ii] != (uint8_t)flash_area_erased_val(fa)) {
 				erased = false;
 				break;
 			}
 		}
 	}
-	zassert_true(erased, "Erase failed at index %d", i);
+	zassert_true(erased, "Erase failed at dev abosolute offset index %d",
+		     i + fa->fa_off);
 
 	rc = flash_fill(flash_dev, 0xaa, fa->fa_off, fa->fa_size);
 	zassert_true(rc == 0, "flash device fill fail");
@@ -247,20 +254,22 @@
 	rc = flash_area_flatten(fa, 0, fa->fa_size);
 
 	erased = true;
-	for (i = 0; erased && i < fa->fa_size; ++i) {
+	i = 0;
+	while (erased && i < fa->fa_size) {
 		uint8_t buf[32];
 		int chunk = MIN(sizeof(buf), fa->fa_size - i);
 
-		rc = flash_read(flash_dev, i, buf, chunk);
-		zassert_equal(rc, 0, "Unexpected read fail");
+		rc = flash_read(flash_dev, fa->fa_off + i, buf, chunk);
+		zassert_equal(rc, 0, "Unexpected read fail with error %d", rc);
 		for (int ii = 0; ii < chunk; ++ii, ++i) {
-			if (buf[ii] != flash_area_erased_val(fa)) {
+			if ((uint8_t)buf[ii] != (uint8_t)flash_area_erased_val(fa)) {
 				erased = false;
 				break;
 			}
 		}
 	}
-	zassert_true(erased, "Flatten/Erase failed at index %d", i);
+	zassert_true(erased, "Flatten/Erase failed at dev absolute offset %d",
+		     i + fa->fa_off);
 }
 
 ZTEST_SUITE(flash_map, NULL, NULL, NULL, NULL, NULL);