testing: attempt to speedup freebsd build
authorMichael Wallner <mike@php.net>
Tue, 27 Oct 2020 14:46:25 +0000 (15:46 +0100)
committerMichael Wallner <mike@php.net>
Tue, 27 Oct 2020 14:46:25 +0000 (15:46 +0100)
.github/workflows/cmake-build-ci.gen
.github/workflows/cmake-build-ci.yml
test/lib/Cluster.cpp
test/lib/Cluster.hpp
test/lib/ForkAndExec.cpp
test/lib/MemcachedCluster.cpp
test/lib/MemcachedCluster.hpp
test/tests/memcached/errors.cpp

index 2c2789bdaeaa2ca8aebd378eee2759ff89539301..a26c8564761f544b5267c3527accb9864d3d9ea9 100755 (executable)
@@ -271,8 +271,12 @@ jobs:
     name: dbg-mac (<?=DEF["macOS"]?>, <?=DEF[DEF["macOS"]]?>, <?=DEF[DEF[DEF["macOS"]]]["ver"]?>)
     runs-on: <?=DEF["macOS"]?> #
     env:
-      CFLAGS: -O0 --coverage
+      CFLAGS:   -O0 --coverage
       CXXFLAGS: -O0 --coverage
+      OS_VND:   macOS
+      OS_VER:   <?=DEF["macOS"]?> #
+      CC_VND:   <?=DEF[DEF["macOS"]]?> #
+      CC_VER:   <?=DEF[DEF[DEF["macOS"]]]["ver"]?> #
     continue-on-error: true
     steps:
       - uses: actions/checkout@v2
index 4a90f961b6a1d1b400cd8e3077bb8e0727486bf1..4c5681a74b591c1c255c79a71e6b5087479231f9 100644 (file)
@@ -195,8 +195,12 @@ jobs:
     name: dbg-mac (macos-10.15, clang, apple)
     runs-on: macos-10.15 #
     env:
-      CFLAGS: -O0 --coverage
+      CFLAGS:   -O0 --coverage
       CXXFLAGS: -O0 --coverage
+      OS_VND:   macOS
+      OS_VER:   macos-10.15 #
+      CC_VND:   clang #
+      CC_VER:   apple #
     continue-on-error: true
     steps:
       - uses: actions/checkout@v2
index e32f0fc328fd1724e0384553e288090a2d28d676..4fcdb47bcbc358e94664f4dc3fe07fc19706dbbd 100644 (file)
@@ -112,3 +112,9 @@ void Cluster::wait() {
     }
   }
 }
+
+bool Cluster::restart() {
+  stop();
+  wait();
+  return start();
+}
index 199d2c74c49c51afbd4176b664387f375d095034..c99e1d377ceca6248f68ef72b10d96727f312e23 100644 (file)
@@ -46,6 +46,7 @@ public:
   bool isStopped();
   bool isListening();
   void wait();
+  bool restart();
 
 private:
   size_t count;
index ac30dd0282195e4430019d61901bf9abd1078d0e..48a8dc18bac36621cedfd50d7ef5f1ae9ae7df66 100644 (file)
@@ -107,7 +107,7 @@ void ForkAndExec::closePipe(int &fd) {
 }
 
 void ForkAndExec::pollExecReadyPipe() {
-#if __APPLE__
+#if __APPLE__ || __FreeBSD__
   char c, n = 50;
   do {
     if (0 == read(ready[mode::READ], &c, 1)) {
index ca41a904d956817054753e25876e0e1fb35ad084..521ff12cde1d81332995802ade4eeff18ab3cd9b 100644 (file)
@@ -6,13 +6,8 @@ const memcached_st MemcachedCluster::empty_memc{};
 void MemcachedCluster::init() {
   REQUIRE(cluster.start());
 
-  Retry cluster_is_listening([this]() {
-    return cluster.isListening();
-  });
-  while (!cluster_is_listening()) {
-    cluster.stop();
-    cluster.wait();
-    cluster.start();
+  while (!isListening()) {
+    cluster.restart();
   }
 
   if (auto br = getenv_else("MEMCACHED_BREAK", "0")) {
@@ -151,3 +146,7 @@ void MemcachedCluster::killOneServer() const {
   const auto &victim = servers[random_num(0UL, servers.size() - 1)];
   ::kill(victim.getPid(), SIGKILL);
 }
+
+bool MemcachedCluster::isListening() {
+  return Retry{[this]() {return cluster.isListening();}}();
+}
index dcda9ddd72afb30744ac70acd939ac0bad4b84b6..b2a692cd697ea8b873a1b00a9e7454cd1c18b347 100644 (file)
@@ -42,6 +42,7 @@ public:
   void enableBuffering(bool enable = true);
   void enableReplication();
   void flush();
+  bool isListening();
 
   static MemcachedCluster mixed();
   static MemcachedCluster network();
index 75ba019aba085c1adf457a64a715b3e29aa97888..4b3b4684b692868fec178414ca109db50b2019fd 100644 (file)
@@ -41,10 +41,7 @@ TEST_CASE("memcached_errors") {
       REQUIRE_RC(MEMCACHED_SERVER_TEMPORARILY_DISABLED, memcached_set(memc, S("foo"), nullptr, 0, 0, 0));
 
       REQUIRE(test.cluster.start());
-      Retry cluster_is_listening{[&cluster = test.cluster] {
-        return cluster.isListening();
-      }};
-      REQUIRE(cluster_is_listening());
+      REQUIRE(test.isListening());
 
       Retry recovers{[memc]{
         return MEMCACHED_SUCCESS == memcached_set(memc, S("foo"), nullptr, 0, 0, 0);