common:
  tags: cbprintf
  type: unit

tests:
  utilities.prf.m32v00: # REDUCED
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v01: # FULL
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v02: # REDUCED + FP
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v03: # FULL + FP
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v07: # FULL + FP + FP_A
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v08: # %n
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_N_SPECIFIER=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v80: # NANO
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v101: # FULL + LIBC
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_LIBC_SUBSTS=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v181: # NANO + FULL + LIBC
    extra_args: M64_MODE=0
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_CBPRINTF_LIBC_SUBSTS=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v200: # PACKAGED REDUCED
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v201: # PACKAGED FULL
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v207: # PACKAGED FULL + FP + FP_A
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v208: # PACKAGED %n
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v281: # PACKAGED NANO + FULL
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32v1207: # PACKAGED FULL + FP + FP_A + PACKAGE_ALIGN_OFFSET
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x1200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32va00: # PACKAGED REDUCED + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32va01: # PACKAGED FULL + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32va07: # PACKAGED FULL + FP + FP_A + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32va08: # PACKAGED %n + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m32va81: # PACKAGED NANO + FULL + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=0
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v00: # m64
    extra_args: M64_MODE=1
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v01: # m64 FULL
    extra_args: M64_MODE=1
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v03: # m64 FULL & FP
    extra_args: M64_MODE=1
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v17: # m64 FULL & FP & FP_A
    extra_args: M64_MODE=1
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v80: # NANO
    extra_args: M64_MODE=1
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v101: # FULL + LIBC
    extra_args: M64_MODE=1
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_LIBC_SUBSTS=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v181: # NANO + FULL + LIBC
    extra_args: M64_MODE=1
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_CBPRINTF_LIBC_SUBSTS=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v200: # PACKAGED REDUCED
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v201: # PACKAGED FULL
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v207: # PACKAGED FULL + FP + FP_A
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v208: # PACKAGED %n
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_N_SPECIFIER=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v281: # PACKAGED NANO + FULL
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v600: # PACKAGED REDUCED + LONG_DOUBLE PACKAGING
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v601: # PACKAGED FULL + LONG_DOUBLE PACKAGING
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v607: # PACKAGED FULL + FP + FP_A + LONG_DOUBLE PACKAGING
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v608: # PACKAGED %n + LONG_DOUBLE PACKAGING
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_N_SPECIFIER=y
      - CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v681: # PACKAGED NANO + FULL + LONG_DOUBLE PACKAGING
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE=y
      - CONFIG_MINIMAL_LIBC=y

  # PACKAGED FULL + FP + FP_A + LONG_DOUBLE PACKAGING + PACKAGE_ALIGN_OFFSET
  utilities.prf.m64v1607:
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x1200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64va00: # PACKAGED REDUCED + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64va01: # PACKAGED FULL + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64va07: # PACKAGED FULL + FP + FP_A + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64va08: # PACKAGED %n + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_N_SPECIFIER=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64va81: # PACKAGED NANO + FULL + AVOID_C_GENERIC
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0xa00
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v2200: # PACKAGED REDUCED + CBPRINTF_PACKAGE_ADD_STRING_IDXS
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x2200
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v2201: # PACKAGED FULL + CBPRINTF_PACKAGE_ADD_STRING_IDXS
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x2200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v2207: # PACKAGED FULL + FP + FP_A + CBPRINTF_PACKAGE_ADD_STRING_IDXS
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x2200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_FP_SUPPORT=y
      - CONFIG_CBPRINTF_FP_A_SUPPORT=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v2208: # PACKAGED %n + CBPRINTF_PACKAGE_ADD_STRING_IDXS
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x2200
    extra_configs:
      - CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
      - CONFIG_CBPRINTF_N_SPECIFIER=y
      - CONFIG_MINIMAL_LIBC=y

  utilities.prf.m64v2281: # PACKAGED NANO + FULL + CBPRINTF_PACKAGE_ADD_STRING_IDXS
    extra_args:
      - M64_MODE=1
      - EXTRA_CPPFLAGS=-DVIA_TWISTER=0x2200
    extra_configs:
      - CONFIG_CBPRINTF_FULL_INTEGRAL=y
      - CONFIG_CBPRINTF_NANO=y
      - CONFIG_MINIMAL_LIBC=y
