| ; REQUIRES: diasdk |
| |
| ; RUN: llvm-pdbutil pretty -module-syms -globals -types %p/Inputs/FilterTest.pdb \ |
| ; RUN: | FileCheck --check-prefix=NO_FILTER %s |
| |
| ; RUN: llvm-pdbutil pretty -types -exclude-types="GlobalTypedef|NestedTypedef" \ |
| ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_TYPEDEFS %s |
| ; RUN: llvm-pdbutil pretty -classes -enums %p/Inputs/FilterTest.pdb \ |
| ; RUN: | FileCheck --check-prefix=EXCLUDE_TYPEDEFS %s |
| |
| ; RUN: llvm-pdbutil pretty -types -exclude-types="GlobalEnum|NestedEnum" \ |
| ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_ENUMS %s |
| ; RUN: llvm-pdbutil pretty -classes -typedefs %p/Inputs/FilterTest.pdb \ |
| ; RUN: | FileCheck --check-prefix=EXCLUDE_ENUMS %s |
| |
| ; RUN: llvm-pdbutil pretty -types -module-syms -globals -exclude-symbols="MemberVar|GlobalVar" \ |
| ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_VARS %s |
| ; RUN: llvm-pdbutil pretty -classes -exclude-types="FilterTestClass" \ |
| ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_WHOLE_CLASS %s |
| ; RUN: llvm-pdbutil pretty -module-syms -globals -exclude-compilands="FilterTest.obj" \ |
| ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=EXCLUDE_COMPILAND %s |
| ; RUN: llvm-pdbutil pretty -types -include-types="FilterTestClass" \ |
| ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=INCLUDE_ONLY_TYPES %s |
| ; RUN: llvm-pdbutil pretty -types -module-syms -globals -include-symbols="[[:<:]](IntGlobalVar|DoubleGlobalVar)[[:>:]]" \ |
| ; RUN: %p/Inputs/FilterTest.pdb | FileCheck --check-prefix=INCLUDE_ONLY_VARS %s |
| |
| ; NO_FILTER: ---TYPES--- |
| ; NO_FILTER: Enums: |
| ; NO_FILTER: enum GlobalEnum |
| ; NO_FILTER: Typedefs |
| ; NO_FILTER: typedef int GlobalTypedef |
| ; NO_FILTER: Classes: |
| ; NO_FILTER: struct __vc_attributes |
| ; NO_FILTER: class FilterTestClass |
| ; NO_FILTER-DAG: typedef int NestedTypedef |
| ; NO_FILTER-DAG: enum NestedEnum |
| ; NO_FILTER-DAG: int IntMemberVar |
| ; NO_FILTER-DAG: double DoubleMemberVar |
| ; NO_FILTER: ---SYMBOLS--- |
| ; NO_FILTER: Inputs\FilterTest.obj |
| ; NO_FILTER: int __cdecl main(int argc, char** argv) |
| ; NO_FILTER: ---GLOBALS--- |
| ; NO_FILTER-DAG: double DoubleGlobalVar |
| ; NO_FILTER-DAG: int IntGlobalVar |
| ; NO_FILTER-DAG: GlobalEnum GlobalEnumVar |
| |
| ; EXCLUDE_TYPEDEFS: ---TYPES--- |
| ; EXCLUDE_TYPEDEFS-NOT: GlobalTypedef |
| ; EXCLUDE_TYPEDEFS-NOT: NestedTypedef |
| ; EXCLUDE_TYPEDEFS-DAG: GlobalEnum |
| ; EXCLUDE_TYPEDEFS-DAG: NestedEnum |
| ; EXCLUDE_TYPEDEFS: class FilterTestClass |
| |
| ; EXCLUDE_ENUMS: ---TYPES--- |
| ; EXCLUDE_ENUMS-NOT: GlobalEnum |
| ; EXCLUDE_ENUMS-NOT: NestedEnum |
| ; EXCLUDE_ENUMS: GlobalTypedef |
| ; EXCLUDE_ENUMS: class FilterTestClass |
| |
| ; EXCLUDE_VARS: ---TYPES--- |
| ; EXCLUDE_VARS-NOT: IntMemberVar |
| ; EXCLUDE_VARS-NOT: DoubleMemberVar |
| ; EXCLUDE_VARS-DAG: GlobalEnum |
| ; EXCLUDE_VARS-DAG: NestedEnum |
| ; EXCLUDE_VARS: GlobalTypedef |
| ; EXCLUDE_VARS: class FilterTestClass |
| ; EXCLUDE_VARS: ---GLOBALS--- |
| ; EXCLUDE_VARS-NOT: DoubleGlobalVar |
| ; EXCLUDE_VARS-NOT: IntGlobalVar |
| |
| ; EXCLUDE_WHOLE_CLASS: ---TYPES--- |
| ; EXCLUDE_WHOLE_CLASS-NOT: class FilterTestClass |
| |
| ; EXCLUDE_COMPILAND: ---SYMBOLS--- |
| ; EXCLUDE_COMPILAND-NOT: FilterTest.obj |
| ; EXCLUDE_COMPILAND-NOT: __cdecl main |
| ; EXCLUDE_COMPILAND: * Linker * |
| ; EXCLUDE_COMPILAND: ---GLOBALS--- |
| |
| ; Everything but types are displayed normally. But FilterTestClass is |
| ; the only type that should be displayed. |
| ; INCLUDE_ONLY_TYPES: ---TYPES--- |
| ; INCLUDE_ONLY_TYPES-NOT: GlobalTypedef |
| ; INCLUDE_ONLY_TYPES: class FilterTestClass |
| |
| ; We should only see DoubleGlobalVar and IntGlobalVar. This means that even |
| ; variables printed in class definitions should be filtered out. |
| ; INCLUDE_ONLY_VARS: ---TYPES--- |
| ; INCLUDE_ONLY_VARS: class FilterTestClass |
| ; INCLUDE_ONLY_VARS-NOT: IntMemberVar |
| ; INCLUDE_ONLY_VARS-NOT: IntDoubleVar |
| ; INCLUDE_ONLY_VARS: ---GLOBALS--- |
| ; INCLUDE_ONLY_VARS: DoubleGlobalVar |
| ; INCLUDE_ONLY_VARS: IntGlobalVar |