• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 # Copyright 2020 The Pigweed Authors
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 # use this file except in compliance with the License. You may obtain a copy of
5 # the License at
6 #
7 #     https://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 # License for the specific language governing permissions and limitations under
13 # the License.
14 
15 load(
16     "//pw_build:pigweed.bzl",
17     "pw_cc_library",
18     "pw_cc_test",
19 )
20 
21 package(default_visibility = ["//visibility:public"])
22 
23 licenses(["notice"])  # Apache License 2.0
24 
25 pw_cc_library(
26     name = "pw_kvs",
27     srcs = [
28         "alignment.cc",
29         "checksum.cc",
30         "entry.cc",
31         "entry_cache.cc",
32         "flash_memory.cc",
33         "format.cc",
34         "key_value_store.cc",
35         "public/pw_kvs/internal/entry.h",
36         "public/pw_kvs/internal/entry_cache.h",
37         "public/pw_kvs/internal/hash.h",
38         "public/pw_kvs/internal/key_descriptor.h",
39         "public/pw_kvs/internal/sectors.h",
40         "public/pw_kvs/internal/span_traits.h",
41         "pw_kvs_private/config.h",
42         "sectors.cc",
43     ],
44     hdrs = [
45         "public/pw_kvs/alignment.h",
46         "public/pw_kvs/checksum.h",
47         "public/pw_kvs/crc16_checksum.h",
48         "public/pw_kvs/flash_memory.h",
49         "public/pw_kvs/format.h",
50         "public/pw_kvs/io.h",
51         "public/pw_kvs/key.h",
52         "public/pw_kvs/key_value_store.h",
53     ],
54     includes = ["public"],
55     deps = [
56         "//pw_assert",
57         "//pw_checksum",
58         "//pw_containers",
59         "//pw_log",
60         "//pw_log:facade",
61         "//pw_span",
62         "//pw_status",
63     ],
64 )
65 
66 pw_cc_library(
67     name = "crc16",
68     hdrs = [
69         "public/pw_kvs/crc16_checksum.h",
70     ],
71     deps = [
72         ":pw_kvs",
73         "//pw_checksum",
74         "//pw_span",
75     ],
76 )
77 
78 pw_cc_library(
79     name = "fake_flash",
80     srcs = [
81         "fake_flash_memory.cc",
82     ],
83     hdrs = [
84         "public/pw_kvs/fake_flash_memory.h",
85     ],
86     deps = [
87         ":pw_kvs",
88         "//pw_containers",
89         "//pw_log",
90         "//pw_log:facade",
91         "//pw_span",
92         "//pw_status",
93     ],
94 )
95 
96 pw_cc_library(
97     name = "fake_flash_small_partition",
98     srcs = [
99         "fake_flash_test_partition.cc",
100     ],
101     hdrs = [
102         "public/pw_kvs/flash_test_partition.h",
103     ],
104     deps = [
105         ":fake_flash",
106         ":pw_kvs",
107     ],
108 )
109 
110 pw_cc_library(
111     name = "fake_flash_64_aligned_partition",
112     srcs = [
113         "fake_flash_test_partition.cc",
114     ],
115     hdrs = [
116         "public/pw_kvs/flash_test_partition.h",
117     ],
118     defines = ["PW_FLASH_TEST_ALIGNMENT=64"],
119     deps = [
120         ":fake_flash",
121         ":pw_kvs",
122     ],
123 )
124 
125 pw_cc_library(
126     name = "fake_flash_256_aligned_partition",
127     srcs = [
128         "fake_flash_test_partition.cc",
129     ],
130     hdrs = [
131         "public/pw_kvs/flash_test_partition.h",
132     ],
133     defines = ["PW_FLASH_TEST_ALIGNMENT=256"],
134     deps = [
135         ":fake_flash",
136         ":pw_kvs",
137     ],
138 )
139 
140 pw_cc_library(
141     name = "fake_flash_test_key_value_store",
142     srcs = [
143         "fake_flash_test_key_value_store.cc",
144     ],
145     hdrs = [
146         "public/pw_kvs/test_key_value_store.h",
147     ],
148     deps = [
149         ":crc16",
150         ":fake_flash",
151         ":pw_kvs",
152     ],
153 )
154 
155 pw_cc_library(
156     name = "test_utils",
157     hdrs = [
158         "pw_kvs_private/byte_utils.h",
159     ],
160     includes = ["public"],
161     visibility = ["//visibility:private"],
162 )
163 
164 pw_cc_library(
165     name = "test_partition",
166     srcs = [
167         "flash_partition_with_stats.cc",
168     ],
169     hdrs = [
170         "public/pw_kvs/flash_partition_with_stats.h",
171     ],
172     includes = ["public"],
173     visibility = ["//visibility:private"],
174     deps = [
175         "//pw_containers",
176         "//pw_kvs",
177         "//pw_log",
178         "//pw_log:facade",
179         "//pw_status",
180     ],
181 )
182 
183 pw_cc_test(
184     name = "alignment_test",
185     srcs = [
186         "alignment_test.cc",
187     ],
188     deps = [
189         ":pw_kvs",
190         "//pw_status",
191         "//pw_unit_test",
192     ],
193 )
194 
195 pw_cc_test(
196     name = "checksum_test",
197     srcs = ["checksum_test.cc"],
198     deps = [
199         ":crc16",
200         ":pw_kvs",
201         "//pw_checksum",
202         "//pw_log",
203         "//pw_unit_test",
204     ],
205 )
206 
207 pw_cc_test(
208     name = "converts_to_span_test",
209     srcs = ["converts_to_span_test.cc"],
210     deps = [":pw_kvs"],
211 )
212 
213 pw_cc_test(
214     name = "entry_test",
215     srcs = [
216         "entry_test.cc",
217     ],
218     deps = [
219         ":pw_kvs",
220         ":test_utils",
221         "//pw_log:backend",
222         "//pw_span",
223         "//pw_unit_test",
224     ],
225 )
226 
227 pw_cc_test(
228     name = "entry_cache_test",
229     srcs = ["entry_cache_test.cc"],
230     deps = [
231         ":pw_kvs",
232         ":test_utils",
233         "//pw_log:backend",
234         "//pw_unit_test",
235     ],
236 )
237 
238 pw_cc_test(
239     name = "flash_partition_small_test",
240     srcs = ["flash_partition_test.cc"],
241     defines = ["PW_FLASH_TEST_ITERATIONS=100"],
242     deps = [
243         ":fake_flash_small_partition",
244         ":pw_kvs",
245         "//pw_log:backend",
246         "//pw_unit_test",
247     ],
248 )
249 
250 pw_cc_test(
251     name = "flash_partition_64_alignment_test",
252     srcs = ["flash_partition_test.cc"],
253     defines = ["PW_FLASH_TEST_ITERATIONS=100"],
254     deps = [
255         ":fake_flash_64_aligned_partition",
256         ":pw_kvs",
257         "//pw_log:backend",
258         "//pw_unit_test",
259     ],
260 )
261 
262 pw_cc_test(
263     name = "flash_partition_256_alignment_test",
264     srcs = ["flash_partition_test.cc"],
265     defines = ["PW_FLASH_TEST_ITERATIONS=100"],
266     deps = [
267         ":fake_flash_256_aligned_partition",
268         ":pw_kvs",
269         "//pw_log:backend",
270         "//pw_unit_test",
271     ],
272 )
273 
274 pw_cc_test(
275     name = "key_test",
276     srcs = [
277         "key_test.cc",
278     ],
279     deps = [
280         ":pw_kvs",
281         "//pw_status",
282         "//pw_unit_test",
283     ],
284 )
285 
286 pw_cc_test(
287     name = "key_value_store_test",
288     srcs = ["key_value_store_test.cc"],
289     deps = [
290         ":crc16",
291         ":pw_kvs",
292         ":test_utils",
293         "//pw_checksum",
294         "//pw_log:backend",
295         "//pw_log:facade",
296         "//pw_span",
297         "//pw_status",
298         "//pw_string",
299         "//pw_unit_test",
300     ],
301 )
302 
303 pw_cc_test(
304     name = "key_value_store_small_flash_test",
305     srcs = ["key_value_store_initialized_test.cc"],
306     deps = [
307         ":crc16",
308         ":fake_flash_small_partition",
309         ":pw_kvs",
310         ":test_utils",
311         "//pw_checksum",
312         "//pw_log:backend",
313         "//pw_log:facade",
314         "//pw_span",
315         "//pw_status",
316         "//pw_string",
317         "//pw_unit_test",
318     ],
319 )
320 
321 pw_cc_test(
322     name = "key_value_store_64_alignment_flash_test",
323     srcs = ["key_value_store_initialized_test.cc"],
324     deps = [
325         ":crc16",
326         ":fake_flash_64_aligned_partition",
327         ":pw_kvs",
328         ":test_utils",
329         "//pw_checksum",
330         "//pw_log:backend",
331         "//pw_log:facade",
332         "//pw_span",
333         "//pw_status",
334         "//pw_string",
335         "//pw_unit_test",
336     ],
337 )
338 
339 pw_cc_test(
340     name = "key_value_store_256_alignment_flash_test",
341     srcs = ["key_value_store_initialized_test.cc"],
342     deps = [
343         ":crc16",
344         ":fake_flash_256_aligned_partition",
345         ":pw_kvs",
346         ":test_utils",
347         "//pw_checksum",
348         "//pw_log:backend",
349         "//pw_log:facade",
350         "//pw_span",
351         "//pw_status",
352         "//pw_string",
353         "//pw_unit_test",
354     ],
355 )
356 
357 pw_cc_test(
358     name = "fake_flash_test_key_value_store_test",
359     srcs = ["test_key_value_store_test.cc"],
360     deps = [
361         ":crc16",
362         ":fake_flash_test_key_value_store",
363         ":pw_kvs",
364         "//pw_log:backend",
365         "//pw_status",
366         "//pw_unit_test",
367     ],
368 )
369 
370 pw_cc_test(
371     name = "key_value_store_binary_format_test",
372     srcs = [
373         "key_value_store_binary_format_test.cc",
374     ],
375     deps = [
376         ":crc16",
377         ":pw_kvs",
378         ":test_utils",
379         "//pw_log:backend",
380         "//pw_unit_test",
381     ],
382 )
383 
384 pw_cc_test(
385     name = "key_value_store_fuzz_test",
386     srcs = ["key_value_store_fuzz_test.cc"],
387     deps = [
388         ":crc16",
389         ":pw_kvs",
390         ":test_partition",
391         ":test_utils",
392         "//pw_checksum",
393         "//pw_log:backend",
394         "//pw_unit_test",
395     ],
396 )
397 
398 pw_cc_test(
399     name = "key_value_store_map_test",
400     srcs = ["key_value_store_map_test.cc"],
401     deps = [
402         ":crc16",
403         ":pw_kvs",
404         ":test_partition",
405         ":test_utils",
406         "//pw_checksum",
407         "//pw_log:backend",
408         "//pw_log:facade",
409         "//pw_span",
410         "//pw_unit_test",
411     ],
412 )
413 
414 pw_cc_test(
415     name = "sectors_test",
416     srcs = ["sectors_test.cc"],
417     deps = [
418         ":pw_kvs",
419         ":test_utils",
420         "//pw_log:backend",
421         "//pw_unit_test",
422     ],
423 )
424 
425 pw_cc_test(
426     name = "key_value_store_wear_test",
427     srcs = [
428         "key_value_store_wear_test.cc",
429     ],
430     deps = [
431         ":pw_kvs",
432         ":test_partition",
433         ":test_utils",
434         "//pw_log:backend",
435         "//pw_unit_test",
436     ],
437 )
438