fix bootstrap test on older kernels
authorDave Watson <davejwatson@fb.com>
Mon, 5 Jan 2015 22:45:12 +0000 (14:45 -0800)
committerViswanath Sivakumar <viswanath@fb.com>
Tue, 13 Jan 2015 19:01:03 +0000 (11:01 -0800)
Summary: another unittest that doesn't work without reuseport support, add a check

Test Plan: ran it on sandcastle187.prn2, works

Reviewed By: njormrod@fb.com

Subscribers: doug, fugalh, folly-diffs@

FB internal diff: D1764395

Tasks: 5931982

Signature: t1:1764395:1420490666:658aef148ebca9484534a0cebb228570e28f1002

folly/wangle/bootstrap/BootstrapTest.cpp

index 1efb4e089f0f32a5630483dd6a5694fe5fb62331..1567978b676319dadc21d4f630c01c1756a04cc5 100644 (file)
@@ -171,6 +171,20 @@ TEST(Bootstrap, ServerAcceptGroup2Test) {
 }
 
 TEST(Bootstrap, SharedThreadPool) {
+  // Check if reuse port is supported, if not, don't run this test
+  try {
+    EventBase base;
+    auto serverSocket = AsyncServerSocket::newSocket(&base);
+    serverSocket->bind(0);
+    serverSocket->listen(0);
+    serverSocket->startAccepting();
+    serverSocket->setReusePortEnabled(true);
+    serverSocket->stopAccepting();
+  } catch(...) {
+    LOG(INFO) << "Reuse port probably not supported";
+    return;
+  }
+
   auto pool = std::make_shared<IOThreadPoolExecutor>(2);
 
   TestServer server;