GNU bug report logs - #78906
[PATCH] services: mosquitto: Add test suite.

Previous Next

Package: guix-patches;

Reported by: Evgeny Pisemsky <mail <at> pisemsky.site>

Date: Thu, 26 Jun 2025 12:07:01 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 78906 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#78906; Package guix-patches. (Thu, 26 Jun 2025 12:07:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Evgeny Pisemsky <mail <at> pisemsky.site>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 26 Jun 2025 12:07:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Evgeny Pisemsky <mail <at> pisemsky.site>
To: guix-patches <at> gnu.org
Subject: [PATCH] services: mosquitto: Add test suite.
Date: Thu, 26 Jun 2025 15:06:14 +0300
* gnu/tests/messaging.scm (%test-mosquitto): New variable.

Change-Id: Ia84291576b9417ce678df3e0ed18caa6ce27b759
---
 gnu/tests/messaging.scm | 79 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 78 insertions(+), 1 deletion(-)

diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm
index 8df67433a7..43fbdee468 100644
--- a/gnu/tests/messaging.scm
+++ b/gnu/tests/messaging.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017-2018, 2021-2022 Ludovic Courtès <ludo <at> gnu.org>
 ;;; Copyright © 2018 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2025 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
+;;; Copyright © 2025 Evgeny Pisemsky <mail <at> pisemsky.site>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,7 +43,8 @@ (define-module (gnu tests messaging)
             %test-bitlbee
             %test-ngircd
             %test-pounce
-            %test-quassel))
+            %test-quassel
+            %test-mosquitto))
 
 (define (run-xmpp-test name xmpp-service pid-file create-account)
   "Run a test of an OS running XMPP-SERVICE, which writes its PID to PID-FILE."
@@ -592,3 +594,78 @@ (define %test-quassel
    (name "quassel")
    (description "Connect to a quassel IRC server.")
    (value (run-quassel-test))))
+
+
+;;;
+;;; Mosquitto.
+;;;
+
+(define (run-mosquitto-test)
+  (define os
+    (marionette-operating-system
+     (simple-operating-system (service dhcpcd-service-type)
+                              (service mosquitto-service-type))
+     #:imported-modules (source-module-closure
+                         '((gnu services herd)))))
+
+  (define vm
+    (virtual-machine
+     (operating-system os)))
+
+  (define test
+    (with-imported-modules '((gnu build marionette))
+      #~(begin
+          (use-modules (srfi srfi-64)
+                       (gnu build marionette))
+
+          (define marionette
+            (make-marionette (list #$vm)))
+
+          (test-runner-current (system-test-runner #$output))
+          (test-begin "mosquitto")
+
+          (test-assert "service runs"
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd))
+                (wait-for-service 'mosquitto))
+             marionette))
+
+          (test-assert "service listens on TCP port 1883"
+            (wait-for-tcp-port 1883 marionette))
+
+          (test-equal "service receives a message"
+            0
+            (marionette-eval
+             '(system* #$(file-append mosquitto "/bin/mosquitto_pub")
+                       "-t" "test-topic"
+                       "-m" "Hello, mosquitto!"
+                       "-r")
+             marionette))
+
+          (test-equal "service returns a message"
+            "Hello, mosquitto!"
+            (marionette-eval
+             '(begin
+                (use-modules (ice-9 popen)
+                             (ice-9 rdelim))
+                (let* ((port (open-pipe* OPEN_READ
+                                         #$(file-append
+                                            mosquitto
+                                            "/bin/mosquitto_sub")
+                                         "-t" "test-topic"
+                                         "-C" "1"))
+                       (msg (read-line port)))
+                  (close-pipe port)
+                  msg))
+             marionette))
+
+          (test-end))))
+
+  (gexp->derivation "mosquitto-test" test))
+
+(define %test-mosquitto
+  (system-test
+   (name "mosquitto")
+   (description "Test a running Mosquitto MQTT broker.")
+   (value (run-mosquitto-test))))

base-commit: f126116b7af714a8ec1fc2307668199ec118f0bd
-- 
2.50.0





This bug report was last modified 1 day ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.