1common:
2  integration_platforms:
3    - qemu_x86
4    - qemu_x86_64
5  platform_allow:
6    # Representative platforms to make sure this builds without issues
7    # and the analyzer actually runs and outputs something.
8    - mps2/an385
9    - qemu_cortex_a53
10    - qemu_x86
11    - qemu_x86_64
12    - qemu_riscv32
13    - qemu_riscv64
14    - qemu_xtensa/dc233c/mmu
15  extra_configs:
16    - CONFIG_QEMU_ICOUNT=n
17  tags:
18    - debug
19    - thread_analyzer
20tests:
21  debug.thread_analyzer.printk:
22    extra_configs:
23      - CONFIG_THREAD_ANALYZER_USE_PRINTK=y
24    harness: console
25    harness_config:
26      type: multi_line
27      regex:
28        - "(.*)0x([0-9a-fA-F]+)([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
29        - "(.*)ISR0([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
30  debug.thread_analyzer.printk.userspace:
31    filter: CONFIG_ARCH_HAS_USERSPACE
32    extra_configs:
33      - CONFIG_THREAD_ANALYZER_USE_PRINTK=y
34      - CONFIG_USERSPACE=y
35    harness: console
36    harness_config:
37      type: multi_line
38      regex:
39        - "(.*)0x([0-9a-fA-F]+)([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
40        - "(.*)ISR0([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
41  debug.thread_analyzer.printk.userspace.priv_stack:
42    filter: CONFIG_ARCH_HAS_USERSPACE
43    extra_configs:
44      - CONFIG_THREAD_ANALYZER_USE_PRINTK=y
45      - CONFIG_THREAD_ANALYZER_PRIV_STACK_USAGE=y
46      - CONFIG_USERSPACE=y
47    platform_exclude:
48      # These platforms do not yet have the necessary bits to determine
49      # usage of privileged stacks.
50      - mps2/an385
51      - qemu_cortex_a53
52    harness: console
53    harness_config:
54      type: multi_line
55      regex:
56        - "(.*)0x([0-9a-fA-F]+)([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
57        - "(.*)PRIV_STACK: unused [0-9]+ usage [0-9]+ / [0-9]+"
58        - "(.*)ISR0([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
59  debug.thread_analyzer.log_backend:
60    extra_configs:
61      - CONFIG_THREAD_ANALYZER_USE_LOG=y
62      - CONFIG_LOG=y
63      - CONFIG_LOG_MODE_IMMEDIATE=y
64    harness: console
65    harness_config:
66      type: multi_line
67      regex:
68        - "(.*)0x([0-9a-fA-F]+)([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
69        - "(.*)ISR0([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
70  debug.thread_analyzer.log_backend.userspace:
71    filter: CONFIG_ARCH_HAS_USERSPACE
72    extra_configs:
73      - CONFIG_USERSPACE=y
74      - CONFIG_THREAD_ANALYZER_USE_LOG=y
75      - CONFIG_LOG=y
76      - CONFIG_LOG_MODE_IMMEDIATE=y
77    harness: console
78    harness_config:
79      type: multi_line
80      regex:
81        - "(.*)0x([0-9a-fA-F]+)([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
82        - "(.*)ISR0([ ]+) : STACK: unused [0-9]+ usage [0-9]+ / [0-9]+ (.*)"
83