cli-testing-specialist 1.0.10

Comprehensive testing framework for CLI tools - automated analysis, test generation, and security validation
Documentation
// Auto-generated tests for {{cli_name}} - Security Category
// Generated by cli-testing-specialist v1.1.0

use assert_cmd::Command;

/// Test: Command injection attempt is rejected
#[test]
fn test_command_injection_semicolon() {
    let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
    cmd.arg("test; rm -rf /")
        .assert()
        .failure();
}

/// Test: Command injection with pipe is rejected
#[test]
fn test_command_injection_pipe() {
    let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
    cmd.arg("test | cat /etc/passwd")
        .assert()
        .failure();
}

/// Test: Command injection with backticks is rejected
#[test]
fn test_command_injection_backticks() {
    let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
    cmd.arg("test`whoami`")
        .assert()
        .failure();
}

/// Test: Null byte injection is rejected
#[test]
fn test_null_byte_injection() {
    let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
    cmd.arg("test\0malicious")
        .assert()
        .failure();
}

/// Test: Path traversal with ../ is rejected
#[test]
fn test_path_traversal_parent() {
    let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
    cmd.arg("../../etc/passwd")
        .assert()
        .failure();
}

/// Test: Absolute path to sensitive file is rejected
#[test]
fn test_absolute_path_sensitive() {
    let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
    cmd.arg("/etc/shadow")
        .assert()
        .failure();
}