vendor/file: upgrade from 5.32 to 5.38
[dragonfly.git] / contrib / file / magic / Magdir / coverage
1
2 #------------------------------------------------------------------------------
3 # $File: coverage,v 1.2 2019/04/19 00:42:27 christos Exp $
4 # xoverage:  file(1) magic for test coverage data
5
6 # File formats used to store test coverage data
7 # 2016-05-21, Georg Sauthoff <mail@georg.so>
8
9
10 # - GCC gcno - written by GCC at compile time when compiling with
11 #       gcc -ftest-coverage
12 # - GCC gcda - written by a program that was compiled with
13 #       gcc -fprofile-arcs
14 # - LLVM raw profiles - generated by a program compiled with
15 #       clang -fprofile-instr-generate -fcoverage-mapping ...
16 # - LLVM indexed profiles - generated by
17 #       llvm-profdata
18 # - GCOV reports, i.e. the annotated source code
19 # - LCOV trace files, i.e. aggregated GCC profiles
20 #
21 # GCC coverage tracefiles
22 # .gcno file are created during compile time,
23 # while data collected during runtime is stored in .gcda files
24 # cf. gcov-io.h
25 # https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Gcov-Data-Files.html
26 # Examples:
27 # Fedora 23/x86-64/gcc-5.3.1: 6f 6e 63 67 52 33 30 35
28 # Debian 8 PPC64/gcc-4.9.2  : 67 63 6e 6f 34 30 39 2a
29 0       lelong  0x67636e6f      GCC gcno coverage (-ftest-coverage),
30 >&3     byte    x       version %c.
31 >&1     byte    x       \b%c
32
33 # big endian
34 0       belong  0x67636e6f      GCC gcno coverage (-ftest-coverage),
35 >&0     byte    x       version %c.
36 >&2     byte    x       \b%c (big-endian)
37
38 # Examples:
39 # Fedora 23/x86-64/gcc-5.3.1: 61 64 63 67 52 33 30 35
40 # Debian 8 PPC64/gcc-4.9.2  : 67 63 64 61 34 30 39 2a
41 0       lelong  0x67636461      GCC gcda coverage (-fprofile-arcs),
42 >&3     byte    x       version %c.
43 >&1     byte    x       \b%c
44
45 # big endian
46 0       belong  0x67636461      GCC gcda coverage (-fprofile-arcs),
47 >&0     byte    x       version %c.
48 >&2     byte    x       \b%c (big-endian)
49
50
51 # LCOV tracefiles
52 # cf. http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php
53 0       string  TN:
54 >&0     search/64       \nSF:/  LCOV coverage tracefile
55
56
57 # Coverage reports generated by gcov
58 # i.e. source code annoted with coverage information
59 0       string  \x20\x20\x20\x20\x20\x20\x20\x20-:\x20\x20\x20\ 0:Source:
60 >&0     search/128      \x20\x20\x20\x20\x20\x20\x20\x20-:\x20\x20\x20\ 0:Graph:
61 >>&0    search/128      \x20\x20\x20\x20\x20\x20\x20\x20-:\x20\x20\x20\ 0:Data: GCOV coverage report
62
63
64 # LLVM coverage files
65
66 # raw data after running a program compiled with:
67 # `clang -fprofile-instr-generate -fcoverage-mapping ...`
68 # default name: default.profraw
69 # magic is: \xFF lprofr \x81
70 # cf. https://llvm.org/docs/doxygen/html/InstrProfData_8inc_source.html
71 0       lequad  0xff6c70726f667281      LLVM raw profile data,
72 >&0     byte    x       version %d
73
74 # big endian
75 0       bequad  0xff6c70726f667281      LLVM raw profile data,
76 >&7     byte    x       version %d (big-endian)
77
78
79 # LLVM indexed instruction profile (as generated by llvm-profdata)
80 # magic is: reverse(\xFF lprofi \x81)
81 # cf. https://llvm.org/docs/CoverageMappingFormat.html
82 # https://llvm.org/docs/doxygen/html/namespacellvm_1_1IndexedInstrProf.html
83 # https://llvm.org/docs/CommandGuide/llvm-cov.html
84 # https://llvm.org/docs/CommandGuide/llvm-profdata.html
85 0       lequad  0x8169666f72706cff      LLVM indexed profile data,
86 >&0     byte    x       version %d
87
88 # big endian
89 0       bequad  0x8169666f72706cff      LLVM indexed profile data,
90 >&7     byte    x       version %d (big-endian)
91