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  integration_platforms:
17    - qemu_x86
18    - qemu_cortex_a53
19  timeout: 300
20  harness: console
21  harness_config:
22    type: multi_line
23    ordered: true
24    regex:
25      # Collect at least 3 measurements for each benchmark:
26      - "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
27      - "(.*)Time Period Total:[ ]*[0-9]+(.*)"
28      - "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
29      - "(.*)Time Period Total:[ ]*[0-9]+(.*)"
30      - "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
31      - "(.*)Time Period Total:[ ]*[0-9]+(.*)"
32    record:
33      regex:
34        - "Time Period Total:[ ]*(?P<total_time_period>[0-9]+)"
35        - "ERROR:[ ]*(?P<error_message>.*)"
36        - "[ ]+Average:(?P<error_details>.*)"
37      merge: true
38
39tests:
40  benchmark.thread_metric.basic:
41    extra_configs:
42      - CONFIG_TM_BASIC=y
43
44  benchmark.thread_metric.cooperative:
45    extra_configs:
46      - CONFIG_TM_COOPERATIVE=y
47
48  benchmark.thread_metric.interrupt:
49    extra_configs:
50      - CONFIG_TM_INTERRUPT=y
51
52  benchmark.thread_metric.interrupt_preemption:
53    extra_configs:
54      - CONFIG_TM_INTERRUPT_PREEMPTION=y
55
56  benchmark.thread_metric.memory_allocation:
57    extra_configs:
58      - CONFIG_TM_MEMORY_ALLOCATION=y
59
60  benchmark.thread_metric.message:
61    extra_configs:
62      - CONFIG_TM_MESSAGE=y
63
64  benchmark.thread_metric.preemptive:
65    extra_configs:
66      - CONFIG_TM_PREEMPTIVE=y
67
68  benchmark.thread_metric.synchronization:
69    extra_configs:
70      - CONFIG_TM_SYNCHRONIZATION=y
71