1# RUN: not llvm-xray stack %s 2>&1 | FileCheck --check-prefix HALT %s
2# RUN: llvm-xray stack -k %s 2>&1 | FileCheck --check-prefix KEEP-GOING-SUCCEEDS %s
3# RUN: llvm-xray stack -k %s | FileCheck --check-prefix KEEP-GOING %s
4---
5header:
6  version: 1
7  type: 0
8  constant-tsc: true
9  nonstop-tsc: true
10  cycle-frequency: 2601000000
11records:
12  - { type: 0, func-id: 1, cpu: 1, thread: 111, kind: function-enter, tsc: 10001 }
13  - { type: 1, func-id: 4, cpu: 1, thread: 111, kind: function-exit, tsc: 10301 }
14  - { type: 0, func-id: 1, cpu: 1, thread: 111, kind: function-enter, tsc: 10401 }
15  - { type: 0, func-id: 2, cpu: 1, thread: 111, kind: function-enter, tsc: 10501 }
16  - { type: 0, func-id: 3, cpu: 1, thread: 111, kind: function-enter, tsc: 10601 }
17  - { type: 1, func-id: 3, cpu: 1, thread: 111, kind: function-exit, tsc: 10701 }
18  - { type: 1, func-id: 2, cpu: 1, thread: 111, kind: function-exit, tsc: 10751 }
19  - { type: 1, func-id: 1, cpu: 1, thread: 111, kind: function-exit, tsc: 10775 }
20...
21
22# HALT: llvm-xray: Found record {FuncId: "#4", ThreadId: "111", RecordType: "Fn Exit"} with no matching function entry
23#KEEP-GOING-SUCCEEDS: Found record {FuncId: "#4", ThreadId: "111", RecordType: "Fn Exit"} with no matching function entry
24#KEEP-GOING: Unique Stacks: 2
25# Note the interesting case here that the stack { fn-1 } is a prefix of { fn-1, fn-2, fn-3 } but they
26# are still counted as unique stacks.
27