| 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_
|
|
|