From a417083e27b155dc92b7f7271c0093aee0d7231c Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Sat, 10 Aug 2024 22:54:07 +0200 Subject: [PATCH] [llvm-exegesis][unittests] Also disable SubprocessMemoryTest on SPARC (#102755) Three `llvm-exegesis` tests ``` LLVM-Unit :: tools/llvm-exegesis/./LLVMExegesisTests/SubprocessMemoryTest/DefinitionFillsCompletely LLVM-Unit :: tools/llvm-exegesis/./LLVMExegesisTests/SubprocessMemoryTest/MultipleDefinitions LLVM-Unit :: tools/llvm-exegesis/./LLVMExegesisTests/SubprocessMemoryTest/OneDefinition ``` `FAIL` on Linux/sparc64 like ``` llvm/unittests/tools/llvm-exegesis/X86/SubprocessMemoryTest.cpp:68: Failure Expected equality of these values: SharedMemoryMapping[I] Which is: '\0' ExpectedValue[I] Which is: '\xAA' (170) ``` It seems like this test only works on little-endian hosts: three sub-tests are already disabled on powerpc and s390x (both big-endian), and the fourth is additionally guarded against big-endian hosts (making the other guards unnecessary). However, since it's not been analyzed if this is really an endianess issue, this patch disables the whole test on powerpc and s390x as before adding sparc to the mix. Tested on `sparc64-unknown-linux-gnu` and `x86_64-pc-linux-gnu`. --- .../X86/SubprocessMemoryTest.cpp | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/llvm/unittests/tools/llvm-exegesis/X86/SubprocessMemoryTest.cpp b/llvm/unittests/tools/llvm-exegesis/X86/SubprocessMemoryTest.cpp index 7c23e7b7e9c5a5..f61254ac74e140 100644 --- a/llvm/unittests/tools/llvm-exegesis/X86/SubprocessMemoryTest.cpp +++ b/llvm/unittests/tools/llvm-exegesis/X86/SubprocessMemoryTest.cpp @@ -24,7 +24,8 @@ namespace llvm { namespace exegesis { -#if defined(__linux__) && !defined(__ANDROID__) +#if defined(__linux__) && !defined(__ANDROID__) && \ + !(defined(__powerpc__) || defined(__s390x__) || defined(__sparc__)) // This needs to be updated anytime a test is added or removed from the test // suite. @@ -77,20 +78,12 @@ class SubprocessMemoryTest : public X86TestBase { // memory calls not working in some cases, so they have been disabled. // TODO(boomanaiden154): Investigate and fix this issue on PPC. -#if defined(__powerpc__) || defined(__s390x__) -TEST_F(SubprocessMemoryTest, DISABLED_OneDefinition) { -#else TEST_F(SubprocessMemoryTest, OneDefinition) { -#endif testCommon({{"test1", {APInt(8, 0xff), 4096, 0}}}, 0); checkSharedMemoryDefinition(getSharedMemoryName(0, 0), 4096, {0xff}); } -#if defined(__powerpc__) || defined(__s390x__) -TEST_F(SubprocessMemoryTest, DISABLED_MultipleDefinitions) { -#else TEST_F(SubprocessMemoryTest, MultipleDefinitions) { -#endif testCommon({{"test1", {APInt(8, 0xaa), 4096, 0}}, {"test2", {APInt(8, 0xbb), 4096, 1}}, {"test3", {APInt(8, 0xcc), 4096, 2}}}, @@ -100,11 +93,7 @@ TEST_F(SubprocessMemoryTest, MultipleDefinitions) { checkSharedMemoryDefinition(getSharedMemoryName(1, 2), 4096, {0xcc}); } -#if defined(__powerpc__) || defined(__s390x__) -TEST_F(SubprocessMemoryTest, DISABLED_DefinitionFillsCompletely) { -#else TEST_F(SubprocessMemoryTest, DefinitionFillsCompletely) { -#endif testCommon({{"test1", {APInt(8, 0xaa), 4096, 0}}, {"test2", {APInt(16, 0xbbbb), 4096, 1}}, {"test3", {APInt(24, 0xcccccc), 4096, 2}}}, @@ -118,7 +107,7 @@ TEST_F(SubprocessMemoryTest, DefinitionFillsCompletely) { } // The following test is only supported on little endian systems. -#if defined(__powerpc__) || defined(__s390x__) || __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ TEST_F(SubprocessMemoryTest, DISABLED_DefinitionEndTruncation) { #else TEST_F(SubprocessMemoryTest, DefinitionEndTruncation) { @@ -150,7 +139,7 @@ TEST_F(SubprocessMemoryTest, DefinitionEndTruncation) { checkSharedMemoryDefinition(getSharedMemoryName(3, 0), 4096, Test1Expected); } -#endif // defined(__linux__) && !defined(__ANDROID__) +#endif // __linux__ && !__ANDROID__ && !(__powerpc__ || __s390x__ || __sparc__) } // namespace exegesis } // namespace llvm