pub fn to_shell_exit_code(boxlite_code: i32) -> i32 {
match boxlite_code {
code if code < 0 => 128 + code.abs(),
code => code,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_to_shell_exit_code_success() {
assert_eq!(to_shell_exit_code(0), 0);
}
#[test]
fn test_to_shell_exit_code_normal_failure() {
assert_eq!(to_shell_exit_code(1), 1);
assert_eq!(to_shell_exit_code(127), 127);
}
#[test]
fn test_to_shell_exit_code_signal_termination() {
assert_eq!(to_shell_exit_code(-9), 137);
assert_eq!(to_shell_exit_code(-15), 143);
assert_eq!(to_shell_exit_code(-2), 130);
}
}