Message ID | 20240113204824.212604-1-ju.o@free.fr |
---|---|
State | Accepted |
Headers | show |
Series | [1/1] support/testing: add ngrep runtime test | expand |
Julien, All, On 2024-01-13 21:48 +0100, Julien Olivain spake thusly: > Signed-off-by: Julien Olivain <ju.o@free.fr> Applied to master, thanks. Regards, Yann E. MORIN. > --- > DEVELOPERS | 1 + > support/testing/tests/package/test_ngrep.py | 49 +++++++++++++++++++++ > 2 files changed, 50 insertions(+) > create mode 100644 support/testing/tests/package/test_ngrep.py > > diff --git a/DEVELOPERS b/DEVELOPERS > index 94a89c63d5..33ad5b3097 100644 > --- a/DEVELOPERS > +++ b/DEVELOPERS > @@ -1793,6 +1793,7 @@ F: support/testing/tests/package/test_mtools.py > F: support/testing/tests/package/test_ncdu.py > F: support/testing/tests/package/test_nftables.py > F: support/testing/tests/package/test_nftables/ > +F: support/testing/tests/package/test_ngrep.py > F: support/testing/tests/package/test_octave.py > F: support/testing/tests/package/test_ola.py > F: support/testing/tests/package/test_ola/ > diff --git a/support/testing/tests/package/test_ngrep.py b/support/testing/tests/package/test_ngrep.py > new file mode 100644 > index 0000000000..29aaa55c2c > --- /dev/null > +++ b/support/testing/tests/package/test_ngrep.py > @@ -0,0 +1,49 @@ > +import os > +import time > + > +import infra.basetest > + > + > +class TestNgrep(infra.basetest.BRTest): > + config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ > + """ > + BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y > + BR2_PACKAGE_NETCAT=y > + BR2_PACKAGE_NGREP=y > + BR2_TARGET_ROOTFS_CPIO=y > + # BR2_TARGET_ROOTFS_TAR is not set > + """ > + > + def test_run(self): > + cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") > + self.emulator.boot(arch="armv5", > + kernel="builtin", > + options=["-initrd", cpio_file]) > + self.emulator.login() > + > + port = 12345 > + msg = 'Hello Buildroot' > + > + # Check the program can execute. > + self.assertRunOk("ngrep -V") > + > + # Start a netcat server in background accepting connections > + cmd = f"nc -l -p {port} >/dev/null </dev/null &" > + self.assertRunOk(cmd) > + > + time.sleep(1) > + > + # Start a netcat client in background, sending one message > + # every seconds > + cmd = "( while true ; do " > + cmd += f"echo '{msg}'; " > + cmd += "sleep 1 ; " > + cmd += "done) | " > + cmd += f"nc 127.0.0.1 {port} &" > + self.assertRunOk(cmd) > + > + time.sleep(1) > + > + # Capture 3 packets with the message. > + cmd = f"ngrep -n 3 '{msg}'" > + self.assertRunOk(cmd) > -- > 2.43.0 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
diff --git a/DEVELOPERS b/DEVELOPERS index 94a89c63d5..33ad5b3097 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1793,6 +1793,7 @@ F: support/testing/tests/package/test_mtools.py F: support/testing/tests/package/test_ncdu.py F: support/testing/tests/package/test_nftables.py F: support/testing/tests/package/test_nftables/ +F: support/testing/tests/package/test_ngrep.py F: support/testing/tests/package/test_octave.py F: support/testing/tests/package/test_ola.py F: support/testing/tests/package/test_ola/ diff --git a/support/testing/tests/package/test_ngrep.py b/support/testing/tests/package/test_ngrep.py new file mode 100644 index 0000000000..29aaa55c2c --- /dev/null +++ b/support/testing/tests/package/test_ngrep.py @@ -0,0 +1,49 @@ +import os +import time + +import infra.basetest + + +class TestNgrep(infra.basetest.BRTest): + config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ + """ + BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y + BR2_PACKAGE_NETCAT=y + BR2_PACKAGE_NGREP=y + BR2_TARGET_ROOTFS_CPIO=y + # BR2_TARGET_ROOTFS_TAR is not set + """ + + def test_run(self): + cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") + self.emulator.boot(arch="armv5", + kernel="builtin", + options=["-initrd", cpio_file]) + self.emulator.login() + + port = 12345 + msg = 'Hello Buildroot' + + # Check the program can execute. + self.assertRunOk("ngrep -V") + + # Start a netcat server in background accepting connections + cmd = f"nc -l -p {port} >/dev/null </dev/null &" + self.assertRunOk(cmd) + + time.sleep(1) + + # Start a netcat client in background, sending one message + # every seconds + cmd = "( while true ; do " + cmd += f"echo '{msg}'; " + cmd += "sleep 1 ; " + cmd += "done) | " + cmd += f"nc 127.0.0.1 {port} &" + self.assertRunOk(cmd) + + time.sleep(1) + + # Capture 3 packets with the message. + cmd = f"ngrep -n 3 '{msg}'" + self.assertRunOk(cmd)
Signed-off-by: Julien Olivain <ju.o@free.fr> --- DEVELOPERS | 1 + support/testing/tests/package/test_ngrep.py | 49 +++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 support/testing/tests/package/test_ngrep.py