]> www.average.org Git - loctrkd.git/blobdiff - test/test_fuzz.py
test: adjust sleeps and drains when daemons run
[loctrkd.git] / test / test_fuzz.py
index 6dea449af255ae5c8ad8eabbe5d657880543ab34..a5fba68cadd1b85424093f388e24f41ce49a2e59 100644 (file)
@@ -2,17 +2,20 @@
 
 from random import Random
 from socket import getaddrinfo, socket, AF_INET6, SOCK_STREAM
-from unittest import TestCase
+from time import sleep
+import unittest
+from .common import send_and_drain, TestWithServers
 
 REPEAT: int = 1000000
 
 
-class Fuzz(TestCase):
-    def setUp(self) -> None:
+class Fuzz(TestWithServers):
+    def setUp(self, *args: str) -> None:
+        super().setUp("collector")
         self.rnd = Random()
         for fam, typ, pro, cnm, skadr in getaddrinfo(
             "::1",
-            4303,
+            self.conf.getint("collector", "port"),
             family=AF_INET6,
             type=SOCK_STREAM,
         ):
@@ -21,10 +24,24 @@ class Fuzz(TestCase):
         self.sock.connect(skadr)
 
     def tearDown(self) -> None:
+        sleep(1)  # give collector some time
+        send_and_drain(self.sock, None)
         self.sock.close()
+        sleep(1)  # Let the server close their side
+        super().tearDown()
 
-    def test_fuzz(self) -> None:
+    def test_stream(self) -> None:
         for _ in range(REPEAT):
             size = self.rnd.randint(1, 5000)
             buf = self.rnd.randbytes(size)
-            self.sock.send(buf)
+            send_and_drain(self.sock, buf)
+
+    def test_msgs(self) -> None:
+        for _ in range(REPEAT):
+            size = self.rnd.randint(0, 300)
+            buf = b"xx" + self.rnd.randbytes(size) + b"\r\n"
+            send_and_drain(self.sock, buf)
+
+
+if __name__ == "__main__":
+    unittest.main()