| 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]) |