use crate::posix::helpers::*;
#[test]
fn posix_printf_basic() {
let result = run(&["printf", "hello"]);
assert_success(&result);
assert_eq!(result.1, "hello");
}
#[test]
fn posix_printf_string() {
let result = run(&["printf", "%s\n", "hello"]);
assert_success(&result);
assert_eq!(result.1, "hello\n");
}
#[test]
fn posix_printf_integer() {
let result = run(&["printf", "%d\n", "42"]);
assert_success(&result);
assert_eq!(result.1, "42\n");
}
#[test]
fn posix_printf_hex() {
let result = run(&["printf", "%x\n", "255"]);
assert_success(&result);
assert_eq!(result.1, "ff\n");
}
#[test]
fn posix_printf_octal() {
let result = run(&["printf", "%o\n", "8"]);
assert_success(&result);
assert_eq!(result.1, "10\n");
}
#[test]
fn posix_printf_width() {
let result = run(&["printf", "%5d\n", "42"]);
assert_success(&result);
assert_eq!(result.1, " 42\n");
}
#[test]
fn posix_printf_precision() {
let result = run(&["printf", "%.3s\n", "hello"]);
assert_success(&result);
assert_eq!(result.1, "hel\n");
}
#[test]
fn posix_printf_escapes() {
let result = run(&["printf", "hello\\nworld"]);
assert_success(&result);
assert_eq!(result.1, "hello\nworld");
}
#[test]
fn posix_printf_tab() {
let result = run(&["printf", "a\\tb"]);
assert_success(&result);
assert_eq!(result.1, "a\tb");
}
#[test]
fn posix_printf_reuse() {
let result = run(&["printf", "%s\n", "a", "b", "c"]);
assert_success(&result);
assert_eq!(result.1, "a\nb\nc\n");
}
#[test]
fn posix_printf_percent() {
let result = run(&["printf", "100%%"]);
assert_success(&result);
assert_eq!(result.1, "100%");
}
#[test]
fn posix_printf_exit_success() {
let result = run(&["printf", "test"]);
assert_eq!(result.0, 0);
}
#[test]
fn posix_printf_char() {
let result = run(&["printf", "%c", "A"]);
assert_success(&result);
assert_eq!(result.1, "A");
}
#[test]
fn posix_printf_leading_zeros() {
let result = run(&["printf", "%05d\n", "42"]);
assert_success(&result);
assert_eq!(result.1, "00042\n");
}
#[test]
fn posix_printf_left_justify() {
let result = run(&["printf", "%-5d|\n", "42"]);
assert_success(&result);
assert_eq!(result.1, "42 |\n");
}