#
# There are 4 different test cases that have to be considered:
#
# | Case # | Controller type        | Selected mode        |  Example board |
# +--------+------------------------+----------------------+----------------+
# |    1   | Classical CAN only     | CONFIG_CAN_FD_MODE=n | nucleo_f072    |
# |    2   | Classical CAN only     | CONFIG_CAN_FD_MODE=y | nucleo_f072    |
# |    3   | Classical CAN + CAN-FD | CONFIG_CAN_FD_MODE=n | native_posix   |
# |    4   | Classical CAN + CAN-FD | CONFIG_CAN_FD_MODE=y | native_posix   |
#
# The test-specific CONFIG_TEST_USE_CAN_FD_MODE is used to decide if the test should use
# CAN-FD independent of CONFIG_CAN_FD_MODE configuration.
#

tests:
  # cases 1, 3
  canbus.isotp.conformance:
    tags:
      - can
      - isotp
    depends_on: can
    filter: dt_chosen_enabled("zephyr,canbus") and not dt_compat_enabled("kvaser,pcican")
  # case 2
  canbus.isotp.conformance.fd.unused:
    tags:
      - can
      - isotp
    extra_configs:
      - CONFIG_TEST_USE_CAN_FD_MODE=n
      - CONFIG_CAN_FD_MODE=y
    depends_on: can
    filter: dt_chosen_enabled("zephyr,canbus") and not dt_compat_enabled("kvaser,pcican")
  # case 4
  canbus.isotp.conformance.fd.txdl_32:
    tags:
      - can
      - isotp
    extra_configs:
      - CONFIG_TEST_USE_CAN_FD_MODE=y
      - CONFIG_TEST_ISOTP_TX_DL=32
      - CONFIG_CAN_FD_MODE=y
    depends_on: can
    filter: dt_chosen_enabled("zephyr,canbus") and not dt_compat_enabled("kvaser,pcican")
  # case 4
  canbus.isotp.conformance.fd.txdl_64:
    tags:
      - can
      - isotp
    extra_configs:
      - CONFIG_TEST_USE_CAN_FD_MODE=y
      - CONFIG_TEST_ISOTP_TX_DL=64
      - CONFIG_CAN_FD_MODE=y
    depends_on: can
    filter: dt_chosen_enabled("zephyr,canbus") and not dt_compat_enabled("kvaser,pcican")
