// Auto-generated tests for {{cli_name}} - Performance Category
// Generated by cli-testing-specialist v1.1.0
use assert_cmd::Command;
use std::time::Instant;
/// Test: Help command responds quickly (< 1 second)
#[test]
fn test_help_performance() {
let start = Instant::now();
let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
cmd.arg("--help")
.assert()
.success();
let duration = start.elapsed();
assert!(
duration.as_secs() < 1,
"Help command took {:?}, expected < 1 second",
duration
);
}
/// Test: Version command responds quickly (< 500ms)
#[test]
fn test_version_performance() {
let start = Instant::now();
let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
cmd.arg("--version")
.assert()
.success();
let duration = start.elapsed();
assert!(
duration.as_millis() < 500,
"Version command took {:?}, expected < 500ms",
duration
);
}
/// Test: Invalid command fails quickly (< 500ms)
#[test]
fn test_invalid_command_performance() {
let start = Instant::now();
let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
cmd.arg("--invalid-flag-xyz")
.assert()
.failure();
let duration = start.elapsed();
assert!(
duration.as_millis() < 500,
"Invalid command handling took {:?}, expected < 500ms",
duration
);
}
/// Test: Basic operation completes in reasonable time (< 5 seconds)
#[test]
fn test_basic_operation_performance() {
let start = Instant::now();
let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
cmd.assert();
let duration = start.elapsed();
assert!(
duration.as_secs() < 5,
"Basic operation took {:?}, expected < 5 seconds",
duration
);
}
/// Test: Repeated executions maintain consistent performance
#[test]
fn test_repeated_execution_consistency() {
let mut durations = Vec::new();
for _ in 0..5 {
let start = Instant::now();
let mut cmd = Command::cargo_bin("{{cli_name}}").unwrap();
cmd.arg("--help")
.assert()
.success();
durations.push(start.elapsed());
}
// Calculate average and check variance
let avg_ms: u128 = durations.iter().map(|d| d.as_millis()).sum::<u128>() / durations.len() as u128;
let max_ms = durations.iter().map(|d| d.as_millis()).max().unwrap();
let min_ms = durations.iter().map(|d| d.as_millis()).min().unwrap();
// Variance should be less than 50% of average
let variance = max_ms - min_ms;
assert!(
variance < avg_ms / 2,
"Performance variance too high: avg={}ms, variance={}ms",
avg_ms,
variance
);
}