buildroot/support/testing/tests/package/test_fping.py

46 lines
1.5 KiB
Python

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)