testing: freebsd [travis skip]
authorMichael Wallner <mike@php.net>
Tue, 27 Oct 2020 17:39:03 +0000 (18:39 +0100)
committerMichael Wallner <mike@php.net>
Tue, 27 Oct 2020 17:39:03 +0000 (18:39 +0100)
.cirrus.yml
test/lib/Cluster.cpp
test/lib/Cluster.hpp
test/tests/memcached/errors.cpp

index bb175484041502e9e05cbf4eef163d977fe9665c..c20d4a4e2f80a649bca0729c6d0f3f972f11a922 100644 (file)
@@ -44,6 +44,7 @@ task:
   build_script: |
     sudo -E -u nobody make -C build -j2 all
   test_script: |
+    sysctl net.inet.tcp.msl=500
     sudo -E -u nobody make -C build -j2 test/fast
   install_script: |
     sudo -E -u nobody make -C build install DESTDIR=/tmp
index 4fcdb47bcbc358e94664f4dc3fe07fc19706dbbd..54de9398564e25c5cba32f328fe56299448b7bcd 100644 (file)
@@ -46,11 +46,15 @@ bool Cluster::start() {
   return started;
 }
 
-void Cluster::stop() {
+void Cluster::stop(bool graceful) {
   for (auto &server : cluster) {
     server.drain();
-    // no cookies for memcached; TERM is just too slow
-    server.signal(SIGKILL);
+    if (graceful) {
+      server.stop();
+    } else {
+      // no cookies for memcached; TERM is just too slow
+      server.signal(SIGKILL);
+    }
   }
 }
 
index c99e1d377ceca6248f68ef72b10d96727f312e23..4e151020c65cdc2a7c6dc747a973dc451de8f80d 100644 (file)
@@ -42,7 +42,7 @@ public:
   const vector<Server> &getServers() const;
 
   bool start();
-  void stop();
+  void stop(bool graceful = false);
   bool isStopped();
   bool isListening();
   void wait();
index 4b3b4684b692868fec178414ca109db50b2019fd..c143b27fbf31c0ee0ecce983dedc26a291a20119 100644 (file)
@@ -23,7 +23,11 @@ TEST_CASE("memcached_errors") {
     REQUIRE_SUCCESS(memcached_set(memc, S("foo"), nullptr, 0, 0, 0));
     memcached_quit(memc);
 
-    test.cluster.stop();
+    test.cluster.stop(
+#if __FreeBSD__
+        true // graceful
+#endif
+        );
     Retry cluster_is_stopped{[&cluster = test.cluster]{
       return cluster.isStopped();
     }};