summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-05-14 22:35:30 +0200
committerLudovic Courtès <ludo@gnu.org>2023-05-14 23:14:25 +0200
commit8aaa5cf40539b3634be744700bbe246c69c8ddbf (patch)
treef9e370ff0a5a19dd1eed4bf915ff2c6b4d5d61e5
parentda6e6d38f35d6c2bf36ecb194e8f704d5e57af06 (diff)
tests: dhcpd: Avoid race conditions.
Those tests were racy: it could take a while for those files to appear and for the shepherd service to be up. Thus, wait a little longer for each of them. * gnu/tests/networking.scm (run-dhcpd-test)["pid file exists"] ["lease file exists"]: Use 'wait-for-file'. ["dhcpd is alive"]: Use 'wait-for-service'.
-rw-r--r--gnu/tests/networking.scm24
1 files changed, 8 insertions, 16 deletions
diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm
index a8358c6a55..a192c7e655 100644
--- a/gnu/tests/networking.scm
+++ b/gnu/tests/networking.scm
@@ -412,8 +412,6 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (gnu build marionette)
- (ice-9 popen)
- (ice-9 rdelim)
(srfi srfi-64))
(define marionette
@@ -423,16 +421,15 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
(test-begin "dhcpd")
(test-assert "pid file exists"
- (marionette-eval
- '(file-exists?
- #$(dhcpd-configuration-pid-file dhcpd-v4-configuration))
+ (wait-for-file
+ '#$(dhcpd-configuration-pid-file dhcpd-v4-configuration)
marionette))
(test-assert "lease file exists"
- (marionette-eval
- '(file-exists?
- #$(dhcpd-configuration-lease-file dhcpd-v4-configuration))
- marionette))
+ (wait-for-file
+ '#$(dhcpd-configuration-lease-file dhcpd-v4-configuration)
+ marionette
+ #:read '(@ (ice-9 textual-ports) get-string-all)))
(test-assert "run directory exists"
(marionette-eval
@@ -443,13 +440,8 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
(test-assert "dhcpd is alive"
(marionette-eval
'(begin
- (use-modules (gnu services herd)
- (srfi srfi-1))
- (live-service-running
- (find (lambda (live)
- (memq 'dhcpv4-daemon
- (live-service-provision live)))
- (current-services))))
+ (use-modules (gnu services herd))
+ (wait-for-service 'dhcpv4-daemon))
marionette))
(test-end))))