diff --git a/DEVELOPERS b/DEVELOPERS index d052e59122..7733d5a04e 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1719,6 +1719,7 @@ F: support/testing/tests/package/test_gnupg2.py F: support/testing/tests/package/test_highway.py F: support/testing/tests/package/test_hwloc.py F: support/testing/tests/package/test_libjxl.py +F: support/testing/tests/package/test_lsof.py F: support/testing/tests/package/test_ncdu.py F: support/testing/tests/package/test_octave.py F: support/testing/tests/package/test_ola.py diff --git a/support/testing/tests/package/test_lsof.py b/support/testing/tests/package/test_lsof.py new file mode 100644 index 0000000000..b0478dfbb7 --- /dev/null +++ b/support/testing/tests/package/test_lsof.py @@ -0,0 +1,41 @@ +import os + +import infra.basetest + + +class TestLsof(infra.basetest.BRTest): + config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ + """ + BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y + BR2_PACKAGE_LSOF=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() + + test_file = "/tmp/this-is-a-test-file" + + # Check the program can execute + self.assertRunOk("lsof -v") + + # Check a normal program invocation + self.assertRunOk("lsof") + + # Check lsof fails if requested file is not opened + _, exit_code = self.emulator.run("lsof {}".format(test_file)) + self.assertNotEqual(exit_code, 0) + + # Open the test file from the shell on descriptor 10 + self.assertRunOk("exec 10> {}".format(test_file)) + + # Check that lsof now show the file + output, exit_code = self.emulator.run("lsof {}".format(test_file)) + self.assertEqual(exit_code, 0) + # output[0] is the lsof header line + self.assertIn(test_file, output[1])