Index: syzygy/integration_tests/integration_tests_dll.h |
diff --git a/syzygy/integration_tests/integration_tests_dll.h b/syzygy/integration_tests/integration_tests_dll.h |
index 846bbf8e3c849123d4e7bf99f9537e3d05d043cb..019db3602e9aa8c0864d5abf3c1630cc984990a5 100644 |
--- a/syzygy/integration_tests/integration_tests_dll.h |
+++ b/syzygy/integration_tests/integration_tests_dll.h |
@@ -21,186 +21,192 @@ |
namespace testing { |
-enum SupportedCompiler { |
- MSVC, |
- CLANG, |
- BOTH, |
-}; |
- |
-// This macro declares the tests ids and the function that they're associated |
+// This macro declares the SygyAsan tests ids and the function that they're associated |
// with. |
-#define END_TO_END_TEST_ID_TABLE(decl) \ |
- decl(kArrayComputation1, testing::ArrayComputation1, BOTH) \ |
- decl(kArrayComputation2, testing::ArrayComputation2, BOTH) \ |
- decl(kAsanRead8BufferOverflow, testing::AsanReadBufferOverflow<int8_t>, BOTH) \ |
- decl(kAsanRead16BufferOverflow, testing::AsanReadBufferOverflow<int16_t>, BOTH) \ |
- decl(kAsanRead32BufferOverflow, testing::AsanReadBufferOverflow<int32_t>, BOTH) \ |
- decl(kAsanRead64BufferOverflow, testing::AsanReadBufferOverflow<double>, BOTH) \ |
- decl(kAsanRead8BufferUnderflow, testing::AsanReadBufferUnderflow<int8_t>, BOTH) \ |
+#define END_TO_END_ASAN_TESTS(decl) \ |
+ decl(kAsanRead8BufferOverflow, testing::AsanReadBufferOverflow<int8_t>) \ |
+ decl(kAsanRead16BufferOverflow, testing::AsanReadBufferOverflow<int16_t>) \ |
+ decl(kAsanRead32BufferOverflow, testing::AsanReadBufferOverflow<int32_t>) \ |
+ decl(kAsanRead64BufferOverflow, testing::AsanReadBufferOverflow<double>) \ |
+ decl(kAsanRead8BufferUnderflow, testing::AsanReadBufferUnderflow<int8_t>) \ |
decl(kAsanRead16BufferUnderflow, \ |
- testing::AsanReadBufferUnderflow<int16_t>, BOTH) \ |
+ testing::AsanReadBufferUnderflow<int16_t>) \ |
decl(kAsanRead32BufferUnderflow, \ |
- testing::AsanReadBufferUnderflow<int32_t>, BOTH) \ |
+ testing::AsanReadBufferUnderflow<int32_t>) \ |
decl(kAsanRead64BufferUnderflow, \ |
- testing::AsanReadBufferUnderflow<double>, BOTH) \ |
- decl(kAsanWrite8BufferOverflow, testing::AsanWriteBufferOverflow<int8_t>, BOTH) \ |
+ testing::AsanReadBufferUnderflow<double>) \ |
+ decl(kAsanWrite8BufferOverflow, testing::AsanWriteBufferOverflow<int8_t>) \ |
decl(kAsanWrite16BufferOverflow, \ |
- testing::AsanWriteBufferOverflow<int16_t>, BOTH) \ |
+ testing::AsanWriteBufferOverflow<int16_t>) \ |
decl(kAsanWrite32BufferOverflow, \ |
- testing::AsanWriteBufferOverflow<int32_t>, BOTH) \ |
+ testing::AsanWriteBufferOverflow<int32_t>) \ |
decl(kAsanWrite64BufferOverflow, \ |
- testing::AsanWriteBufferOverflow<double>, BOTH) \ |
+ testing::AsanWriteBufferOverflow<double>) \ |
decl(kAsanWrite8BufferUnderflow, \ |
- testing::AsanWriteBufferUnderflow<int8_t>, BOTH) \ |
+ testing::AsanWriteBufferUnderflow<int8_t>) \ |
decl(kAsanWrite16BufferUnderflow, \ |
- testing::AsanWriteBufferUnderflow<int16_t>, BOTH) \ |
+ testing::AsanWriteBufferUnderflow<int16_t>) \ |
decl(kAsanWrite32BufferUnderflow, \ |
- testing::AsanWriteBufferUnderflow<int32_t>, BOTH) \ |
+ testing::AsanWriteBufferUnderflow<int32_t>) \ |
decl(kAsanWrite64BufferUnderflow, \ |
- testing::AsanWriteBufferUnderflow<double>, BOTH) \ |
- decl(kAsanRead8UseAfterFree, testing::AsanReadUseAfterFree<int8_t>, BOTH) \ |
- decl(kAsanRead16UseAfterFree, testing::AsanReadUseAfterFree<int16_t>, BOTH) \ |
- decl(kAsanRead32UseAfterFree, testing::AsanReadUseAfterFree<int32_t>, BOTH) \ |
- decl(kAsanRead64UseAfterFree, testing::AsanReadUseAfterFree<double>, BOTH) \ |
- decl(kAsanWrite8UseAfterFree, testing::AsanWriteUseAfterFree<int8_t>, BOTH) \ |
- decl(kAsanWrite16UseAfterFree, testing::AsanWriteUseAfterFree<int16_t>, BOTH) \ |
- decl(kAsanWrite32UseAfterFree, testing::AsanWriteUseAfterFree<int32_t>, BOTH) \ |
- decl(kAsanWrite64UseAfterFree, testing::AsanWriteUseAfterFree<double>, BOTH) \ |
- decl(kAsanMemsetOverflow, testing::AsanMemsetOverflow<int32_t>, BOTH) \ |
- decl(kAsanMemsetUnderflow, testing::AsanMemsetUnderflow<int8_t>, BOTH) \ |
- decl(kAsanMemsetUseAfterFree, testing::AsanMemsetUseAfterFree<size_t>, BOTH) \ |
- decl(kAsanMemchrOverflow, testing::AsanMemchrOverflow<double>, BOTH) \ |
- decl(kAsanMemchrUnderflow, testing::AsanMemchrUnderflow<int32_t>, BOTH) \ |
- decl(kAsanMemchrUseAfterFree, testing::AsanMemchrUseAfterFree<double>, BOTH) \ |
- decl(kAsanMemmoveReadOverflow, testing::AsanMemmoveReadOverflow<double>, BOTH) \ |
+ testing::AsanWriteBufferUnderflow<double>) \ |
+ decl(kAsanRead8UseAfterFree, testing::AsanReadUseAfterFree<int8_t>) \ |
+ decl(kAsanRead16UseAfterFree, testing::AsanReadUseAfterFree<int16_t>) \ |
+ decl(kAsanRead32UseAfterFree, testing::AsanReadUseAfterFree<int32_t>) \ |
+ decl(kAsanRead64UseAfterFree, testing::AsanReadUseAfterFree<double>) \ |
+ decl(kAsanWrite8UseAfterFree, testing::AsanWriteUseAfterFree<int8_t>) \ |
+ decl(kAsanWrite16UseAfterFree, testing::AsanWriteUseAfterFree<int16_t>) \ |
+ decl(kAsanWrite32UseAfterFree, testing::AsanWriteUseAfterFree<int32_t>) \ |
+ decl(kAsanWrite64UseAfterFree, testing::AsanWriteUseAfterFree<double>) \ |
+ decl(kAsanMemsetOverflow, testing::AsanMemsetOverflow<int32_t>) \ |
+ decl(kAsanMemsetUnderflow, testing::AsanMemsetUnderflow<int8_t>) \ |
+ decl(kAsanMemsetUseAfterFree, testing::AsanMemsetUseAfterFree<size_t>) \ |
+ decl(kAsanMemchrOverflow, testing::AsanMemchrOverflow<double>) \ |
+ decl(kAsanMemchrUnderflow, testing::AsanMemchrUnderflow<int32_t>) \ |
+ decl(kAsanMemchrUseAfterFree, testing::AsanMemchrUseAfterFree<double>) \ |
+ decl(kAsanMemmoveReadOverflow, testing::AsanMemmoveReadOverflow<double>) \ |
decl(kAsanMemmoveReadUnderflow, \ |
- testing::AsanMemmoveReadUnderflow<int16_t>, BOTH) \ |
+ testing::AsanMemmoveReadUnderflow<int16_t>) \ |
decl(kAsanMemmoveUseAfterFree, \ |
- testing::AsanMemmoveUseAfterFree<uint32_t>, BOTH) \ |
+ testing::AsanMemmoveUseAfterFree<uint32_t>) \ |
decl(kAsanMemmoveWriteOverflow, \ |
- testing::AsanMemmoveWriteOverflow<size_t>, BOTH) \ |
+ testing::AsanMemmoveWriteOverflow<size_t>) \ |
decl(kAsanMemmoveWriteUnderflow, \ |
- testing::AsanMemmoveWriteUnderflow<int8_t>, BOTH) \ |
- decl(kAsanMemcpyReadOverflow, testing::AsanMemcpyReadOverflow<int32_t>, BOTH) \ |
- decl(kAsanMemcpyReadUnderflow, testing::AsanMemcpyReadUnderflow<int8_t>, BOTH) \ |
- decl(kAsanMemcpyUseAfterFree, testing::AsanMemcpyUseAfterFree<int16_t>, BOTH) \ |
- decl(kAsanMemcpyWriteOverflow, testing::AsanMemcpyWriteOverflow<double>, BOTH) \ |
+ testing::AsanMemmoveWriteUnderflow<int8_t>) \ |
+ decl(kAsanMemcpyReadOverflow, testing::AsanMemcpyReadOverflow<int32_t>) \ |
+ decl(kAsanMemcpyReadUnderflow, testing::AsanMemcpyReadUnderflow<int8_t>) \ |
+ decl(kAsanMemcpyUseAfterFree, testing::AsanMemcpyUseAfterFree<int16_t>) \ |
+ decl(kAsanMemcpyWriteOverflow, testing::AsanMemcpyWriteOverflow<double>) \ |
decl(kAsanMemcpyWriteUnderflow, \ |
- testing::AsanMemcpyWriteUnderflow<int16_t>, BOTH) \ |
- decl(kAsanStrcspnKeysOverflow, testing::AsanStrcspnKeysOverflow, BOTH) \ |
- decl(kAsanStrcspnKeysUnderflow, testing::AsanStrcspnKeysUnderflow, BOTH) \ |
- decl(kAsanStrcspnKeysUseAfterFree, testing::AsanStrcspnKeysUseAfterFree, BOTH) \ |
- decl(kAsanStrcspnSrcOverflow, testing::AsanStrcspnSrcOverflow, BOTH) \ |
- decl(kAsanStrcspnSrcUnderflow, testing::AsanStrcspnSrcUnderflow, BOTH) \ |
- decl(kAsanStrcspnSrcUseAfterFree, testing::AsanStrcspnSrcUseAfterFree, BOTH) \ |
- decl(kAsanStrlenOverflow, testing::AsanStrlenOverflow, BOTH) \ |
- decl(kAsanStrlenUnderflow, testing::AsanStrlenUnderflow, BOTH) \ |
- decl(kAsanStrlenUseAfterFree, testing::AsanStrlenUseAfterFree, BOTH) \ |
- decl(kAsanStrnlenOverflow, testing::AsanStrnlenOverflow, BOTH) \ |
- decl(kAsanStrnlenUnderflow, testing::AsanStrnlenUnderflow, BOTH) \ |
- decl(kAsanStrnlenUseAfterFree, testing::AsanStrnlenUseAfterFree, BOTH) \ |
- decl(kAsanWcsnlenOverflow, testing::AsanWcsnlenOverflow, BOTH) \ |
- decl(kAsanWcsnlenUnderflow, testing::AsanWcsnlenUnderflow, BOTH) \ |
- decl(kAsanWcsnlenUseAfterFree, testing::AsanWcsnlenUseAfterFree, BOTH) \ |
- decl(kAsanStrrchrOverflow, testing::AsanStrrchrOverflow, BOTH) \ |
- decl(kAsanStrrchrUnderflow, testing::AsanStrrchrUnderflow, BOTH) \ |
- decl(kAsanStrrchrUseAfterFree, testing::AsanStrrchrUseAfterFree, BOTH) \ |
- decl(kAsanWcsrchrOverflow, testing::AsanWcsrchrOverflow, BOTH) \ |
- decl(kAsanWcsrchrUnderflow, testing::AsanWcsrchrUnderflow, BOTH) \ |
- decl(kAsanWcsrchrUseAfterFree, testing::AsanWcsrchrUseAfterFree, BOTH) \ |
- decl(kAsanWcschrOverflow, testing::AsanWcschrOverflow, BOTH) \ |
- decl(kAsanWcschrUnderflow, testing::AsanWcschrUnderflow, BOTH) \ |
- decl(kAsanWcschrUseAfterFree, testing::AsanWcschrUseAfterFree, BOTH) \ |
- decl(kAsanStrcmpSrc1Overflow, testing::AsanStrcmpSrc1Overflow, BOTH) \ |
- decl(kAsanStrcmpSrc1Underflow, testing::AsanStrcmpSrc1Underflow, BOTH) \ |
- decl(kAsanStrcmpSrc1UseAfterFree, testing::AsanStrcmpSrc1UseAfterFree, BOTH) \ |
- decl(kAsanStrcmpSrc2Overflow, testing::AsanStrcmpSrc2Overflow, BOTH) \ |
- decl(kAsanStrcmpSrc2Underflow, testing::AsanStrcmpSrc2Underflow, BOTH) \ |
- decl(kAsanStrcmpSrc2UseAfterFree, testing::AsanStrcmpSrc2UseAfterFree, BOTH) \ |
- decl(kAsanStrpbrkKeysOverflow, testing::AsanStrpbrkKeysOverflow, BOTH) \ |
- decl(kAsanStrpbrkKeysUnderflow, testing::AsanStrpbrkKeysUnderflow, BOTH) \ |
- decl(kAsanStrpbrkKeysUseAfterFree, testing::AsanStrpbrkKeysUseAfterFree, BOTH) \ |
- decl(kAsanStrpbrkSrcOverflow, testing::AsanStrpbrkSrcOverflow, BOTH) \ |
- decl(kAsanStrpbrkSrcUnderflow, testing::AsanStrpbrkSrcUnderflow, BOTH) \ |
- decl(kAsanStrpbrkSrcUseAfterFree, testing::AsanStrpbrkSrcUseAfterFree, BOTH) \ |
- decl(kAsanStrstrSrc1Overflow, testing::AsanStrstrSrc1Overflow, BOTH) \ |
- decl(kAsanStrstrSrc1Underflow, testing::AsanStrstrSrc1Underflow, BOTH) \ |
- decl(kAsanStrstrSrc1UseAfterFree, testing::AsanStrstrSrc1UseAfterFree, BOTH) \ |
- decl(kAsanStrstrSrc2Overflow, testing::AsanStrstrSrc2Overflow, BOTH) \ |
- decl(kAsanStrstrSrc2Underflow, testing::AsanStrstrSrc2Underflow, BOTH) \ |
- decl(kAsanStrstrSrc2UseAfterFree, testing::AsanStrstrSrc2UseAfterFree, BOTH) \ |
- decl(kAsanWcsstrKeysOverflow, testing::AsanWcsstrKeysOverflow, BOTH) \ |
- decl(kAsanStrspnKeysOverflow, testing::AsanStrspnKeysOverflow, BOTH) \ |
- decl(kAsanStrspnKeysUnderflow, testing::AsanStrspnKeysUnderflow, BOTH) \ |
- decl(kAsanStrspnKeysUseAfterFree, testing::AsanStrspnKeysUseAfterFree, BOTH) \ |
- decl(kAsanStrspnSrcOverflow, testing::AsanStrspnSrcOverflow, BOTH) \ |
- decl(kAsanStrspnSrcUnderflow, testing::AsanStrspnSrcUnderflow, BOTH) \ |
- decl(kAsanStrspnSrcUseAfterFree, testing::AsanStrspnSrcUseAfterFree, BOTH) \ |
- decl(kAsanStrncpySrcOverflow, testing::AsanStrncpySrcOverflow, BOTH) \ |
- decl(kAsanStrncpySrcUnderflow, testing::AsanStrncpySrcUnderflow, BOTH) \ |
- decl(kAsanStrncpySrcUseAfterFree, testing::AsanStrncpySrcUseAfterFree, BOTH) \ |
- decl(kAsanStrncpyDstOverflow, testing::AsanStrncpyDstOverflow, BOTH) \ |
- decl(kAsanStrncpyDstUnderflow, testing::AsanStrncpyDstUnderflow, BOTH) \ |
- decl(kAsanStrncpyDstUseAfterFree, testing::AsanStrncpyDstUseAfterFree, BOTH) \ |
- decl(kAsanStrncatSuffixOverflow, testing::AsanStrncatSuffixOverflow, BOTH) \ |
- decl(kAsanStrncatSuffixUnderflow, testing::AsanStrncatSuffixUnderflow, BOTH) \ |
+ testing::AsanMemcpyWriteUnderflow<int16_t>) \ |
+ decl(kAsanStrcspnKeysOverflow, testing::AsanStrcspnKeysOverflow) \ |
+ decl(kAsanStrcspnKeysUnderflow, testing::AsanStrcspnKeysUnderflow) \ |
+ decl(kAsanStrcspnKeysUseAfterFree, testing::AsanStrcspnKeysUseAfterFree) \ |
+ decl(kAsanStrcspnSrcOverflow, testing::AsanStrcspnSrcOverflow) \ |
+ decl(kAsanStrcspnSrcUnderflow, testing::AsanStrcspnSrcUnderflow) \ |
+ decl(kAsanStrcspnSrcUseAfterFree, testing::AsanStrcspnSrcUseAfterFree) \ |
+ decl(kAsanStrlenOverflow, testing::AsanStrlenOverflow) \ |
+ decl(kAsanStrlenUnderflow, testing::AsanStrlenUnderflow) \ |
+ decl(kAsanStrlenUseAfterFree, testing::AsanStrlenUseAfterFree) \ |
+ decl(kAsanStrnlenOverflow, testing::AsanStrnlenOverflow) \ |
+ decl(kAsanStrnlenUnderflow, testing::AsanStrnlenUnderflow) \ |
+ decl(kAsanStrnlenUseAfterFree, testing::AsanStrnlenUseAfterFree) \ |
+ decl(kAsanWcsnlenOverflow, testing::AsanWcsnlenOverflow) \ |
+ decl(kAsanWcsnlenUnderflow, testing::AsanWcsnlenUnderflow) \ |
+ decl(kAsanWcsnlenUseAfterFree, testing::AsanWcsnlenUseAfterFree) \ |
+ decl(kAsanStrrchrOverflow, testing::AsanStrrchrOverflow) \ |
+ decl(kAsanStrrchrUnderflow, testing::AsanStrrchrUnderflow) \ |
+ decl(kAsanStrrchrUseAfterFree, testing::AsanStrrchrUseAfterFree) \ |
+ decl(kAsanWcsrchrOverflow, testing::AsanWcsrchrOverflow) \ |
+ decl(kAsanWcsrchrUnderflow, testing::AsanWcsrchrUnderflow) \ |
+ decl(kAsanWcsrchrUseAfterFree, testing::AsanWcsrchrUseAfterFree) \ |
+ decl(kAsanWcschrOverflow, testing::AsanWcschrOverflow) \ |
+ decl(kAsanWcschrUnderflow, testing::AsanWcschrUnderflow) \ |
+ decl(kAsanWcschrUseAfterFree, testing::AsanWcschrUseAfterFree) \ |
+ decl(kAsanStrcmpSrc1Overflow, testing::AsanStrcmpSrc1Overflow) \ |
+ decl(kAsanStrcmpSrc1Underflow, testing::AsanStrcmpSrc1Underflow) \ |
+ decl(kAsanStrcmpSrc1UseAfterFree, testing::AsanStrcmpSrc1UseAfterFree) \ |
+ decl(kAsanStrcmpSrc2Overflow, testing::AsanStrcmpSrc2Overflow) \ |
+ decl(kAsanStrcmpSrc2Underflow, testing::AsanStrcmpSrc2Underflow) \ |
+ decl(kAsanStrcmpSrc2UseAfterFree, testing::AsanStrcmpSrc2UseAfterFree) \ |
+ decl(kAsanStrpbrkKeysOverflow, testing::AsanStrpbrkKeysOverflow) \ |
+ decl(kAsanStrpbrkKeysUnderflow, testing::AsanStrpbrkKeysUnderflow) \ |
+ decl(kAsanStrpbrkKeysUseAfterFree, testing::AsanStrpbrkKeysUseAfterFree) \ |
+ decl(kAsanStrpbrkSrcOverflow, testing::AsanStrpbrkSrcOverflow) \ |
+ decl(kAsanStrpbrkSrcUnderflow, testing::AsanStrpbrkSrcUnderflow) \ |
+ decl(kAsanStrpbrkSrcUseAfterFree, testing::AsanStrpbrkSrcUseAfterFree) \ |
+ decl(kAsanStrstrSrc1Overflow, testing::AsanStrstrSrc1Overflow) \ |
+ decl(kAsanStrstrSrc1Underflow, testing::AsanStrstrSrc1Underflow) \ |
+ decl(kAsanStrstrSrc1UseAfterFree, testing::AsanStrstrSrc1UseAfterFree) \ |
+ decl(kAsanStrstrSrc2Overflow, testing::AsanStrstrSrc2Overflow) \ |
+ decl(kAsanStrstrSrc2Underflow, testing::AsanStrstrSrc2Underflow) \ |
+ decl(kAsanStrstrSrc2UseAfterFree, testing::AsanStrstrSrc2UseAfterFree) \ |
+ decl(kAsanWcsstrKeysOverflow, testing::AsanWcsstrKeysOverflow) \ |
+ decl(kAsanStrspnKeysOverflow, testing::AsanStrspnKeysOverflow) \ |
+ decl(kAsanStrspnKeysUnderflow, testing::AsanStrspnKeysUnderflow) \ |
+ decl(kAsanStrspnKeysUseAfterFree, testing::AsanStrspnKeysUseAfterFree) \ |
+ decl(kAsanStrspnSrcOverflow, testing::AsanStrspnSrcOverflow) \ |
+ decl(kAsanStrspnSrcUnderflow, testing::AsanStrspnSrcUnderflow) \ |
+ decl(kAsanStrspnSrcUseAfterFree, testing::AsanStrspnSrcUseAfterFree) \ |
+ decl(kAsanStrncpySrcOverflow, testing::AsanStrncpySrcOverflow) \ |
+ decl(kAsanStrncpySrcUnderflow, testing::AsanStrncpySrcUnderflow) \ |
+ decl(kAsanStrncpySrcUseAfterFree, testing::AsanStrncpySrcUseAfterFree) \ |
+ decl(kAsanStrncpyDstOverflow, testing::AsanStrncpyDstOverflow) \ |
+ decl(kAsanStrncpyDstUnderflow, testing::AsanStrncpyDstUnderflow) \ |
+ decl(kAsanStrncpyDstUseAfterFree, testing::AsanStrncpyDstUseAfterFree) \ |
+ decl(kAsanStrncatSuffixOverflow, testing::AsanStrncatSuffixOverflow) \ |
+ decl(kAsanStrncatSuffixUnderflow, testing::AsanStrncatSuffixUnderflow) \ |
decl(kAsanStrncatSuffixUseAfterFree, \ |
- testing::AsanStrncatSuffixUseAfterFree, BOTH) \ |
- decl(kAsanStrncatDstOverflow, testing::AsanStrncatDstOverflow, BOTH) \ |
- decl(kAsanStrncatDstUnderflow, testing::AsanStrncatDstUnderflow, BOTH) \ |
- decl(kAsanStrncatDstUseAfterFree, testing::AsanStrncatDstUseAfterFree, BOTH) \ |
- decl(kAsanReadFileOverflow, testing::AsanReadFileOverflow, BOTH) \ |
- decl(kAsanReadFileUseAfterFree, testing::AsanReadFileUseAfterFree, BOTH) \ |
- decl(kAsanWriteFileOverflow, testing::AsanWriteFileOverflow, BOTH) \ |
- decl(kAsanWriteFileUseAfterFree, testing::AsanWriteFileUseAfterFree, BOTH) \ |
- decl(kAsanCorruptBlock, testing::AsanCorruptBlock, BOTH) \ |
+ testing::AsanStrncatSuffixUseAfterFree) \ |
+ decl(kAsanStrncatDstOverflow, testing::AsanStrncatDstOverflow) \ |
+ decl(kAsanStrncatDstUnderflow, testing::AsanStrncatDstUnderflow) \ |
+ decl(kAsanStrncatDstUseAfterFree, testing::AsanStrncatDstUseAfterFree) \ |
+ decl(kAsanReadFileOverflow, testing::AsanReadFileOverflow) \ |
+ decl(kAsanReadFileUseAfterFree, testing::AsanReadFileUseAfterFree) \ |
+ decl(kAsanWriteFileOverflow, testing::AsanWriteFileOverflow) \ |
+ decl(kAsanWriteFileUseAfterFree, testing::AsanWriteFileUseAfterFree) \ |
+ decl(kAsanCorruptBlock, testing::AsanCorruptBlock) \ |
decl(kAsanCorruptBlockInQuarantine, \ |
- testing::AsanCorruptBlockInQuarantine, BOTH) \ |
- decl(kBBEntryCallOnce, BBEntryCallOnce, BOTH) \ |
- decl(kBBEntryCallTree, BBEntryCallTree, BOTH) \ |
- decl(kBBEntryCallRecursive, BBEntryCallRecursive, BOTH) \ |
- decl(kCoverage1, testing::coverage_func1, BOTH) \ |
- decl(kCoverage2, testing::coverage_func2, BOTH) \ |
- decl(kCoverage3, testing::coverage_func3, BOTH) \ |
- decl(kProfileCallExport, testing::CallExportedFunction, BOTH) \ |
- decl(kProfileGetMyRVA, testing::GetMyRVA, BOTH) \ |
- decl(kAsanInvalidAccessWithCorruptAllocatedBlockHeader, \ |
- testing::AsanInvalidAccessWithCorruptAllocatedBlockHeader, BOTH) \ |
+ testing::AsanCorruptBlockInQuarantine) \ |
+ decl(kAsanInvalidAccessWithCorruptAllocatedBlockHeader, \ |
+ testing::AsanInvalidAccessWithCorruptAllocatedBlockHeader) \ |
decl(kAsanInvalidAccessWithCorruptAllocatedBlockTrailer, \ |
- testing::AsanInvalidAccessWithCorruptAllocatedBlockTrailer, BOTH) \ |
+ testing::AsanInvalidAccessWithCorruptAllocatedBlockTrailer) \ |
decl(kAsanInvalidAccessWithCorruptFreedBlock, \ |
- testing::AsanInvalidAccessWithCorruptFreedBlock, BOTH) \ |
+ testing::AsanInvalidAccessWithCorruptFreedBlock) \ |
decl(kAsanReadLargeAllocationTrailerBeforeFree, \ |
- testing::AsanReadLargeAllocationTrailerBeforeFree, BOTH) \ |
+ testing::AsanReadLargeAllocationTrailerBeforeFree) \ |
decl(kAsanReadLargeAllocationBodyAfterFree, \ |
- testing::AsanReadLargeAllocationBodyAfterFree, BOTH) \ |
+ testing::AsanReadLargeAllocationBodyAfterFree) \ |
decl(kAsanReadPageAllocationTrailerBeforeFreeAllocation, \ |
- testing::AsanReadPageAllocationTrailerBeforeFree, BOTH) \ |
+ testing::AsanReadPageAllocationTrailerBeforeFree) \ |
decl(kAsanWritePageAllocationBodyAfterFree, \ |
- testing::AsanWritePageAllocationBodyAfterFree, BOTH) \ |
- decl(kAsanMemcmpAccessViolation, testing::AsanMemcmpAccessViolation, BOTH) \ |
+ testing::AsanWritePageAllocationBodyAfterFree) \ |
+ decl(kAsanMemcmpAccessViolation, testing::AsanMemcmpAccessViolation) \ |
decl(kAsanCorruptBlockWithPageProtections, \ |
- testing::AsanCorruptBlockWithPageProtections, BOTH) \ |
+ testing::AsanCorruptBlockWithPageProtections) \ |
decl(kAsanNearNullptrAccessHeapCorruptionInstrumented, \ |
- testing::AsanNearNullptrAccessHeapCorruptionInstrumented, BOTH) \ |
+ testing::AsanNearNullptrAccessHeapCorruptionInstrumented) \ |
decl(kAsanNearNullptrAccessHeapCorruptionUninstrumented, \ |
- testing::AsanNearNullptrAccessHeapCorruptionUninstrumented, BOTH) \ |
+ testing::AsanNearNullptrAccessHeapCorruptionUninstrumented) \ |
decl(kAsanNearNullptrAccessNoHeapCorruptionInstrumented, \ |
- testing::AsanNearNullptrAccessNoHeapCorruptionInstrumented, BOTH) \ |
+ testing::AsanNearNullptrAccessNoHeapCorruptionInstrumented) \ |
decl(kAsanNearNullptrAccessNoHeapCorruptionUninstrumented, \ |
- testing::AsanNearNullptrAccessNoHeapCorruptionUninstrumented, BOTH) \ |
+ testing::AsanNearNullptrAccessNoHeapCorruptionUninstrumented) \ |
decl(kAsanNullptrAccessNoHeapCorruptionUninstrumented, \ |
- testing::AsanNullptrAccessNoHeapCorruptionUninstrumented, BOTH) \ |
- decl(kAsanDeferredFreeTLS, testing::AsanDeferredFreeTLS, BOTH) |
+ testing::AsanNullptrAccessNoHeapCorruptionUninstrumented) \ |
+ decl(kAsanDeferredFreeTLS, testing::AsanDeferredFreeTLS) |
+ |
+ |
+ |
+// This macro declares the non SygyAsan tests ids and the function that they're associated |
+// with. |
+#define END_TO_END_NON_ASAN_TESTS(decl) \ |
+ decl(kArrayComputation1, testing::ArrayComputation1) \ |
+ decl(kArrayComputation2, testing::ArrayComputation2) \ |
+ decl(kBBEntryCallOnce, BBEntryCallOnce) \ |
+ decl(kBBEntryCallTree, BBEntryCallTree) \ |
+ decl(kBBEntryCallRecursive, BBEntryCallRecursive) \ |
+ decl(kCoverage1, testing::coverage_func1) \ |
+ decl(kCoverage2, testing::coverage_func2) \ |
+ decl(kCoverage3, testing::coverage_func3) \ |
+ decl(kProfileCallExport, testing::CallExportedFunction) \ |
+ decl(kProfileGetMyRVA, testing::GetMyRVA) |
+ |
+// For clang-cl run only the asan tests. |
+#ifdef __clang__ |
+#define END_TO_END_TEST_ID_TABLE(decl) END_TO_END_ASAN_TESTS(decl) |
+#else |
+#define END_TO_END_TEST_ID_TABLE(decl) END_TO_END_NON_ASAN_TESTS(decl) END_TO_END_ASAN_TESTS(decl) |
+#endif // __clang__ |
// This enumeration contains an unique id for each end to end test. It is used |
// to perform an indirect call through the DLL entry point 'EndToEndTest'. |
enum EndToEndTestId { |
-#define DECLARE_END_TO_END_ENUM(enum_name, function_to_call, supported_compiler) enum_name, |
+#define DECLARE_END_TO_END_ENUM(enum_name, function_to_call) enum_name, |
END_TO_END_TEST_ID_TABLE(DECLARE_END_TO_END_ENUM) |
#undef DECLARE_END_TO_END_ENUM |
}; |
- |
} // namespace testing |
#endif // SYZYGY_INTEGRATION_TESTS_INTEGRATION_TESTS_DLL_H_ |