3 ; RUN: llvm-pdbutil pretty -module-syms -globals -types %p/Inputs/FilterTest.pdb \
4 ; RUN: | FileCheck --check-prefix=NO_FILTER %s
6 ; RUN: llvm-pdbutil pretty -types -exclude-types="GlobalTypedef|NestedTypedef" \
7 ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_TYPEDEFS %s
8 ; RUN: llvm-pdbutil pretty -classes -enums %p/Inputs/FilterTest.pdb \
9 ; RUN: | FileCheck --check-prefix=EXCLUDE_TYPEDEFS %s
11 ; RUN: llvm-pdbutil pretty -types -exclude-types="GlobalEnum|NestedEnum" \
12 ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_ENUMS %s
13 ; RUN: llvm-pdbutil pretty -classes -typedefs %p/Inputs/FilterTest.pdb \
14 ; RUN: | FileCheck --check-prefix=EXCLUDE_ENUMS %s
16 ; RUN: llvm-pdbutil pretty -types -module-syms -globals -exclude-symbols="MemberVar|GlobalVar" \
17 ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_VARS %s
18 ; RUN: llvm-pdbutil pretty -classes -exclude-types="FilterTestClass" \
19 ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_WHOLE_CLASS %s
20 ; RUN: llvm-pdbutil pretty -module-syms -globals -exclude-compilands="FilterTest.obj" \
21 ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_COMPILAND %s
22 ; RUN: llvm-pdbutil pretty -types -include-types="FilterTestClass" \
23 ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=INCLUDE_ONLY_TYPES %s
24 ; RUN: llvm-pdbutil pretty -types -module-syms -globals -include-symbols="[[:<:]](IntGlobalVar|DoubleGlobalVar)[[:>:]]" \
25 ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=INCLUDE_ONLY_VARS %s
27 ; NO_FILTER: ---TYPES---
29 ; NO_FILTER: enum GlobalEnum
31 ; NO_FILTER: typedef int GlobalTypedef
33 ; NO_FILTER: struct __vc_attributes
34 ; NO_FILTER: class FilterTestClass
35 ; NO_FILTER-DAG: typedef int NestedTypedef
36 ; NO_FILTER-DAG: enum NestedEnum
37 ; NO_FILTER-DAG: int IntMemberVar
38 ; NO_FILTER-DAG: double DoubleMemberVar
39 ; NO_FILTER: ---SYMBOLS---
40 ; NO_FILTER: Inputs\FilterTest.obj
41 ; NO_FILTER: int __cdecl main(int argc, char** argv)
42 ; NO_FILTER: ---GLOBALS---
43 ; NO_FILTER-DAG: double DoubleGlobalVar
44 ; NO_FILTER-DAG: int IntGlobalVar
45 ; NO_FILTER-DAG: GlobalEnum GlobalEnumVar
47 ; EXCLUDE_TYPEDEFS: ---TYPES---
48 ; EXCLUDE_TYPEDEFS-NOT: GlobalTypedef
49 ; EXCLUDE_TYPEDEFS-NOT: NestedTypedef
50 ; EXCLUDE_TYPEDEFS-DAG: GlobalEnum
51 ; EXCLUDE_TYPEDEFS-DAG: NestedEnum
52 ; EXCLUDE_TYPEDEFS: class FilterTestClass
54 ; EXCLUDE_ENUMS: ---TYPES---
55 ; EXCLUDE_ENUMS-NOT: GlobalEnum
56 ; EXCLUDE_ENUMS-NOT: NestedEnum
57 ; EXCLUDE_ENUMS: GlobalTypedef
58 ; EXCLUDE_ENUMS: class FilterTestClass
60 ; EXCLUDE_VARS: ---TYPES---
61 ; EXCLUDE_VARS-NOT: IntMemberVar
62 ; EXCLUDE_VARS-NOT: DoubleMemberVar
63 ; EXCLUDE_VARS-DAG: GlobalEnum
64 ; EXCLUDE_VARS-DAG: NestedEnum
65 ; EXCLUDE_VARS: GlobalTypedef
66 ; EXCLUDE_VARS: class FilterTestClass
67 ; EXCLUDE_VARS: ---GLOBALS---
68 ; EXCLUDE_VARS-NOT: DoubleGlobalVar
69 ; EXCLUDE_VARS-NOT: IntGlobalVar
71 ; EXCLUDE_WHOLE_CLASS: ---TYPES---
72 ; EXCLUDE_WHOLE_CLASS-NOT: class FilterTestClass
74 ; EXCLUDE_COMPILAND: ---SYMBOLS---
75 ; EXCLUDE_COMPILAND-NOT: FilterTest.obj
76 ; EXCLUDE_COMPILAND-NOT: __cdecl main
77 ; EXCLUDE_COMPILAND: * Linker *
78 ; EXCLUDE_COMPILAND: ---GLOBALS---
80 ; Everything but types are displayed normally. But FilterTestClass is
81 ; the only type that should be displayed.
82 ; INCLUDE_ONLY_TYPES: ---TYPES---
83 ; INCLUDE_ONLY_TYPES-NOT: GlobalTypedef
84 ; INCLUDE_ONLY_TYPES: class FilterTestClass
86 ; We should only see DoubleGlobalVar and IntGlobalVar. This means that even
87 ; variables printed in class definitions should be filtered out.
88 ; INCLUDE_ONLY_VARS: ---TYPES---
89 ; INCLUDE_ONLY_VARS: class FilterTestClass
90 ; INCLUDE_ONLY_VARS-NOT: IntMemberVar
91 ; INCLUDE_ONLY_VARS-NOT: IntDoubleVar
92 ; INCLUDE_ONLY_VARS: ---GLOBALS---
93 ; INCLUDE_ONLY_VARS: DoubleGlobalVar
94 ; INCLUDE_ONLY_VARS: IntGlobalVar