1# Copyright (c) 2022 Meta
2#
3# SPDX-License-Identifier: Apache-2.0
4
5sample:
6  description: System Hashmap sample
7  name: System Hashmap sample
8
9common:
10  min_ram: 24
11  integration_platforms:
12    - qemu_x86_64
13    - mps2/an385
14  harness: console
15  harness_config:
16    type: one_line
17    regex:
18      - .*success
19
20
21tests:
22  # Minimal Libc
23  libraries.hash_map.minimal.separate_chaining.djb2:
24    extra_configs:
25      - CONFIG_MINIMAL_LIBC=y
26      - CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
27      - CONFIG_SYS_HASH_MAP_CHOICE_SC=y
28      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
29  libraries.hash_map.minimal.open_addressing.djb2:
30    extra_configs:
31      - CONFIG_MINIMAL_LIBC=y
32      - CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
33      - CONFIG_SYS_HASH_MAP_CHOICE_OA_LP=y
34      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
35  # Newlib
36  libraries.hash_map.newlib.separate_chaining.djb2:
37    filter: TOOLCHAIN_HAS_NEWLIB == 1
38    extra_configs:
39      - CONFIG_NEWLIB_LIBC=y
40      - CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=8192
41      - CONFIG_SYS_HASH_MAP_CHOICE_SC=y
42      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
43  libraries.hash_map.newlib.open_addressing.djb2:
44    filter: TOOLCHAIN_HAS_NEWLIB == 1
45    extra_configs:
46      - CONFIG_NEWLIB_LIBC=y
47      - CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=8192
48      - CONFIG_SYS_HASH_MAP_CHOICE_OA_LP=y
49      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
50  libraries.hash_map.newlib.cxx_unordered_map.djb2:
51    filter: TOOLCHAIN_HAS_NEWLIB == 1
52    extra_configs:
53      - CONFIG_NEWLIB_LIBC=y
54      - CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=8192
55      - CONFIG_SYS_HASH_MAP_CHOICE_CXX=y
56      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
57      - CONFIG_MAIN_STACK_SIZE=2048
58  # PicoLibc
59  libraries.hash_map.picolibc.separate_chaining.djb2:
60    extra_configs:
61      - CONFIG_PICOLIBC=y
62      - CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
63      - CONFIG_SYS_HASH_MAP_CHOICE_SC=y
64      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
65  libraries.hash_map.picolibc.open_addressing.djb2:
66    extra_configs:
67      - CONFIG_PICOLIBC=y
68      - CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
69      - CONFIG_SYS_HASH_MAP_CHOICE_OA_LP=y
70      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
71