|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
From ae92a9714744bbf92fe69ffe276a668b031a6d26 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
From: Lennart Poettering <lennart@poettering.net>
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
Date: Mon, 18 Sep 2023 18:05:27 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
Subject: [PATCH 3/3] ci: add test for poll limit
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
(cherry picked from commit 065e478a4a8cc8e41a6e87756c081396f253e853)
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
---
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
test/TEST-07-PID1/test.sh | 2 ++
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
test/units/testsuite-07.poll-limit.sh | 48 +++++++++++++++++++++++++++
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
2 files changed, 50 insertions(+)
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
create mode 100755 test/units/testsuite-07.poll-limit.sh
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
diff --git a/test/TEST-07-PID1/test.sh b/test/TEST-07-PID1/test.sh
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
index 1c3d7137fe..d0e35d870f 100755
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
--- a/test/TEST-07-PID1/test.sh
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+++ b/test/TEST-07-PID1/test.sh
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
@@ -32,6 +32,8 @@ Alias=issue2730-alias.mount
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
EOF
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
"${SYSTEMCTL:?}" enable --root="$workspace" issue2730.mount
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
ln -svrf "$workspace/etc/systemd/system/issue2730.mount" "$workspace/etc/systemd/system/issue2730-alias.mount"
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+ image_install logger
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
}
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
do_test "$@"
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
diff --git a/test/units/testsuite-07.poll-limit.sh b/test/units/testsuite-07.poll-limit.sh
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
new file mode 100755
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
index 0000000000..480d7ee8df
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
--- /dev/null
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+++ b/test/units/testsuite-07.poll-limit.sh
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
@@ -0,0 +1,48 @@
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+#!/usr/bin/env bash
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+set -eux
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+set -o pipefail
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+systemd-analyze log-level debug
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+cat > /run/systemd/system/floodme@.service <
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+[Service]
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+ExecStart=/bin/true
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+EOF
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+cat > /run/systemd/system/floodme.socket <
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+[Socket]
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+ListenStream=/tmp/floodme
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+PollLimitIntervalSec=10s
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+Accept=yes
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+PollLimitBurst=3
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+EOF
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+systemctl daemon-reload
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+systemctl start floodme.socket
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+START=$(date +%s%N)
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+# Trigger this 100 times in a flood
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+for (( i=0 ; i < 100; i++ )) ; do
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+ logger -u /tmp/floodme foo &
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+done
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+# Let some time pass
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+sleep 5
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+END=$(date +%s%N)
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+PASSED=$((END-START))
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+# Calculate (round up) how many trigger events could have happened in the passed time
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+MAXCOUNT=$(((PASSED+10000000000)*3/10000000000))
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+# We started 100 connection attempts, but only 3 should have gone through, as per limit
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+test "$(systemctl show -P NAccepted floodme.socket)" -le "$MAXCOUNT"
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+systemctl stop floodme.socket floodme@*.service
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+rm /run/systemd/system/floodme@.service /run/systemd/system/floodme.socket /tmp/floodme
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+
|
|
Zbigniew Jędrzejewski-Szmek |
bb2f5f |
+systemctl daemon-reload
|