summary refs log tree commit diff
path: root/nixos/tests/mosquitto.nix
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2019-06-24 13:59:53 +0800
committerPeter Hoeg <peter@hoeg.com>2019-06-24 13:59:53 +0800
commitbab2a01ce8fdd63767a102b540e3276f5cd4d6f6 (patch)
tree875a18820cbd578017296e71e0abb03247661818 /nixos/tests/mosquitto.nix
parent83ba5afcc9682b52b39a9a958f730b966cc369c5 (diff)
downloadnixpkgs-bab2a01ce8fdd63767a102b540e3276f5cd4d6f6.tar
nixpkgs-bab2a01ce8fdd63767a102b540e3276f5cd4d6f6.tar.gz
nixpkgs-bab2a01ce8fdd63767a102b540e3276f5cd4d6f6.tar.bz2
nixpkgs-bab2a01ce8fdd63767a102b540e3276f5cd4d6f6.tar.lz
nixpkgs-bab2a01ce8fdd63767a102b540e3276f5cd4d6f6.tar.xz
nixpkgs-bab2a01ce8fdd63767a102b540e3276f5cd4d6f6.tar.zst
nixpkgs-bab2a01ce8fdd63767a102b540e3276f5cd4d6f6.zip
nixos/mosquitto: make the tests run
Diffstat (limited to 'nixos/tests/mosquitto.nix')
-rw-r--r--nixos/tests/mosquitto.nix33
1 files changed, 26 insertions, 7 deletions
diff --git a/nixos/tests/mosquitto.nix b/nixos/tests/mosquitto.nix
index 86b7f9c044d..bd5447de15f 100644
--- a/nixos/tests/mosquitto.nix
+++ b/nixos/tests/mosquitto.nix
@@ -49,21 +49,40 @@ in rec {
 
   testScript = let
     file = "/tmp/msg";
-    payload = "wootWOOT";
+    sub = args:
+      "(${cmd "sub"} -C 1 ${args} | tee ${file} &)";
   in ''
     startAll;
     $server->waitForUnit("mosquitto.service");
 
     $server->fail("test -f ${file}");
-    $server->execute("(${cmd "sub"} -C 1 | tee ${file} &)");
-
     $client1->fail("test -f ${file}");
-    $client1->execute("(${cmd "sub"} -C 1 | tee ${file} &)");
+    $client2->fail("test -f ${file}");
+
+
+    # QoS = 0, so only one subscribers should get it
+    $server->execute("${sub "-q 0"}");
+
+    # we need to give the subscribers some time to connect
+    $client2->execute("sleep 5");
+    $client2->succeed("${cmd "pub"} -m FOO -q 0");
+
+    $server->waitUntilSucceeds("grep -q FOO ${file}");
+    $server->execute("rm ${file}");
+
+
+    # QoS = 1, so both subscribers should get it
+    $server->execute("${sub "-q 1"}");
+    $client1->execute("${sub "-q 1"}");
 
-    $client2->succeed("${cmd "pub"} -m ${payload}");
+    # we need to give the subscribers some time to connect
+    $client2->execute("sleep 5");
+    $client2->succeed("${cmd "pub"} -m BAR -q 1");
 
-    $server->succeed("grep -q ${payload} ${file}");
+    $server->waitUntilSucceeds("grep -q BAR ${file}");
+    $server->execute("rm ${file}");
 
-    $client1->succeed("grep -q ${payload} ${file}");
+    $client1->waitUntilSucceeds("grep -q BAR ${file}");
+    $client1->execute("rm ${file}");
   '';
 })