import os import infra.basetest class TestStrace(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ BR2_PACKAGE_STRACE=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("strace --version") test_file = "buildroot-strace-test.txt" test_file_mode = "0600" strace_log = "strace.log" # Create a test file. self.assertRunOk(f"touch {test_file}") # Run strace on a chmod cmd = f"strace -o {strace_log} chmod {test_file_mode} {test_file}" self.assertRunOk(cmd) # Check the strace log contain a call to chmod() expected_str = f"chmod(\"{test_file}\", {test_file_mode}) = 0" self.assertRunOk(f"grep -F '{expected_str}' {strace_log}")