summaryrefslogtreecommitdiff
path: root/pkgs/by-name/me/memcachedTestHook/memcached-test-hook.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/me/memcachedTestHook/memcached-test-hook.sh')
-rw-r--r--pkgs/by-name/me/memcachedTestHook/memcached-test-hook.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/by-name/me/memcachedTestHook/memcached-test-hook.sh b/pkgs/by-name/me/memcachedTestHook/memcached-test-hook.sh
new file mode 100644
index 000000000000..aa49e5066721
--- /dev/null
+++ b/pkgs/by-name/me/memcachedTestHook/memcached-test-hook.sh
@@ -0,0 +1,27 @@
+preCheckHooks+=('memcachedStart')
+postCheckHooks+=('memcachedStop')
+
+
+memcachedStart() {
+ if [[ "${memcachedTestPort:-}" == "" ]]; then
+ memcachedTestPort=11211
+ fi
+
+ echo 'starting memcached'
+
+ # Note about Darwin: unless the output is redirected, the parent process becomes launchd instead of bash.
+ # This would leave the memcached process running in case of a test failure (the postCheckHook would not be executed),
+ # hanging the Nix build forever.
+ @memcached@ -p "$memcachedTestPort" >/dev/null 2>&1 &
+ MEMCACHED_PID=$!
+
+ echo 'waiting for memcached to be ready'
+ while ! (echo 'quit' | @nc@ localhost "$memcachedTestPort") ; do
+ sleep 1
+ done
+}
+
+memcachedStop() {
+ echo 'stopping memcached'
+ kill "$MEMCACHED_PID"
+}