[llvm] r286917 - [ORC] Temporarily disable RPCUtils unit test.

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 14 16:49:13 PST 2016


Author: lhames
Date: Mon Nov 14 18:49:12 2016
New Revision: 286917

URL: http://llvm.org/viewvc/llvm-project?rev=286917&view=rev
Log:
[ORC] Temporarily disable RPCUtils unit test.

This broke s390x due to a bug in the QueueChannel implementation that led to it
infinite-looping. Disabling it while I look into a fix.


Modified:
    llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp

Modified: llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp?rev=286917&r1=286916&r2=286917&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp Mon Nov 14 18:49:12 2016
@@ -93,163 +93,164 @@ private:
   QueueChannel C;
 };
 
-TEST(DummyRPC, TestAsyncVoidBool) {
-  Queue Q1, Q2;
-  DummyRPCEndpoint Client(Q1, Q2);
-  DummyRPCEndpoint Server(Q2, Q1);
-
-  std::thread ServerThread([&]() {
-      Server.addHandler<DummyRPCAPI::VoidBool>(
-          [](bool B) {
-            EXPECT_EQ(B, true)
-              << "Server void(bool) received unexpected result";
-          });
-
-      {
-        // Poke the server to handle the negotiate call.
-        auto Err = Server.handleOne();
-        EXPECT_FALSE(!!Err) << "Server failed to handle call to negotiate";
-      }
-
-      {
-        // Poke the server to handle the VoidBool call.
-        auto Err = Server.handleOne();
-        EXPECT_FALSE(!!Err) << "Server failed to handle call to void(bool)";
-      }
-  });
-
-  {
-    // Make an async call.
-    auto Err = Client.callAsync<DummyRPCAPI::VoidBool>(
-        [](Error Err) {
-          EXPECT_FALSE(!!Err) << "Async void(bool) response handler failed";
-          return Error::success();
-        }, true);
-    EXPECT_FALSE(!!Err) << "Client.callAsync failed for void(bool)";
-  }
-
-  {
-    // Poke the client to process the result of the void(bool) call.
-    auto Err = Client.handleOne();
-    EXPECT_FALSE(!!Err) << "Client failed to handle response from void(bool)";
-  }
-
-  ServerThread.join();
-}
-
-TEST(DummyRPC, TestAsyncIntInt) {
-  Queue Q1, Q2;
-  DummyRPCEndpoint Client(Q1, Q2);
-  DummyRPCEndpoint Server(Q2, Q1);
-
-  std::thread ServerThread([&]() {
-      Server.addHandler<DummyRPCAPI::IntInt>(
-          [](int X) -> int {
-            EXPECT_EQ(X, 21) << "Server int(int) receieved unexpected result";
-            return 2 * X;
-          });
-
-      {
-        // Poke the server to handle the negotiate call.
-        auto Err = Server.handleOne();
-        EXPECT_FALSE(!!Err) << "Server failed to handle call to negotiate";
-      }
-
-      {
-        // Poke the server to handle the int(int) call.
-        auto Err = Server.handleOne();
-        EXPECT_FALSE(!!Err) << "Server failed to handle call to int(int)";
-      }
-    });
-
-  {
-    auto Err = Client.callAsync<DummyRPCAPI::IntInt>(
-        [](Expected<int> Result) {
-          EXPECT_TRUE(!!Result) << "Async int(int) response handler failed";
-          EXPECT_EQ(*Result, 42)
-            << "Async int(int) response handler received incorrect result";
-          return Error::success();
-        }, 21);
-    EXPECT_FALSE(!!Err) << "Client.callAsync failed for int(int)";
-  }
-
-  {
-    // Poke the client to process the result.
-    auto Err = Client.handleOne();
-    EXPECT_FALSE(!!Err) << "Client failed to handle response from void(bool)";
-  }
-
-  ServerThread.join();
-}
-
-TEST(DummyRPC, TestSerialization) {
-  Queue Q1, Q2;
-  DummyRPCEndpoint Client(Q1, Q2);
-  DummyRPCEndpoint Server(Q2, Q1);
-
-  std::thread ServerThread([&]() {
-      Server.addHandler<DummyRPCAPI::AllTheTypes>(
-          [&](int8_t S8, uint8_t U8, int16_t S16, uint16_t U16,
-              int32_t S32, uint32_t U32, int64_t S64, uint64_t U64,
-              bool B, std::string S, std::vector<int> V) {
-
-            EXPECT_EQ(S8, -101) << "int8_t serialization broken";
-            EXPECT_EQ(U8, 250) << "uint8_t serialization broken";
-            EXPECT_EQ(S16, -10000) << "int16_t serialization broken";
-            EXPECT_EQ(U16, 10000) << "uint16_t serialization broken";
-            EXPECT_EQ(S32, -1000000000) << "int32_t serialization broken";
-            EXPECT_EQ(U32, 1000000000ULL) << "uint32_t serialization broken";
-            EXPECT_EQ(S64, -10000000000) << "int64_t serialization broken";
-            EXPECT_EQ(U64, 10000000000ULL) << "uint64_t serialization broken";
-            EXPECT_EQ(B, true) << "bool serialization broken";
-            EXPECT_EQ(S, "foo") << "std::string serialization broken";
-            EXPECT_EQ(V, std::vector<int>({42, 7}))
-              << "std::vector serialization broken";
-            return Error::success();
-          });
-
-      {
-        // Poke the server to handle the negotiate call.
-        auto Err = Server.handleOne();
-        EXPECT_FALSE(!!Err) << "Server failed to handle call to negotiate";
-      }
-
-      {
-        // Poke the server to handle the AllTheTypes call.
-        auto Err = Server.handleOne();
-        EXPECT_FALSE(!!Err) << "Server failed to handle call to void(bool)";
-      }
-    });
-
-
-  {
-    // Make an async call.
-    std::vector<int> v({42, 7});
-    auto Err = Client.callAsync<DummyRPCAPI::AllTheTypes>(
-        [](Error Err) {
-          EXPECT_FALSE(!!Err) << "Async AllTheTypes response handler failed";
-          return Error::success();
-        },
-        static_cast<int8_t>(-101), static_cast<uint8_t>(250),
-        static_cast<int16_t>(-10000), static_cast<uint16_t>(10000),
-        static_cast<int32_t>(-1000000000), static_cast<uint32_t>(1000000000),
-        static_cast<int64_t>(-10000000000), static_cast<uint64_t>(10000000000),
-        true, std::string("foo"), v);
-    EXPECT_FALSE(!!Err) << "Client.callAsync failed for AllTheTypes";
-  }
-
-  {
-    // Poke the client to process the result of the AllTheTypes call.
-    auto Err = Client.handleOne();
-    EXPECT_FALSE(!!Err) << "Client failed to handle response from AllTheTypes";
-  }
+// FIXME: Temporarily disabled while the infnite loop discovered in r286639 is
+//        fixed (see llvm commits list discussion for that commit).
 
-  ServerThread.join();
-}
+// TEST(DummyRPC, TestAsyncVoidBool) {
+//   Queue Q1, Q2;
+//   DummyRPCEndpoint Client(Q1, Q2);
+//   DummyRPCEndpoint Server(Q2, Q1);
+
+//   std::thread ServerThread([&]() {
+//       Server.addHandler<DummyRPCAPI::VoidBool>(
+//           [](bool B) {
+//             EXPECT_EQ(B, true)
+//               << "Server void(bool) received unexpected result";
+//           });
+
+//       {
+//         // Poke the server to handle the negotiate call.
+//         auto Err = Server.handleOne();
+//         EXPECT_FALSE(!!Err) << "Server failed to handle call to negotiate";
+//       }
+
+//       {
+//         // Poke the server to handle the VoidBool call.
+//         auto Err = Server.handleOne();
+//         EXPECT_FALSE(!!Err) << "Server failed to handle call to void(bool)";
+//       }
+//   });
+
+//   {
+//     // Make an async call.
+//     auto Err = Client.callAsync<DummyRPCAPI::VoidBool>(
+//         [](Error Err) {
+//           EXPECT_FALSE(!!Err) << "Async void(bool) response handler failed";
+//           return Error::success();
+//         }, true);
+//     EXPECT_FALSE(!!Err) << "Client.callAsync failed for void(bool)";
+//   }
+
+//   {
+//     // Poke the client to process the result of the void(bool) call.
+//     auto Err = Client.handleOne();
+//     EXPECT_FALSE(!!Err) << "Client failed to handle response from void(bool)";
+//   }
+
+//   ServerThread.join();
+// }
+
+// TEST(DummyRPC, TestAsyncIntInt) {
+//   Queue Q1, Q2;
+//   DummyRPCEndpoint Client(Q1, Q2);
+//   DummyRPCEndpoint Server(Q2, Q1);
+
+//   std::thread ServerThread([&]() {
+//       Server.addHandler<DummyRPCAPI::IntInt>(
+//           [](int X) -> int {
+//             EXPECT_EQ(X, 21) << "Server int(int) receieved unexpected result";
+//             return 2 * X;
+//           });
+
+//       {
+//         // Poke the server to handle the negotiate call.
+//         auto Err = Server.handleOne();
+//         EXPECT_FALSE(!!Err) << "Server failed to handle call to negotiate";
+//       }
+
+//       {
+//         // Poke the server to handle the int(int) call.
+//         auto Err = Server.handleOne();
+//         EXPECT_FALSE(!!Err) << "Server failed to handle call to int(int)";
+//       }
+//     });
+
+//   {
+//     auto Err = Client.callAsync<DummyRPCAPI::IntInt>(
+//         [](Expected<int> Result) {
+//           EXPECT_TRUE(!!Result) << "Async int(int) response handler failed";
+//           EXPECT_EQ(*Result, 42)
+//             << "Async int(int) response handler received incorrect result";
+//           return Error::success();
+//         }, 21);
+//     EXPECT_FALSE(!!Err) << "Client.callAsync failed for int(int)";
+//   }
+
+//   {
+//     // Poke the client to process the result.
+//     auto Err = Client.handleOne();
+//     EXPECT_FALSE(!!Err) << "Client failed to handle response from void(bool)";
+//   }
+
+//   ServerThread.join();
+// }
+
+// TEST(DummyRPC, TestSerialization) {
+//   Queue Q1, Q2;
+//   DummyRPCEndpoint Client(Q1, Q2);
+//   DummyRPCEndpoint Server(Q2, Q1);
+
+//   std::thread ServerThread([&]() {
+//       Server.addHandler<DummyRPCAPI::AllTheTypes>(
+//           [&](int8_t S8, uint8_t U8, int16_t S16, uint16_t U16,
+//               int32_t S32, uint32_t U32, int64_t S64, uint64_t U64,
+//               bool B, std::string S, std::vector<int> V) {
+
+//             EXPECT_EQ(S8, -101) << "int8_t serialization broken";
+//             EXPECT_EQ(U8, 250) << "uint8_t serialization broken";
+//             EXPECT_EQ(S16, -10000) << "int16_t serialization broken";
+//             EXPECT_EQ(U16, 10000) << "uint16_t serialization broken";
+//             EXPECT_EQ(S32, -1000000000) << "int32_t serialization broken";
+//             EXPECT_EQ(U32, 1000000000ULL) << "uint32_t serialization broken";
+//             EXPECT_EQ(S64, -10000000000) << "int64_t serialization broken";
+//             EXPECT_EQ(U64, 10000000000ULL) << "uint64_t serialization broken";
+//             EXPECT_EQ(B, true) << "bool serialization broken";
+//             EXPECT_EQ(S, "foo") << "std::string serialization broken";
+//             EXPECT_EQ(V, std::vector<int>({42, 7}))
+//               << "std::vector serialization broken";
+//             return Error::success();
+//           });
+
+//       {
+//         // Poke the server to handle the negotiate call.
+//         auto Err = Server.handleOne();
+//         EXPECT_FALSE(!!Err) << "Server failed to handle call to negotiate";
+//       }
+
+//       {
+//         // Poke the server to handle the AllTheTypes call.
+//         auto Err = Server.handleOne();
+//         EXPECT_FALSE(!!Err) << "Server failed to handle call to void(bool)";
+//       }
+//     });
+
+
+//   {
+//     // Make an async call.
+//     std::vector<int> v({42, 7});
+//     auto Err = Client.callAsync<DummyRPCAPI::AllTheTypes>(
+//         [](Error Err) {
+//           EXPECT_FALSE(!!Err) << "Async AllTheTypes response handler failed";
+//           return Error::success();
+//         },
+//         static_cast<int8_t>(-101), static_cast<uint8_t>(250),
+//         static_cast<int16_t>(-10000), static_cast<uint16_t>(10000),
+//         static_cast<int32_t>(-1000000000), static_cast<uint32_t>(1000000000),
+//         static_cast<int64_t>(-10000000000), static_cast<uint64_t>(10000000000),
+//         true, std::string("foo"), v);
+//     EXPECT_FALSE(!!Err) << "Client.callAsync failed for AllTheTypes";
+//   }
+
+//   {
+//     // Poke the client to process the result of the AllTheTypes call.
+//     auto Err = Client.handleOne();
+//     EXPECT_FALSE(!!Err) << "Client failed to handle response from AllTheTypes";
+//   }
+
+//   ServerThread.join();
+// }
 
 // Test the synchronous call API.
-// FIXME: Re-enable once deadlock encountered on S390 has been debugged / fixed,
-//        see http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/3459
 // TEST_F(DummyRPC, TestSynchronousCall) {
 //   Queue Q1, Q2;
 //   QueueChannel C1(Q1, Q2);




More information about the llvm-commits mailing list