xref: /llvm-project/lld/test/COFF/time-trace.s (revision 356139bd027d65b6843cbd4eda642104cfe6cf8f)
1# REQUIRES: x86
2
3# RUN: llvm-mc -triple=x86_64-windows-msvc -filetype=obj -o %t.obj %s
4
5# Test implicit trace file name
6# RUN: lld-link %t.obj /entry:main /out:%t1.exe --time-trace --time-trace-granularity=0
7# RUN: cat %t1.exe.time-trace \
8# RUN:   | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
9# RUN:   | FileCheck %s
10
11# Test specified trace file name
12# RUN: lld-link %t.obj /entry:main /out:%t2.exe --time-trace=%t2.json --time-trace-granularity=0
13# RUN: cat %t2.json \
14# RUN:   | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
15# RUN:   | FileCheck %s
16
17# Test trace requested to stdout
18# RUN: env LLD_IN_TEST=1 lld-link %t.obj /entry:main /out:%t3.exe --time-trace=- --time-trace-granularity=0 \
19# RUN:   | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
20# RUN:   | FileCheck %s
21
22# CHECK:      "beginningOfTime": {{[0-9]{16},}}
23# CHECK-NEXT: "traceEvents": [
24
25# Check one event has correct fields
26# CHECK:      "dur":
27# CHECK-NEXT: "name":
28# CHECK-NEXT: "ph":
29# CHECK-NEXT: "pid":
30# CHECK-NEXT: "tid":
31# CHECK-NEXT: "ts":
32
33# Check there are events
34# CHECK: "name": "Read input files"
35
36# Check process_name entry field
37# CHECK: "name": "lld-link{{(.exe)?}}"
38# CHECK: "name": "process_name"
39# CHECK: "name": "thread_name"
40
41.text
42.global main
43main:
44	ret
45