push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -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"
}

View File

@@ -0,0 +1,18 @@
{
callPackage,
makeSetupHook,
lib,
memcached,
netcat,
}:
makeSetupHook {
name = "memcached-test-hook";
substitutions = {
memcached = lib.getExe memcached;
nc = lib.getExe netcat;
};
passthru.tests = {
simple = callPackage ./test.nix { };
};
} ./memcached-test-hook.sh

View File

@@ -0,0 +1,41 @@
{
memcachedTestHook,
netcat,
stdenv,
}:
stdenv.mkDerivation {
name = "memcached-test-hook-test";
nativeCheckInputs = [
memcachedTestHook
netcat
];
dontUnpack = true;
doCheck = true;
preCheck = ''
memcachedTestPort=11212
'';
checkPhase = ''
runHook preCheck
echo "running test"
if echo -e "stats\nquit" | nc localhost $memcachedTestPort; then
echo "connected to memcached"
TEST_RAN=1
fi
runHook postCheck
'';
__darwinAllowLocalNetworking = true;
installPhase = ''
[[ $TEST_RAN == 1 ]]
echo "test passed"
touch $out
'';
}