# Copyright (c) 2022 Meta
#
# SPDX-License-Identifier: Apache-2.0

sample:
  description: System Hashmap sample
  name: System Hashmap sample

common:
  min_ram: 24
  integration_platforms:
    - qemu_x86_64
    - mps2/an385
  harness: console
  harness_config:
    type: one_line
    regex:
      - .*success


tests:
  # Minimal Libc
  sample.libraries.hash_map.minimal.separate_chaining.djb2:
    extra_configs:
      - CONFIG_MINIMAL_LIBC=y
      - CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
      - CONFIG_SYS_HASH_MAP_CHOICE_SC=y
      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
  sample.libraries.hash_map.minimal.open_addressing.djb2:
    extra_configs:
      - CONFIG_MINIMAL_LIBC=y
      - CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
      - CONFIG_SYS_HASH_MAP_CHOICE_OA_LP=y
      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
  # Newlib
  sample.libraries.hash_map.newlib.separate_chaining.djb2:
    filter: TOOLCHAIN_HAS_NEWLIB == 1
    extra_configs:
      - CONFIG_NEWLIB_LIBC=y
      - CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=8192
      - CONFIG_SYS_HASH_MAP_CHOICE_SC=y
      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
  sample.libraries.hash_map.newlib.open_addressing.djb2:
    filter: TOOLCHAIN_HAS_NEWLIB == 1
    extra_configs:
      - CONFIG_NEWLIB_LIBC=y
      - CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=8192
      - CONFIG_SYS_HASH_MAP_CHOICE_OA_LP=y
      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
  sample.libraries.hash_map.newlib.cxx_unordered_map.djb2:
    filter: TOOLCHAIN_HAS_NEWLIB == 1
    extra_configs:
      - CONFIG_NEWLIB_LIBC=y
      - CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=8192
      - CONFIG_SYS_HASH_MAP_CHOICE_CXX=y
      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
      - CONFIG_MAIN_STACK_SIZE=2048
  # PicoLibc
  sample.libraries.hash_map.picolibc.separate_chaining.djb2:
    extra_configs:
      - CONFIG_PICOLIBC=y
      - CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
      - CONFIG_SYS_HASH_MAP_CHOICE_SC=y
      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
  sample.libraries.hash_map.picolibc.open_addressing.djb2:
    extra_configs:
      - CONFIG_PICOLIBC=y
      - CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
      - CONFIG_SYS_HASH_MAP_CHOICE_OA_LP=y
      - CONFIG_SYS_HASH_FUNC32_CHOICE_DJB2=y
