Message ID | 20220829171820.130690-1-marcus.hoffmann@othermo.de |
---|---|
State | Accepted |
Headers | show |
Series | [next,v2,1/2] package/python-paho-mqtt: bump to 1.6.1 | expand |
Markus, All, On 2022-08-29 19:18 +0200, Marcus Hoffmann spake thusly: > Signed-off-by: Marcus Hoffmann <marcus.hoffmann@othermo.de> > Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> > --- [--SNIP--] > diff --git a/support/testing/tests/package/test_python_paho_mqtt.py b/support/testing/tests/package/test_python_paho_mqtt.py > new file mode 100644 > index 0000000000..b1e2b8fb42 > --- /dev/null > +++ b/support/testing/tests/package/test_python_paho_mqtt.py > @@ -0,0 +1,29 @@ [--SNIP--] > + def test_run(self): > + self.login() > + self.check_sample_scripts_exist() > + cmd = "mosquitto > /dev/null 2>&1 &" > + _, exit_code = self.emulator.run(cmd, timeout=self.timeout) No need to manually start it, it is already started with a startu script, as can be seen n the run log: Starting mosquitto: OK And indeed, manually running the qemu on the test image, and trying to launch mosquitto yields an error: [...] Starting network: OK Starting mosquitto: OK Welcome to Buildroot buildroot login: root # mosquitto [...] 11: Opening ipv4 listen socket on port 1883. 11: Error: Address already in use 11: Opening ipv6 listen socket on port 1883. 11: Error: Address already in use So I dropped, that. > + # Give some time for mosquitto broker to start up > + time.sleep(1) And thus, that too. > + cmd = "%s %s" % (self.interpreter, os.path.basename(self.sample_scripts[0])) > + output, exit_code = self.emulator.run(cmd, timeout=self.timeout) The test class does not provide its own timeout, so it inherits the one from its base classs, which defines it as -1, which means no timeout, as is the default for emulator.run(), so I also dropped it. Applied to master with the above changes, thanks. Regards, Yann E. MORIN. > + self.assertEqual(exit_code, 0) > + self.assertEqual(output[0], "Hello, World!") > -- > 2.25.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
Marcus, All, On 2022-08-31 21:42 +0200, Yann E. MORIN spake thusly: > Markus, All, Sorry for the typo, Marcus, sorry.. :-/ Regards, Yann E. MORIN. > On 2022-08-29 19:18 +0200, Marcus Hoffmann spake thusly: > > Signed-off-by: Marcus Hoffmann <marcus.hoffmann@othermo.de> > > Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> > > --- > [--SNIP--] > > diff --git a/support/testing/tests/package/test_python_paho_mqtt.py b/support/testing/tests/package/test_python_paho_mqtt.py > > new file mode 100644 > > index 0000000000..b1e2b8fb42 > > --- /dev/null > > +++ b/support/testing/tests/package/test_python_paho_mqtt.py > > @@ -0,0 +1,29 @@ > [--SNIP--] > > + def test_run(self): > > + self.login() > > + self.check_sample_scripts_exist() > > + cmd = "mosquitto > /dev/null 2>&1 &" > > + _, exit_code = self.emulator.run(cmd, timeout=self.timeout) > > No need to manually start it, it is already started with a startu > script, as can be seen n the run log: > > Starting mosquitto: OK > > And indeed, manually running the qemu on the test image, and trying to > launch mosquitto yields an error: > > [...] > Starting network: OK > Starting mosquitto: OK > > Welcome to Buildroot > buildroot login: root > # mosquitto > [...] > 11: Opening ipv4 listen socket on port 1883. > 11: Error: Address already in use > 11: Opening ipv6 listen socket on port 1883. > 11: Error: Address already in use > > So I dropped, that. > > > + # Give some time for mosquitto broker to start up > > + time.sleep(1) > > And thus, that too. > > > + cmd = "%s %s" % (self.interpreter, os.path.basename(self.sample_scripts[0])) > > + output, exit_code = self.emulator.run(cmd, timeout=self.timeout) > > The test class does not provide its own timeout, so it inherits the one > from its base classs, which defines it as -1, which means no timeout, as > is the default for emulator.run(), so I also dropped it. > > Applied to master with the above changes, thanks. > > Regards, > Yann E. MORIN. > > > + self.assertEqual(exit_code, 0) > > + self.assertEqual(output[0], "Hello, World!") > > -- > > 2.25.1 > > > > _______________________________________________ > > buildroot mailing list > > buildroot@buildroot.org > > https://lists.buildroot.org/mailman/listinfo/buildroot > > -- > .-----------------.--------------------.------------------.--------------------. > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | > | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > '------------------------------^-------^------------------^--------------------' > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
diff --git a/support/testing/tests/package/sample_python_paho_mqtt.py b/support/testing/tests/package/sample_python_paho_mqtt.py new file mode 100644 index 0000000000..769ad6250f --- /dev/null +++ b/support/testing/tests/package/sample_python_paho_mqtt.py @@ -0,0 +1,12 @@ +from paho.mqtt import publish, subscribe + +publish.single( + 'buildroot/test', + payload="Hello, World!", + qos=2, + retain=True, + hostname="localhost", + port=1883) + +message = subscribe.simple('buildroot/test') +print(message.payload.decode()) diff --git a/support/testing/tests/package/test_python_paho_mqtt.py b/support/testing/tests/package/test_python_paho_mqtt.py new file mode 100644 index 0000000000..b1e2b8fb42 --- /dev/null +++ b/support/testing/tests/package/test_python_paho_mqtt.py @@ -0,0 +1,29 @@ +from tests.package.test_python import TestPythonPackageBase +import os +import time + + +class TestPythonPahoMQTT(TestPythonPackageBase): + __test__ = True + config = TestPythonPackageBase.config + \ + """ + BR2_PACKAGE_MOSQUITTO=y + BR2_PACKAGE_MOSQUITTO_BROKER=y + BR2_PACKAGE_PYTHON3=y + BR2_PACKAGE_PYTHON_PAHO_MQTT=y + """ + sample_scripts = ["tests/package/sample_python_paho_mqtt.py"] + + def test_run(self): + self.login() + self.check_sample_scripts_exist() + cmd = "mosquitto > /dev/null 2>&1 &" + _, exit_code = self.emulator.run(cmd, timeout=self.timeout) + + # Give some time for mosquitto broker to start up + time.sleep(1) + + cmd = "%s %s" % (self.interpreter, os.path.basename(self.sample_scripts[0])) + output, exit_code = self.emulator.run(cmd, timeout=self.timeout) + self.assertEqual(exit_code, 0) + self.assertEqual(output[0], "Hello, World!")