This test was failing on non-X86-64 platforms because stackmaps only work on X86-64.

Disable it on non-X86-64 platforms and add a comment.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201838 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Filip Pizlo 2014-02-21 03:17:31 +00:00
parent 9f5066c72c
commit b3cb707f93

View File

@ -363,6 +363,10 @@ TEST_F(MCJITCAPITest, custom_memory_manager) {
TEST_F(MCJITCAPITest, stackmap_creates_compact_unwind_on_darwin) { TEST_F(MCJITCAPITest, stackmap_creates_compact_unwind_on_darwin) {
SKIP_UNSUPPORTED_PLATFORM; SKIP_UNSUPPORTED_PLATFORM;
// This test is also not supported on non-x86 platforms.
if (Triple(HostTriple).getArch() != Triple::x86_64)
return;
buildFunctionThatUsesStackmap(); buildFunctionThatUsesStackmap();
buildMCJITOptions(); buildMCJITOptions();
useRoundTripSectionMemoryManager(); useRoundTripSectionMemoryManager();
@ -378,6 +382,11 @@ TEST_F(MCJITCAPITest, stackmap_creates_compact_unwind_on_darwin) {
EXPECT_EQ(42, functionPointer.usable()); EXPECT_EQ(42, functionPointer.usable());
EXPECT_TRUE(didCallAllocateCodeSection); EXPECT_TRUE(didCallAllocateCodeSection);
// Up to this point, the test is specific only to X86-64. But this next
// expectation is only valid on Darwin because it assumes that unwind
// data is made available only through compact_unwind. It would be
// worthwhile to extend this to handle non-Darwin platforms, in which
// case you'd want to look for an eh_frame or something.
EXPECT_TRUE( EXPECT_TRUE(
Triple(HostTriple).getOS() != Triple::Darwin || Triple(HostTriple).getOS() != Triple::Darwin ||
didAllocateCompactUnwindSection); didAllocateCompactUnwindSection);