[PATCH] services: mosquitto: Add test suite.

  • Done
  • quality assurance status badge
Details
One participant
  • Evgeny Pisemsky
Owner
unassigned
Submitted by
Evgeny Pisemsky
Severity
normal

Debbugs page

E
E
Evgeny Pisemsky wrote on 26 Jun 05:06 -0700
(address . guix-patches@gnu.org)
fe3d8b19a6af82c8b6cc3fff5568ae148a4fe07d.1750939574.git.mail@pisemsky.site
* gnu/tests/messaging.scm (%test-mosquitto): New variable.

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

Toggle diff (105 lines)
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@gnu.org>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2025 Evgeny Pisemsky <mail@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
E
E
Evgeny Pisemsky wrote on 27 Jul 09:02 -0700
close 78906
(address . control@debbugs.gnu.org)
8734ah4o67.fsf@pisemsky.site
close 78906
?
Your comment

This issue is archived.

To comment on this conversation send an email to 78906@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 78906
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch