1common:
2  platform_key:
3    - arch
4  tags:
5    - kernel
6    - benchmark
7  # Native platforms excluded as they are not relevant: These benchmarks run some kernel primitives
8  # in a loop during a predefined time counting how many times they execute. But in the POSIX arch,
9  # time does not pass while the CPU executes. So the benchmark just appears as if hung.
10  arch_exclude:
11    - posix
12  # some slow qemu_* excluded
13  platform_exclude:
14    - qemu_malta/qemu_malta
15    - qemu_malta/qemu_malta/be
16    - qemu_nios2
17  integration_platforms:
18    - qemu_x86
19    - qemu_cortex_a53
20  timeout: 300
21  harness: console
22  harness_config:
23    type: multi_line
24    ordered: true
25    regex:
26      # Collect at least 3 measurements for each benchmark:
27      - "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
28      - "(.*)Time Period Total:[ ]*[0-9]+(.*)"
29      - "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
30      - "(.*)Time Period Total:[ ]*[0-9]+(.*)"
31      - "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
32      - "(.*)Time Period Total:[ ]*[0-9]+(.*)"
33    record:
34      regex:
35        - "Time Period Total:[ ]*(?P<total_time_period>[0-9]+)"
36        - "ERROR:[ ]*(?P<error_message>.*)"
37        - "[ ]+Average:(?P<error_details>.*)"
38      merge: true
39
40tests:
41  benchmark.thread_metric.basic:
42    extra_configs:
43      - CONFIG_TM_BASIC=y
44
45  benchmark.thread_metric.cooperative:
46    extra_configs:
47      - CONFIG_TM_COOPERATIVE=y
48
49  benchmark.thread_metric.interrupt:
50    extra_configs:
51      - CONFIG_TM_INTERRUPT=y
52
53  benchmark.thread_metric.interrupt_preemption:
54    extra_configs:
55      - CONFIG_TM_INTERRUPT_PREEMPTION=y
56
57  benchmark.thread_metric.memory_allocation:
58    extra_configs:
59      - CONFIG_TM_MEMORY_ALLOCATION=y
60
61  benchmark.thread_metric.message:
62    extra_configs:
63      - CONFIG_TM_MESSAGE=y
64
65  benchmark.thread_metric.preemptive:
66    extra_configs:
67      - CONFIG_TM_PREEMPTIVE=y
68
69  benchmark.thread_metric.synchronization:
70    extra_configs:
71      - CONFIG_TM_SYNCHRONIZATION=y
72