OLD | NEW |
1 // Copyright 2013 Google Inc. All Rights Reserved. | 1 // Copyright 2013 Google Inc. All Rights Reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
12 // See the License for the specific language governing permissions and | 12 // See the License for the specific language governing permissions and |
13 // limitations under the License. | 13 // limitations under the License. |
14 // | 14 // |
15 // This file declares the entry point for the different end to end | 15 // This file declares the entry point for the different end to end |
16 // instrumentation tests. | 16 // instrumentation tests. |
17 #ifndef SYZYGY_INTEGRATION_TESTS_INTEGRATION_TESTS_DLL_H_ | 17 #ifndef SYZYGY_INTEGRATION_TESTS_INTEGRATION_TESTS_DLL_H_ |
18 #define SYZYGY_INTEGRATION_TESTS_INTEGRATION_TESTS_DLL_H_ | 18 #define SYZYGY_INTEGRATION_TESTS_INTEGRATION_TESTS_DLL_H_ |
19 | 19 |
20 #include <stdint.h> | 20 #include <stdint.h> |
21 | 21 |
22 namespace testing { | 22 namespace testing { |
23 | 23 |
24 enum SupportedCompiler { | 24 // This macro declares the SygyAsan tests ids and the function that they're asso
ciated |
25 MSVC, | 25 // with. |
26 CLANG, | 26 #define END_TO_END_ASAN_TESTS(decl) \ |
27 BOTH, | 27 decl(kAsanRead8BufferOverflow, testing::AsanReadBufferOverflow<int8_t>) \ |
28 }; | 28 decl(kAsanRead16BufferOverflow, testing::AsanReadBufferOverflow<int16_t>) \ |
| 29 decl(kAsanRead32BufferOverflow, testing::AsanReadBufferOverflow<int32_t>) \ |
| 30 decl(kAsanRead64BufferOverflow, testing::AsanReadBufferOverflow<double>) \ |
| 31 decl(kAsanRead8BufferUnderflow, testing::AsanReadBufferUnderflow<int8_t>) \ |
| 32 decl(kAsanRead16BufferUnderflow, \ |
| 33 testing::AsanReadBufferUnderflow<int16_t>) \ |
| 34 decl(kAsanRead32BufferUnderflow, \ |
| 35 testing::AsanReadBufferUnderflow<int32_t>) \ |
| 36 decl(kAsanRead64BufferUnderflow, \ |
| 37 testing::AsanReadBufferUnderflow<double>) \ |
| 38 decl(kAsanWrite8BufferOverflow, testing::AsanWriteBufferOverflow<int8_t>) \ |
| 39 decl(kAsanWrite16BufferOverflow, \ |
| 40 testing::AsanWriteBufferOverflow<int16_t>) \ |
| 41 decl(kAsanWrite32BufferOverflow, \ |
| 42 testing::AsanWriteBufferOverflow<int32_t>) \ |
| 43 decl(kAsanWrite64BufferOverflow, \ |
| 44 testing::AsanWriteBufferOverflow<double>) \ |
| 45 decl(kAsanWrite8BufferUnderflow, \ |
| 46 testing::AsanWriteBufferUnderflow<int8_t>) \ |
| 47 decl(kAsanWrite16BufferUnderflow, \ |
| 48 testing::AsanWriteBufferUnderflow<int16_t>) \ |
| 49 decl(kAsanWrite32BufferUnderflow, \ |
| 50 testing::AsanWriteBufferUnderflow<int32_t>) \ |
| 51 decl(kAsanWrite64BufferUnderflow, \ |
| 52 testing::AsanWriteBufferUnderflow<double>) \ |
| 53 decl(kAsanRead8UseAfterFree, testing::AsanReadUseAfterFree<int8_t>) \ |
| 54 decl(kAsanRead16UseAfterFree, testing::AsanReadUseAfterFree<int16_t>) \ |
| 55 decl(kAsanRead32UseAfterFree, testing::AsanReadUseAfterFree<int32_t>) \ |
| 56 decl(kAsanRead64UseAfterFree, testing::AsanReadUseAfterFree<double>) \ |
| 57 decl(kAsanWrite8UseAfterFree, testing::AsanWriteUseAfterFree<int8_t>) \ |
| 58 decl(kAsanWrite16UseAfterFree, testing::AsanWriteUseAfterFree<int16_t>) \ |
| 59 decl(kAsanWrite32UseAfterFree, testing::AsanWriteUseAfterFree<int32_t>) \ |
| 60 decl(kAsanWrite64UseAfterFree, testing::AsanWriteUseAfterFree<double>) \ |
| 61 decl(kAsanMemsetOverflow, testing::AsanMemsetOverflow<int32_t>) \ |
| 62 decl(kAsanMemsetUnderflow, testing::AsanMemsetUnderflow<int8_t>) \ |
| 63 decl(kAsanMemsetUseAfterFree, testing::AsanMemsetUseAfterFree<size_t>) \ |
| 64 decl(kAsanMemchrOverflow, testing::AsanMemchrOverflow<double>) \ |
| 65 decl(kAsanMemchrUnderflow, testing::AsanMemchrUnderflow<int32_t>) \ |
| 66 decl(kAsanMemchrUseAfterFree, testing::AsanMemchrUseAfterFree<double>) \ |
| 67 decl(kAsanMemmoveReadOverflow, testing::AsanMemmoveReadOverflow<double>) \ |
| 68 decl(kAsanMemmoveReadUnderflow, \ |
| 69 testing::AsanMemmoveReadUnderflow<int16_t>) \ |
| 70 decl(kAsanMemmoveUseAfterFree, \ |
| 71 testing::AsanMemmoveUseAfterFree<uint32_t>) \ |
| 72 decl(kAsanMemmoveWriteOverflow, \ |
| 73 testing::AsanMemmoveWriteOverflow<size_t>) \ |
| 74 decl(kAsanMemmoveWriteUnderflow, \ |
| 75 testing::AsanMemmoveWriteUnderflow<int8_t>) \ |
| 76 decl(kAsanMemcpyReadOverflow, testing::AsanMemcpyReadOverflow<int32_t>) \ |
| 77 decl(kAsanMemcpyReadUnderflow, testing::AsanMemcpyReadUnderflow<int8_t>) \ |
| 78 decl(kAsanMemcpyUseAfterFree, testing::AsanMemcpyUseAfterFree<int16_t>) \ |
| 79 decl(kAsanMemcpyWriteOverflow, testing::AsanMemcpyWriteOverflow<double>) \ |
| 80 decl(kAsanMemcpyWriteUnderflow, \ |
| 81 testing::AsanMemcpyWriteUnderflow<int16_t>) \ |
| 82 decl(kAsanStrcspnKeysOverflow, testing::AsanStrcspnKeysOverflow) \ |
| 83 decl(kAsanStrcspnKeysUnderflow, testing::AsanStrcspnKeysUnderflow) \ |
| 84 decl(kAsanStrcspnKeysUseAfterFree, testing::AsanStrcspnKeysUseAfterFree) \ |
| 85 decl(kAsanStrcspnSrcOverflow, testing::AsanStrcspnSrcOverflow) \ |
| 86 decl(kAsanStrcspnSrcUnderflow, testing::AsanStrcspnSrcUnderflow) \ |
| 87 decl(kAsanStrcspnSrcUseAfterFree, testing::AsanStrcspnSrcUseAfterFree) \ |
| 88 decl(kAsanStrlenOverflow, testing::AsanStrlenOverflow) \ |
| 89 decl(kAsanStrlenUnderflow, testing::AsanStrlenUnderflow) \ |
| 90 decl(kAsanStrlenUseAfterFree, testing::AsanStrlenUseAfterFree) \ |
| 91 decl(kAsanStrnlenOverflow, testing::AsanStrnlenOverflow) \ |
| 92 decl(kAsanStrnlenUnderflow, testing::AsanStrnlenUnderflow) \ |
| 93 decl(kAsanStrnlenUseAfterFree, testing::AsanStrnlenUseAfterFree) \ |
| 94 decl(kAsanWcsnlenOverflow, testing::AsanWcsnlenOverflow) \ |
| 95 decl(kAsanWcsnlenUnderflow, testing::AsanWcsnlenUnderflow) \ |
| 96 decl(kAsanWcsnlenUseAfterFree, testing::AsanWcsnlenUseAfterFree) \ |
| 97 decl(kAsanStrrchrOverflow, testing::AsanStrrchrOverflow) \ |
| 98 decl(kAsanStrrchrUnderflow, testing::AsanStrrchrUnderflow) \ |
| 99 decl(kAsanStrrchrUseAfterFree, testing::AsanStrrchrUseAfterFree) \ |
| 100 decl(kAsanWcsrchrOverflow, testing::AsanWcsrchrOverflow) \ |
| 101 decl(kAsanWcsrchrUnderflow, testing::AsanWcsrchrUnderflow) \ |
| 102 decl(kAsanWcsrchrUseAfterFree, testing::AsanWcsrchrUseAfterFree) \ |
| 103 decl(kAsanWcschrOverflow, testing::AsanWcschrOverflow) \ |
| 104 decl(kAsanWcschrUnderflow, testing::AsanWcschrUnderflow) \ |
| 105 decl(kAsanWcschrUseAfterFree, testing::AsanWcschrUseAfterFree) \ |
| 106 decl(kAsanStrcmpSrc1Overflow, testing::AsanStrcmpSrc1Overflow) \ |
| 107 decl(kAsanStrcmpSrc1Underflow, testing::AsanStrcmpSrc1Underflow) \ |
| 108 decl(kAsanStrcmpSrc1UseAfterFree, testing::AsanStrcmpSrc1UseAfterFree) \ |
| 109 decl(kAsanStrcmpSrc2Overflow, testing::AsanStrcmpSrc2Overflow) \ |
| 110 decl(kAsanStrcmpSrc2Underflow, testing::AsanStrcmpSrc2Underflow) \ |
| 111 decl(kAsanStrcmpSrc2UseAfterFree, testing::AsanStrcmpSrc2UseAfterFree) \ |
| 112 decl(kAsanStrpbrkKeysOverflow, testing::AsanStrpbrkKeysOverflow) \ |
| 113 decl(kAsanStrpbrkKeysUnderflow, testing::AsanStrpbrkKeysUnderflow) \ |
| 114 decl(kAsanStrpbrkKeysUseAfterFree, testing::AsanStrpbrkKeysUseAfterFree) \ |
| 115 decl(kAsanStrpbrkSrcOverflow, testing::AsanStrpbrkSrcOverflow) \ |
| 116 decl(kAsanStrpbrkSrcUnderflow, testing::AsanStrpbrkSrcUnderflow) \ |
| 117 decl(kAsanStrpbrkSrcUseAfterFree, testing::AsanStrpbrkSrcUseAfterFree) \ |
| 118 decl(kAsanStrstrSrc1Overflow, testing::AsanStrstrSrc1Overflow) \ |
| 119 decl(kAsanStrstrSrc1Underflow, testing::AsanStrstrSrc1Underflow) \ |
| 120 decl(kAsanStrstrSrc1UseAfterFree, testing::AsanStrstrSrc1UseAfterFree) \ |
| 121 decl(kAsanStrstrSrc2Overflow, testing::AsanStrstrSrc2Overflow) \ |
| 122 decl(kAsanStrstrSrc2Underflow, testing::AsanStrstrSrc2Underflow) \ |
| 123 decl(kAsanStrstrSrc2UseAfterFree, testing::AsanStrstrSrc2UseAfterFree) \ |
| 124 decl(kAsanWcsstrKeysOverflow, testing::AsanWcsstrKeysOverflow) \ |
| 125 decl(kAsanStrspnKeysOverflow, testing::AsanStrspnKeysOverflow) \ |
| 126 decl(kAsanStrspnKeysUnderflow, testing::AsanStrspnKeysUnderflow) \ |
| 127 decl(kAsanStrspnKeysUseAfterFree, testing::AsanStrspnKeysUseAfterFree) \ |
| 128 decl(kAsanStrspnSrcOverflow, testing::AsanStrspnSrcOverflow) \ |
| 129 decl(kAsanStrspnSrcUnderflow, testing::AsanStrspnSrcUnderflow) \ |
| 130 decl(kAsanStrspnSrcUseAfterFree, testing::AsanStrspnSrcUseAfterFree) \ |
| 131 decl(kAsanStrncpySrcOverflow, testing::AsanStrncpySrcOverflow) \ |
| 132 decl(kAsanStrncpySrcUnderflow, testing::AsanStrncpySrcUnderflow) \ |
| 133 decl(kAsanStrncpySrcUseAfterFree, testing::AsanStrncpySrcUseAfterFree) \ |
| 134 decl(kAsanStrncpyDstOverflow, testing::AsanStrncpyDstOverflow) \ |
| 135 decl(kAsanStrncpyDstUnderflow, testing::AsanStrncpyDstUnderflow) \ |
| 136 decl(kAsanStrncpyDstUseAfterFree, testing::AsanStrncpyDstUseAfterFree) \ |
| 137 decl(kAsanStrncatSuffixOverflow, testing::AsanStrncatSuffixOverflow) \ |
| 138 decl(kAsanStrncatSuffixUnderflow, testing::AsanStrncatSuffixUnderflow) \ |
| 139 decl(kAsanStrncatSuffixUseAfterFree, \ |
| 140 testing::AsanStrncatSuffixUseAfterFree) \ |
| 141 decl(kAsanStrncatDstOverflow, testing::AsanStrncatDstOverflow) \ |
| 142 decl(kAsanStrncatDstUnderflow, testing::AsanStrncatDstUnderflow) \ |
| 143 decl(kAsanStrncatDstUseAfterFree, testing::AsanStrncatDstUseAfterFree) \ |
| 144 decl(kAsanReadFileOverflow, testing::AsanReadFileOverflow) \ |
| 145 decl(kAsanReadFileUseAfterFree, testing::AsanReadFileUseAfterFree) \ |
| 146 decl(kAsanWriteFileOverflow, testing::AsanWriteFileOverflow) \ |
| 147 decl(kAsanWriteFileUseAfterFree, testing::AsanWriteFileUseAfterFree) \ |
| 148 decl(kAsanCorruptBlock, testing::AsanCorruptBlock) \ |
| 149 decl(kAsanCorruptBlockInQuarantine, \ |
| 150 testing::AsanCorruptBlockInQuarantine) \ |
| 151 decl(kAsanInvalidAccessWithCorruptAllocatedBlockHeader, \ |
| 152 testing::AsanInvalidAccessWithCorruptAllocatedBlockHeader) \ |
| 153 decl(kAsanInvalidAccessWithCorruptAllocatedBlockTrailer, \ |
| 154 testing::AsanInvalidAccessWithCorruptAllocatedBlockTrailer) \ |
| 155 decl(kAsanInvalidAccessWithCorruptFreedBlock, \ |
| 156 testing::AsanInvalidAccessWithCorruptFreedBlock) \ |
| 157 decl(kAsanReadLargeAllocationTrailerBeforeFree, \ |
| 158 testing::AsanReadLargeAllocationTrailerBeforeFree) \ |
| 159 decl(kAsanReadLargeAllocationBodyAfterFree, \ |
| 160 testing::AsanReadLargeAllocationBodyAfterFree) \ |
| 161 decl(kAsanReadPageAllocationTrailerBeforeFreeAllocation, \ |
| 162 testing::AsanReadPageAllocationTrailerBeforeFree) \ |
| 163 decl(kAsanWritePageAllocationBodyAfterFree, \ |
| 164 testing::AsanWritePageAllocationBodyAfterFree) \ |
| 165 decl(kAsanMemcmpAccessViolation, testing::AsanMemcmpAccessViolation) \ |
| 166 decl(kAsanCorruptBlockWithPageProtections, \ |
| 167 testing::AsanCorruptBlockWithPageProtections) \ |
| 168 decl(kAsanNearNullptrAccessHeapCorruptionInstrumented, \ |
| 169 testing::AsanNearNullptrAccessHeapCorruptionInstrumented) \ |
| 170 decl(kAsanNearNullptrAccessHeapCorruptionUninstrumented, \ |
| 171 testing::AsanNearNullptrAccessHeapCorruptionUninstrumented) \ |
| 172 decl(kAsanNearNullptrAccessNoHeapCorruptionInstrumented, \ |
| 173 testing::AsanNearNullptrAccessNoHeapCorruptionInstrumented) \ |
| 174 decl(kAsanNearNullptrAccessNoHeapCorruptionUninstrumented, \ |
| 175 testing::AsanNearNullptrAccessNoHeapCorruptionUninstrumented) \ |
| 176 decl(kAsanNullptrAccessNoHeapCorruptionUninstrumented, \ |
| 177 testing::AsanNullptrAccessNoHeapCorruptionUninstrumented) \ |
| 178 decl(kAsanDeferredFreeTLS, testing::AsanDeferredFreeTLS) |
29 | 179 |
30 // This macro declares the tests ids and the function that they're associated | 180 |
| 181 |
| 182 // This macro declares the non SygyAsan tests ids and the function that they're
associated |
31 // with. | 183 // with. |
32 #define END_TO_END_TEST_ID_TABLE(decl) \ | 184 #define END_TO_END_NON_ASAN_TESTS(decl) \ |
33 decl(kArrayComputation1, testing::ArrayComputation1, BOTH) \ | 185 decl(kArrayComputation1, testing::ArrayComputation1) \ |
34 decl(kArrayComputation2, testing::ArrayComputation2, BOTH) \ | 186 decl(kArrayComputation2, testing::ArrayComputation2) \ |
35 decl(kAsanRead8BufferOverflow, testing::AsanReadBufferOverflow<int8_t>, BOTH
) \ | 187 decl(kBBEntryCallOnce, BBEntryCallOnce) \ |
36 decl(kAsanRead16BufferOverflow, testing::AsanReadBufferOverflow<int16_t>, BO
TH) \ | 188 decl(kBBEntryCallTree, BBEntryCallTree) \ |
37 decl(kAsanRead32BufferOverflow, testing::AsanReadBufferOverflow<int32_t>, BO
TH) \ | 189 decl(kBBEntryCallRecursive, BBEntryCallRecursive) \ |
38 decl(kAsanRead64BufferOverflow, testing::AsanReadBufferOverflow<double>, BOT
H) \ | 190 decl(kCoverage1, testing::coverage_func1) \ |
39 decl(kAsanRead8BufferUnderflow, testing::AsanReadBufferUnderflow<int8_t>, BO
TH) \ | 191 decl(kCoverage2, testing::coverage_func2) \ |
40 decl(kAsanRead16BufferUnderflow, \ | 192 decl(kCoverage3, testing::coverage_func3) \ |
41 testing::AsanReadBufferUnderflow<int16_t>, BOTH) \ | 193 decl(kProfileCallExport, testing::CallExportedFunction) \ |
42 decl(kAsanRead32BufferUnderflow, \ | 194 decl(kProfileGetMyRVA, testing::GetMyRVA) |
43 testing::AsanReadBufferUnderflow<int32_t>, BOTH) \ | 195 |
44 decl(kAsanRead64BufferUnderflow, \ | 196 // For clang-cl run only the asan tests. |
45 testing::AsanReadBufferUnderflow<double>, BOTH) \ | 197 #ifdef __clang__ |
46 decl(kAsanWrite8BufferOverflow, testing::AsanWriteBufferOverflow<int8_t>, BO
TH) \ | 198 #define END_TO_END_TEST_ID_TABLE(decl) END_TO_END_ASAN_TESTS(decl) |
47 decl(kAsanWrite16BufferOverflow, \ | 199 #else |
48 testing::AsanWriteBufferOverflow<int16_t>, BOTH) \ | 200 #define END_TO_END_TEST_ID_TABLE(decl) END_TO_END_NON_ASAN_TESTS(decl) END_TO_EN
D_ASAN_TESTS(decl) |
49 decl(kAsanWrite32BufferOverflow, \ | 201 #endif // __clang__ |
50 testing::AsanWriteBufferOverflow<int32_t>, BOTH) \ | |
51 decl(kAsanWrite64BufferOverflow, \ | |
52 testing::AsanWriteBufferOverflow<double>, BOTH) \ | |
53 decl(kAsanWrite8BufferUnderflow, \ | |
54 testing::AsanWriteBufferUnderflow<int8_t>, BOTH) \ | |
55 decl(kAsanWrite16BufferUnderflow, \ | |
56 testing::AsanWriteBufferUnderflow<int16_t>, BOTH) \ | |
57 decl(kAsanWrite32BufferUnderflow, \ | |
58 testing::AsanWriteBufferUnderflow<int32_t>, BOTH) \ | |
59 decl(kAsanWrite64BufferUnderflow, \ | |
60 testing::AsanWriteBufferUnderflow<double>, BOTH) \ | |
61 decl(kAsanRead8UseAfterFree, testing::AsanReadUseAfterFree<int8_t>, BOTH) \ | |
62 decl(kAsanRead16UseAfterFree, testing::AsanReadUseAfterFree<int16_t>, BOTH)
\ | |
63 decl(kAsanRead32UseAfterFree, testing::AsanReadUseAfterFree<int32_t>, BOTH)
\ | |
64 decl(kAsanRead64UseAfterFree, testing::AsanReadUseAfterFree<double>, BOTH)
\ | |
65 decl(kAsanWrite8UseAfterFree, testing::AsanWriteUseAfterFree<int8_t>, BOTH)
\ | |
66 decl(kAsanWrite16UseAfterFree, testing::AsanWriteUseAfterFree<int16_t>, BOTH
) \ | |
67 decl(kAsanWrite32UseAfterFree, testing::AsanWriteUseAfterFree<int32_t>, BOTH
) \ | |
68 decl(kAsanWrite64UseAfterFree, testing::AsanWriteUseAfterFree<double>, BOTH)
\ | |
69 decl(kAsanMemsetOverflow, testing::AsanMemsetOverflow<int32_t>, BOTH) \ | |
70 decl(kAsanMemsetUnderflow, testing::AsanMemsetUnderflow<int8_t>, BOTH) \ | |
71 decl(kAsanMemsetUseAfterFree, testing::AsanMemsetUseAfterFree<size_t>, BOTH)
\ | |
72 decl(kAsanMemchrOverflow, testing::AsanMemchrOverflow<double>, BOTH) \ | |
73 decl(kAsanMemchrUnderflow, testing::AsanMemchrUnderflow<int32_t>, BOTH) \ | |
74 decl(kAsanMemchrUseAfterFree, testing::AsanMemchrUseAfterFree<double>, BOTH)
\ | |
75 decl(kAsanMemmoveReadOverflow, testing::AsanMemmoveReadOverflow<double>, BOT
H) \ | |
76 decl(kAsanMemmoveReadUnderflow, \ | |
77 testing::AsanMemmoveReadUnderflow<int16_t>, BOTH) \ | |
78 decl(kAsanMemmoveUseAfterFree, \ | |
79 testing::AsanMemmoveUseAfterFree<uint32_t>, BOTH) \ | |
80 decl(kAsanMemmoveWriteOverflow, \ | |
81 testing::AsanMemmoveWriteOverflow<size_t>, BOTH) \ | |
82 decl(kAsanMemmoveWriteUnderflow, \ | |
83 testing::AsanMemmoveWriteUnderflow<int8_t>, BOTH) \ | |
84 decl(kAsanMemcpyReadOverflow, testing::AsanMemcpyReadOverflow<int32_t>, BOTH
) \ | |
85 decl(kAsanMemcpyReadUnderflow, testing::AsanMemcpyReadUnderflow<int8_t>, BOT
H) \ | |
86 decl(kAsanMemcpyUseAfterFree, testing::AsanMemcpyUseAfterFree<int16_t>, BOTH
) \ | |
87 decl(kAsanMemcpyWriteOverflow, testing::AsanMemcpyWriteOverflow<double>, BOT
H) \ | |
88 decl(kAsanMemcpyWriteUnderflow, \ | |
89 testing::AsanMemcpyWriteUnderflow<int16_t>, BOTH) \ | |
90 decl(kAsanStrcspnKeysOverflow, testing::AsanStrcspnKeysOverflow, BOTH) \ | |
91 decl(kAsanStrcspnKeysUnderflow, testing::AsanStrcspnKeysUnderflow, BOTH) \ | |
92 decl(kAsanStrcspnKeysUseAfterFree, testing::AsanStrcspnKeysUseAfterFree, BOT
H) \ | |
93 decl(kAsanStrcspnSrcOverflow, testing::AsanStrcspnSrcOverflow, BOTH) \ | |
94 decl(kAsanStrcspnSrcUnderflow, testing::AsanStrcspnSrcUnderflow, BOTH) \ | |
95 decl(kAsanStrcspnSrcUseAfterFree, testing::AsanStrcspnSrcUseAfterFree, BOTH)
\ | |
96 decl(kAsanStrlenOverflow, testing::AsanStrlenOverflow, BOTH) \ | |
97 decl(kAsanStrlenUnderflow, testing::AsanStrlenUnderflow, BOTH) \ | |
98 decl(kAsanStrlenUseAfterFree, testing::AsanStrlenUseAfterFree, BOTH) \ | |
99 decl(kAsanStrnlenOverflow, testing::AsanStrnlenOverflow, BOTH) \ | |
100 decl(kAsanStrnlenUnderflow, testing::AsanStrnlenUnderflow, BOTH) \ | |
101 decl(kAsanStrnlenUseAfterFree, testing::AsanStrnlenUseAfterFree, BOTH) \ | |
102 decl(kAsanWcsnlenOverflow, testing::AsanWcsnlenOverflow, BOTH) \ | |
103 decl(kAsanWcsnlenUnderflow, testing::AsanWcsnlenUnderflow, BOTH) \ | |
104 decl(kAsanWcsnlenUseAfterFree, testing::AsanWcsnlenUseAfterFree, BOTH) \ | |
105 decl(kAsanStrrchrOverflow, testing::AsanStrrchrOverflow, BOTH) \ | |
106 decl(kAsanStrrchrUnderflow, testing::AsanStrrchrUnderflow, BOTH) \ | |
107 decl(kAsanStrrchrUseAfterFree, testing::AsanStrrchrUseAfterFree, BOTH) \ | |
108 decl(kAsanWcsrchrOverflow, testing::AsanWcsrchrOverflow, BOTH) \ | |
109 decl(kAsanWcsrchrUnderflow, testing::AsanWcsrchrUnderflow, BOTH) \ | |
110 decl(kAsanWcsrchrUseAfterFree, testing::AsanWcsrchrUseAfterFree, BOTH) \ | |
111 decl(kAsanWcschrOverflow, testing::AsanWcschrOverflow, BOTH) \ | |
112 decl(kAsanWcschrUnderflow, testing::AsanWcschrUnderflow, BOTH) \ | |
113 decl(kAsanWcschrUseAfterFree, testing::AsanWcschrUseAfterFree, BOTH) \ | |
114 decl(kAsanStrcmpSrc1Overflow, testing::AsanStrcmpSrc1Overflow, BOTH) \ | |
115 decl(kAsanStrcmpSrc1Underflow, testing::AsanStrcmpSrc1Underflow, BOTH) \ | |
116 decl(kAsanStrcmpSrc1UseAfterFree, testing::AsanStrcmpSrc1UseAfterFree, BOTH)
\ | |
117 decl(kAsanStrcmpSrc2Overflow, testing::AsanStrcmpSrc2Overflow, BOTH) \ | |
118 decl(kAsanStrcmpSrc2Underflow, testing::AsanStrcmpSrc2Underflow, BOTH) \ | |
119 decl(kAsanStrcmpSrc2UseAfterFree, testing::AsanStrcmpSrc2UseAfterFree, BOTH)
\ | |
120 decl(kAsanStrpbrkKeysOverflow, testing::AsanStrpbrkKeysOverflow, BOTH) \ | |
121 decl(kAsanStrpbrkKeysUnderflow, testing::AsanStrpbrkKeysUnderflow, BOTH) \ | |
122 decl(kAsanStrpbrkKeysUseAfterFree, testing::AsanStrpbrkKeysUseAfterFree, BOT
H) \ | |
123 decl(kAsanStrpbrkSrcOverflow, testing::AsanStrpbrkSrcOverflow, BOTH) \ | |
124 decl(kAsanStrpbrkSrcUnderflow, testing::AsanStrpbrkSrcUnderflow, BOTH) \ | |
125 decl(kAsanStrpbrkSrcUseAfterFree, testing::AsanStrpbrkSrcUseAfterFree, BOTH)
\ | |
126 decl(kAsanStrstrSrc1Overflow, testing::AsanStrstrSrc1Overflow, BOTH) \ | |
127 decl(kAsanStrstrSrc1Underflow, testing::AsanStrstrSrc1Underflow, BOTH) \ | |
128 decl(kAsanStrstrSrc1UseAfterFree, testing::AsanStrstrSrc1UseAfterFree, BOTH)
\ | |
129 decl(kAsanStrstrSrc2Overflow, testing::AsanStrstrSrc2Overflow, BOTH) \ | |
130 decl(kAsanStrstrSrc2Underflow, testing::AsanStrstrSrc2Underflow, BOTH) \ | |
131 decl(kAsanStrstrSrc2UseAfterFree, testing::AsanStrstrSrc2UseAfterFree, BOTH)
\ | |
132 decl(kAsanWcsstrKeysOverflow, testing::AsanWcsstrKeysOverflow, BOTH) \ | |
133 decl(kAsanStrspnKeysOverflow, testing::AsanStrspnKeysOverflow, BOTH) \ | |
134 decl(kAsanStrspnKeysUnderflow, testing::AsanStrspnKeysUnderflow, BOTH) \ | |
135 decl(kAsanStrspnKeysUseAfterFree, testing::AsanStrspnKeysUseAfterFree, BOTH)
\ | |
136 decl(kAsanStrspnSrcOverflow, testing::AsanStrspnSrcOverflow, BOTH) \ | |
137 decl(kAsanStrspnSrcUnderflow, testing::AsanStrspnSrcUnderflow, BOTH) \ | |
138 decl(kAsanStrspnSrcUseAfterFree, testing::AsanStrspnSrcUseAfterFree, BOTH)
\ | |
139 decl(kAsanStrncpySrcOverflow, testing::AsanStrncpySrcOverflow, BOTH) \ | |
140 decl(kAsanStrncpySrcUnderflow, testing::AsanStrncpySrcUnderflow, BOTH) \ | |
141 decl(kAsanStrncpySrcUseAfterFree, testing::AsanStrncpySrcUseAfterFree, BOTH)
\ | |
142 decl(kAsanStrncpyDstOverflow, testing::AsanStrncpyDstOverflow, BOTH) \ | |
143 decl(kAsanStrncpyDstUnderflow, testing::AsanStrncpyDstUnderflow, BOTH) \ | |
144 decl(kAsanStrncpyDstUseAfterFree, testing::AsanStrncpyDstUseAfterFree, BOTH)
\ | |
145 decl(kAsanStrncatSuffixOverflow, testing::AsanStrncatSuffixOverflow, BOTH)
\ | |
146 decl(kAsanStrncatSuffixUnderflow, testing::AsanStrncatSuffixUnderflow, BOTH)
\ | |
147 decl(kAsanStrncatSuffixUseAfterFree, \ | |
148 testing::AsanStrncatSuffixUseAfterFree, BOTH) \ | |
149 decl(kAsanStrncatDstOverflow, testing::AsanStrncatDstOverflow, BOTH) \ | |
150 decl(kAsanStrncatDstUnderflow, testing::AsanStrncatDstUnderflow, BOTH) \ | |
151 decl(kAsanStrncatDstUseAfterFree, testing::AsanStrncatDstUseAfterFree, BOTH)
\ | |
152 decl(kAsanReadFileOverflow, testing::AsanReadFileOverflow, BOTH) \ | |
153 decl(kAsanReadFileUseAfterFree, testing::AsanReadFileUseAfterFree, BOTH) \ | |
154 decl(kAsanWriteFileOverflow, testing::AsanWriteFileOverflow, BOTH) \ | |
155 decl(kAsanWriteFileUseAfterFree, testing::AsanWriteFileUseAfterFree, BOTH)
\ | |
156 decl(kAsanCorruptBlock, testing::AsanCorruptBlock, BOTH) \ | |
157 decl(kAsanCorruptBlockInQuarantine, \ | |
158 testing::AsanCorruptBlockInQuarantine, BOTH) \ | |
159 decl(kBBEntryCallOnce, BBEntryCallOnce, BOTH) \ | |
160 decl(kBBEntryCallTree, BBEntryCallTree, BOTH) \ | |
161 decl(kBBEntryCallRecursive, BBEntryCallRecursive, BOTH) \ | |
162 decl(kCoverage1, testing::coverage_func1, BOTH) \ | |
163 decl(kCoverage2, testing::coverage_func2, BOTH) \ | |
164 decl(kCoverage3, testing::coverage_func3, BOTH) \ | |
165 decl(kProfileCallExport, testing::CallExportedFunction, BOTH) \ | |
166 decl(kProfileGetMyRVA, testing::GetMyRVA, BOTH) \ | |
167 decl(kAsanInvalidAccessWithCorruptAllocatedBlockHeader, \ | |
168 testing::AsanInvalidAccessWithCorruptAllocatedBlockHeader, BOTH) \ | |
169 decl(kAsanInvalidAccessWithCorruptAllocatedBlockTrailer, \ | |
170 testing::AsanInvalidAccessWithCorruptAllocatedBlockTrailer, BOTH) \ | |
171 decl(kAsanInvalidAccessWithCorruptFreedBlock, \ | |
172 testing::AsanInvalidAccessWithCorruptFreedBlock, BOTH) \ | |
173 decl(kAsanReadLargeAllocationTrailerBeforeFree, \ | |
174 testing::AsanReadLargeAllocationTrailerBeforeFree, BOTH) \ | |
175 decl(kAsanReadLargeAllocationBodyAfterFree, \ | |
176 testing::AsanReadLargeAllocationBodyAfterFree, BOTH) \ | |
177 decl(kAsanReadPageAllocationTrailerBeforeFreeAllocation, \ | |
178 testing::AsanReadPageAllocationTrailerBeforeFree, BOTH) \ | |
179 decl(kAsanWritePageAllocationBodyAfterFree, \ | |
180 testing::AsanWritePageAllocationBodyAfterFree, BOTH) \ | |
181 decl(kAsanMemcmpAccessViolation, testing::AsanMemcmpAccessViolation, BOTH)
\ | |
182 decl(kAsanCorruptBlockWithPageProtections, \ | |
183 testing::AsanCorruptBlockWithPageProtections, BOTH) \ | |
184 decl(kAsanNearNullptrAccessHeapCorruptionInstrumented, \ | |
185 testing::AsanNearNullptrAccessHeapCorruptionInstrumented, BOTH) \ | |
186 decl(kAsanNearNullptrAccessHeapCorruptionUninstrumented, \ | |
187 testing::AsanNearNullptrAccessHeapCorruptionUninstrumented, BOTH) \ | |
188 decl(kAsanNearNullptrAccessNoHeapCorruptionInstrumented, \ | |
189 testing::AsanNearNullptrAccessNoHeapCorruptionInstrumented, BOTH) \ | |
190 decl(kAsanNearNullptrAccessNoHeapCorruptionUninstrumented, \ | |
191 testing::AsanNearNullptrAccessNoHeapCorruptionUninstrumented, BOTH) \ | |
192 decl(kAsanNullptrAccessNoHeapCorruptionUninstrumented, \ | |
193 testing::AsanNullptrAccessNoHeapCorruptionUninstrumented, BOTH) \ | |
194 decl(kAsanDeferredFreeTLS, testing::AsanDeferredFreeTLS, BOTH) | |
195 | 202 |
196 // This enumeration contains an unique id for each end to end test. It is used | 203 // This enumeration contains an unique id for each end to end test. It is used |
197 // to perform an indirect call through the DLL entry point 'EndToEndTest'. | 204 // to perform an indirect call through the DLL entry point 'EndToEndTest'. |
198 enum EndToEndTestId { | 205 enum EndToEndTestId { |
199 #define DECLARE_END_TO_END_ENUM(enum_name, function_to_call, supported_compiler)
enum_name, | 206 #define DECLARE_END_TO_END_ENUM(enum_name, function_to_call) enum_name, |
200 END_TO_END_TEST_ID_TABLE(DECLARE_END_TO_END_ENUM) | 207 END_TO_END_TEST_ID_TABLE(DECLARE_END_TO_END_ENUM) |
201 #undef DECLARE_END_TO_END_ENUM | 208 #undef DECLARE_END_TO_END_ENUM |
202 }; | 209 }; |
203 | |
204 } // namespace testing | 210 } // namespace testing |
205 | 211 |
206 #endif // SYZYGY_INTEGRATION_TESTS_INTEGRATION_TESTS_DLL_H_ | 212 #endif // SYZYGY_INTEGRATION_TESTS_INTEGRATION_TESTS_DLL_H_ |
OLD | NEW |