1; REQUIRES: diasdk 2 3; RUN: llvm-pdbutil pretty -module-syms -globals -types %p/Inputs/FilterTest.pdb \ 4; RUN: | FileCheck --check-prefix=NO_FILTER %s 5 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 10 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 15 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 26 27; NO_FILTER: ---TYPES--- 28; NO_FILTER: Enums: 29; NO_FILTER: enum GlobalEnum 30; NO_FILTER: Typedefs 31; NO_FILTER: typedef int GlobalTypedef 32; NO_FILTER: Classes: 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 46 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 53 54; EXCLUDE_ENUMS: ---TYPES--- 55; EXCLUDE_ENUMS-NOT: GlobalEnum 56; EXCLUDE_ENUMS-NOT: NestedEnum 57; EXCLUDE_ENUMS: GlobalTypedef 58; EXCLUDE_ENUMS: class FilterTestClass 59 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 70 71; EXCLUDE_WHOLE_CLASS: ---TYPES--- 72; EXCLUDE_WHOLE_CLASS-NOT: class FilterTestClass 73 74; EXCLUDE_COMPILAND: ---SYMBOLS--- 75; EXCLUDE_COMPILAND-NOT: FilterTest.obj 76; EXCLUDE_COMPILAND-NOT: __cdecl main 77; EXCLUDE_COMPILAND: * Linker * 78; EXCLUDE_COMPILAND: ---GLOBALS--- 79 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 85 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 95