diff --git a/DEVELOPERS b/DEVELOPERS index f8737621b3..187c8eeca7 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1771,6 +1771,7 @@ F: support/testing/tests/package/test_ddrescue/ F: support/testing/tests/package/test_dos2unix.py F: support/testing/tests/package/test_fluidsynth.py F: support/testing/tests/package/test_fluidsynth/ +F: support/testing/tests/package/test_fping.py F: support/testing/tests/package/test_gawk.py F: support/testing/tests/package/test_glslsandbox_player.py F: support/testing/tests/package/test_glslsandbox_player/ diff --git a/support/testing/tests/package/test_fping.py b/support/testing/tests/package/test_fping.py new file mode 100644 index 0000000000..507c4ce73b --- /dev/null +++ b/support/testing/tests/package/test_fping.py @@ -0,0 +1,45 @@ +import os +import time + +import infra.basetest + + +class TestFping(infra.basetest.BRTest): + config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ + """ + BR2_PACKAGE_FPING=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() + + # Check the program can execute. + self.assertRunOk("fping --version") + + # Fping v5.1 need to wait few seconds after a kernel booted + # before starting. This sleep time can be removed when the + # issue will be closed and the package updated. See: + # https://github.com/schweikert/fping/issues/288 + time.sleep(5 * self.timeout_multiplier) + + # Run 3 pings on localhost. + self.assertRunOk("fping -e -c 3 localhost") + + # Run pings on a local subnet and print statistics. + self.assertRunOk("fping -s -g 127.0.0.0/28") + + # Test an IPv6 ping. + self.assertRunOk("fping -6 ::1") + + # Create a prohibited route to make fping fail. + self.assertRunOk("ip route add to prohibit 192.168.12.0/24") + + # We expect fping to fail when pinging the prohibited network. + _, ret = self.emulator.run("fping 192.168.12.34") + self.assertNotEqual(ret, 0)