diff mbox series

[1/1] support/testing: add netcat runtime test

Message ID 20240113201532.121274-1-ju.o@free.fr
State Accepted
Headers show
Series [1/1] support/testing: add netcat runtime test | expand

Commit Message

Julien Olivain Jan. 13, 2024, 8:15 p.m. UTC
Signed-off-by: Julien Olivain <ju.o@free.fr>
---
 DEVELOPERS                                   |  1 +
 support/testing/tests/package/test_netcat.py | 41 ++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 support/testing/tests/package/test_netcat.py

Comments

Yann E. MORIN Jan. 21, 2024, 10:19 a.m. UTC | #1
Julien, All,

On 2024-01-13 21:15 +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_netcat.py | 41 ++++++++++++++++++++
>  2 files changed, 42 insertions(+)
>  create mode 100644 support/testing/tests/package/test_netcat.py
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 94a89c63d5..d25f31f0ff 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1791,6 +1791,7 @@ F:	support/testing/tests/package/test_lz4.py
>  F:	support/testing/tests/package/test_lzop.py
>  F:	support/testing/tests/package/test_mtools.py
>  F:	support/testing/tests/package/test_ncdu.py
> +F:	support/testing/tests/package/test_netcat.py
>  F:	support/testing/tests/package/test_nftables.py
>  F:	support/testing/tests/package/test_nftables/
>  F:	support/testing/tests/package/test_octave.py
> diff --git a/support/testing/tests/package/test_netcat.py b/support/testing/tests/package/test_netcat.py
> new file mode 100644
> index 0000000000..b3efa4c40b
> --- /dev/null
> +++ b/support/testing/tests/package/test_netcat.py
> @@ -0,0 +1,41 @@
> +import os
> +import time
> +
> +import infra.basetest
> +
> +
> +class TestNetCat(infra.basetest.BRTest):
> +    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
> +        """
> +        BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
> +        BR2_PACKAGE_NETCAT=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()
> +
> +        self.assertRunOk("nc --version")
> +
> +        in_file = "input.bin"
> +        out_file = "output.bin"
> +        port = 12345
> +
> +        cmd = f"dd if=/dev/urandom of={in_file} bs=1k count=1k"
> +        self.assertRunOk(cmd)
> +
> +        cmd = f"nc -l -p {port} > {out_file} &"
> +        self.assertRunOk(cmd)
> +
> +        time.sleep(1)
> +
> +        cmd = f"cat {in_file} | nc -c 127.0.0.1 {port}"
> +        self.assertRunOk(cmd)
> +
> +        cmd = f"cmp {in_file} {out_file}"
> +        self.assertRunOk(cmd)
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Romain Naour Feb. 5, 2024, 5:49 p.m. UTC | #2
Hello Julien, All,

On Sun, Jan 21, 2024 at 11:20 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> Julien, All,
>
> On 2024-01-13 21:15 +0100, Julien Olivain spake thusly:
> > Signed-off-by: Julien Olivain <ju.o@free.fr>
>
> Applied to master, thanks.

It seems this test is failing in gitlab-ci for some reason:
https://gitlab.com/buildroot.org/buildroot/-/jobs/6093854664

can you have a look?

Best regards,
Romain

>
> Regards,
> Yann E. MORIN.
>
> > ---
> >  DEVELOPERS                                   |  1 +
> >  support/testing/tests/package/test_netcat.py | 41 ++++++++++++++++++++
> >  2 files changed, 42 insertions(+)
> >  create mode 100644 support/testing/tests/package/test_netcat.py
> >
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 94a89c63d5..d25f31f0ff 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -1791,6 +1791,7 @@ F:      support/testing/tests/package/test_lz4.py
> >  F:   support/testing/tests/package/test_lzop.py
> >  F:   support/testing/tests/package/test_mtools.py
> >  F:   support/testing/tests/package/test_ncdu.py
> > +F:   support/testing/tests/package/test_netcat.py
> >  F:   support/testing/tests/package/test_nftables.py
> >  F:   support/testing/tests/package/test_nftables/
> >  F:   support/testing/tests/package/test_octave.py
> > diff --git a/support/testing/tests/package/test_netcat.py b/support/testing/tests/package/test_netcat.py
> > new file mode 100644
> > index 0000000000..b3efa4c40b
> > --- /dev/null
> > +++ b/support/testing/tests/package/test_netcat.py
> > @@ -0,0 +1,41 @@
> > +import os
> > +import time
> > +
> > +import infra.basetest
> > +
> > +
> > +class TestNetCat(infra.basetest.BRTest):
> > +    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
> > +        """
> > +        BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
> > +        BR2_PACKAGE_NETCAT=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()
> > +
> > +        self.assertRunOk("nc --version")
> > +
> > +        in_file = "input.bin"
> > +        out_file = "output.bin"
> > +        port = 12345
> > +
> > +        cmd = f"dd if=/dev/urandom of={in_file} bs=1k count=1k"
> > +        self.assertRunOk(cmd)
> > +
> > +        cmd = f"nc -l -p {port} > {out_file} &"
> > +        self.assertRunOk(cmd)
> > +
> > +        time.sleep(1)
> > +
> > +        cmd = f"cat {in_file} | nc -c 127.0.0.1 {port}"
> > +        self.assertRunOk(cmd)
> > +
> > +        cmd = f"cmp {in_file} {out_file}"
> > +        self.assertRunOk(cmd)
> > --
> > 2.43.0
> >
> > _______________________________________________
> > 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
Julien Olivain Feb. 5, 2024, 9:51 p.m. UTC | #3
Hi Romain, All,

On 05/02/2024 18:49, Romain NAOUR wrote:
> Hello Julien, All,
> 
> On Sun, Jan 21, 2024 at 11:20 AM Yann E. MORIN 
> <yann.morin.1998@free.fr> wrote:
>> 
>> Julien, All,
>> 
>> On 2024-01-13 21:15 +0100, Julien Olivain spake thusly:
>> > Signed-off-by: Julien Olivain <ju.o@free.fr>
>> 
>> Applied to master, thanks.
> 
> It seems this test is failing in gitlab-ci for some reason:
> https://gitlab.com/buildroot.org/buildroot/-/jobs/6093854664
> 
> can you have a look?

I was able to reproduce the issue with a very slow execution.
I proposed a fix in:
https://patchwork.ozlabs.org/project/buildroot/patch/20240205214837.3497535-1-ju.o@free.fr/

> 
> Best regards,
> Romain

Best regards,

Julien.
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 94a89c63d5..d25f31f0ff 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1791,6 +1791,7 @@  F:	support/testing/tests/package/test_lz4.py
 F:	support/testing/tests/package/test_lzop.py
 F:	support/testing/tests/package/test_mtools.py
 F:	support/testing/tests/package/test_ncdu.py
+F:	support/testing/tests/package/test_netcat.py
 F:	support/testing/tests/package/test_nftables.py
 F:	support/testing/tests/package/test_nftables/
 F:	support/testing/tests/package/test_octave.py
diff --git a/support/testing/tests/package/test_netcat.py b/support/testing/tests/package/test_netcat.py
new file mode 100644
index 0000000000..b3efa4c40b
--- /dev/null
+++ b/support/testing/tests/package/test_netcat.py
@@ -0,0 +1,41 @@ 
+import os
+import time
+
+import infra.basetest
+
+
+class TestNetCat(infra.basetest.BRTest):
+    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
+        """
+        BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+        BR2_PACKAGE_NETCAT=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()
+
+        self.assertRunOk("nc --version")
+
+        in_file = "input.bin"
+        out_file = "output.bin"
+        port = 12345
+
+        cmd = f"dd if=/dev/urandom of={in_file} bs=1k count=1k"
+        self.assertRunOk(cmd)
+
+        cmd = f"nc -l -p {port} > {out_file} &"
+        self.assertRunOk(cmd)
+
+        time.sleep(1)
+
+        cmd = f"cat {in_file} | nc -c 127.0.0.1 {port}"
+        self.assertRunOk(cmd)
+
+        cmd = f"cmp {in_file} {out_file}"
+        self.assertRunOk(cmd)