1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
use assert_cmd::prelude::*; use std::process::Command; #[cfg(target_arch = "x86_64")] #[test] fn fake_getpid_test() { let mut cmd = Command::cargo_bin("fake_getpid").unwrap(); cmd.assert().success().stdout("pid: 56\n"); } #[cfg(target_arch = "x86_64")] #[test] fn fake_getuid_test() { let mut cmd = Command::cargo_bin("fake_getuid").unwrap(); cmd.assert().success().stdout("999\n"); } #[cfg(target_arch = "x86_64")] #[test] fn fake_time_test() { let mut cmd = Command::cargo_bin("fake_time").unwrap(); cmd.assert().success().stdout("3\n"); } #[cfg(target_arch = "x86_64")] #[test] fn trace_count_test() { let mut cmd = Command::cargo_bin("count_trace").unwrap(); cmd.assert() .success() .stdout("test\ntest\ntest\ntest2\nFinal count: 4\n"); } #[cfg(target_arch = "x86_64")] #[test] // fail ptrace syscall itself with a custom perm error fn test_custom_errno() { let mut cmd = Command::cargo_bin("blocked_ptrace").unwrap(); cmd.assert() .success() .stdout("result:-1\nlast_os_error:permission denied\n"); } #[cfg(target_arch = "x86_64")] #[test] fn test_trace_interception() {}