diff --git a/tests/by-util/test_timeout.rs b/tests/by-util/test_timeout.rs index ee8e9d18f..38dcaa23f 100644 --- a/tests/by-util/test_timeout.rs +++ b/tests/by-util/test_timeout.rs @@ -206,3 +206,23 @@ fn test_hex_timeout_ending_with_d() { .fails_with_code(124) .no_output(); } + +#[test] +fn test_terminate_child_on_receiving_terminate() { + let mut timeout_cmd = new_ucmd!() + .args(&[ + "10", + "sh", + "-c", + "trap 'echo child received TERM' TERM; sleep 5", + ]) + .run_no_wait(); + timeout_cmd.delay(100); + timeout_cmd.kill_with_custom_signal(nix::sys::signal::Signal::SIGTERM); + timeout_cmd + .make_assertion() + .is_not_alive() + .with_current_output() + .code_is(143) + .stdout_contains("child received TERM"); +}