//! Arguments for `mcptest concurrency`: concurrent-session correctness.

use clap::Args;

/// Open N concurrent sessions against a server and check it stays correct under
/// concurrency: every session completes (liveness), each returns the same
/// catalog as a single-session baseline (determinism, no cross-talk), and no
/// session's state leaks into another (isolation). This is a correctness check,
/// not a load test.
#[derive(Debug, Args)]
pub struct ConcurrencyArgs {
    /// Server to probe: an `http(s)://` URL (streamable HTTP) or a stdio command
    /// line (anything else).
    #[arg(value_name = "SERVER")]
    pub server: String,

    /// Number of concurrent sessions to open.
    #[arg(long, default_value_t = 4)]
    pub sessions: usize,

    /// Emit the report as JSON instead of the pretty summary.
    #[arg(long)]
    pub json: bool,

    /// Report without failing: exit 0 even when a session diverges or hangs.
    #[arg(long)]
    pub no_fail: bool,
}
