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