From: Michael Biebl Date: Mon, 9 Aug 2021 17:45:48 +0000 (+0200) Subject: test: fix TEST-10-ISSUE-2467 X-Git-Tag: v250-rc1~851 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d84f316ccec389f72ac6b1b6626aa72b697d5c1d;p=thirdparty%2Fsystemd.git test: fix TEST-10-ISSUE-2467 Depending on the timing, socat will either get ECONNREFUSED oder EPIPE from systemd. The latter will cause it to exit(1) and subsequently the test to fail. We are not actually interested in the return code of socat though. The test is supposed to check, whether rate limiting of a socket unit works properly. So ignore any failures from the socat invocation and instead check, if test10.socket is in state "failed" with result "trigger-limit-hit" after it has been triggered. TriggerLimitIntervalSec= by default is set to 2s. A "sleep 10" should give systemd enough time even on slower machines, to reach the trigger limit. For better readability, break the test into separate ExecStart lines. Fixes #19154. --- diff --git a/test/units/testsuite-10.service b/test/units/testsuite-10.service index 24f0da35abd..f81a9e3ace2 100644 --- a/test/units/testsuite-10.service +++ b/test/units/testsuite-10.service @@ -4,4 +4,13 @@ Description=TEST-10-ISSUE-2467 [Service] ExecStartPre=rm -f /failed /testok Type=oneshot -ExecStart=sh -e -x -c 'rm -f /tmp/nonexistent; systemctl start test10.socket; printf x >test.file; socat -t20 OPEN:test.file UNIX-CONNECT:/run/test.ctl; >/testok' +ExecStart=rm -f /tmp/nonexistent +ExecStart=systemctl start test10.socket +ExecStart=sh -x -c 'printf x >test.file' +ExecStart=-socat -T20 OPEN:test.file UNIX-CONNECT:/run/test.ctl +# TriggerLimitIntervalSec= by default is set to 2s. A "sleep 10" should give +# systemd enough time even on slower machines, to reach the trigger limit. +ExecStart=sleep 10 +ExecStart=sh -x -c 'test "$(systemctl show test10.socket -P ActiveState)" = failed' +ExecStart=sh -x -c 'test "$(systemctl show test10.socket -P Result)" = trigger-limit-hit' +ExecStart=sh -x -c 'echo OK >/testok'