pw_kvs: Add flash partition test

Add unit tests for testing flash partition. Put the main test
implementation in to a common file that is used by end tests that
provide the actual partition to test.

Add configuration define PW_FLASH_MAX_FLASH_ALIGNMENT that is
used to size flash write buffers.

Change-Id: Ib3dd2381037d15bd61552184f59769074dece44f
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/13220
Commit-Queue: David Rogers <davidrogers@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
diff --git a/pw_kvs/BUILD b/pw_kvs/BUILD
index a1fd8b8..dcf7f66 100644
--- a/pw_kvs/BUILD
+++ b/pw_kvs/BUILD
@@ -38,6 +38,7 @@
         "public/pw_kvs/internal/key_descriptor.h",
         "public/pw_kvs/internal/sectors.h",
         "public/pw_kvs/internal/span_traits.h",
+        "pw_kvs_private/config.h",
         "pw_kvs_private/macros.h",
         "sectors.cc",
     ],
@@ -93,6 +94,21 @@
 )
 
 pw_cc_library(
+    name = "flash_partition_test",
+    srcs = [
+        "flash_partition_test.cc",
+    ],
+    hdrs = [
+        "public/pw_kvs/flash_partition_test.h",
+    ],
+    deps = [
+        ":pw_kvs",
+        "//pw_log",
+        "//pw_span",
+    ],
+)
+
+pw_cc_library(
     name = "test_utils",
     hdrs = [
         "pw_kvs_private/byte_utils.h",
@@ -170,6 +186,17 @@
 )
 
 pw_cc_test(
+    name = "fake_flash_partition_test",
+    srcs = ["fake_flash_partition_test.cc"],
+    deps = [
+        ":pw_kvs",
+        ":flash_partition_test",
+        "//pw_log:backend",
+        "//pw_unit_test",
+    ],
+)
+
+pw_cc_test(
     name = "key_value_store_test",
     srcs = ["key_value_store_test.cc"],
     deps = [