Skip to main content

probador/
lib.rs

1//! Probar CLI Library (Feature 5)
2//!
3//! Command-line interface for the Probar testing framework.
4//!
5//! ## EXTREME TDD: Tests written FIRST per spec
6
7#![warn(missing_docs)]
8#![warn(clippy::all)]
9#![warn(clippy::pedantic)]
10#![warn(clippy::nursery)]
11#![allow(clippy::module_name_repetitions)]
12#![allow(clippy::format_push_string)]
13#![allow(clippy::missing_errors_doc)]
14#![allow(clippy::too_many_lines)]
15#![allow(clippy::cast_possible_truncation)]
16#![allow(clippy::cast_precision_loss)]
17#![allow(clippy::cast_sign_loss)]
18#![allow(clippy::cast_possible_wrap)]
19#![allow(clippy::float_cmp)]
20#![allow(clippy::unreadable_literal)]
21#![allow(clippy::uninlined_format_args)]
22#![allow(clippy::if_not_else)]
23#![allow(clippy::match_same_arms)]
24#![allow(clippy::redundant_closure_for_method_calls)]
25#![allow(clippy::items_after_statements)]
26#![allow(clippy::option_if_let_else)]
27#![allow(missing_docs)]
28#![allow(clippy::fn_params_excessive_bools)]
29#![allow(clippy::struct_excessive_bools)]
30#![allow(clippy::large_enum_variant)]
31#![allow(clippy::only_used_in_recursion)]
32#![allow(irrefutable_let_patterns)]
33#![allow(clippy::assigning_clones)]
34#![allow(clippy::incompatible_msrv)]
35#![allow(clippy::single_match_else)]
36
37mod commands;
38mod config;
39pub mod debug;
40pub mod dev_server;
41mod error;
42pub mod generate;
43pub mod handlers;
44pub mod lint;
45pub mod load_testing;
46mod output;
47mod runner;
48pub mod score;
49pub mod simulation;
50pub mod statistics;
51pub mod stress;
52pub mod tracing;
53pub mod tree;
54pub mod visualization;
55pub mod wasm_testing;
56
57pub use commands::{
58    AnimationArgs, AnimationCheckArgs, AnimationSubcommand, AudioArgs, AudioCheckArgs,
59    AudioSubcommand, AvSyncArgs, AvSyncCheckArgs, AvSyncOutputFormat, AvSyncReportArgs,
60    AvSyncSubcommand, BuildArgs, Cli, Commands, ComplyArgs, ComplyCheckArgs, ComplyDiffArgs,
61    ComplyEnforceArgs, ComplyMigrateArgs, ComplyOutputFormat, ComplyReportArgs, ComplyReportFormat,
62    ComplySubcommand, ConfigArgs, CoverageArgs, DataAuditArgs, DiagramFormat, ExperimentArgs,
63    ExperimentCompareArgs, ExperimentInitArgs, ExperimentStatusArgs, ExperimentSubcommand,
64    InitArgs, LlmArgs, LlmBenchArgs, LlmGenDatasetArgs, LlmLoadArgs, LlmReportArgs, LlmScoreArgs,
65    LlmSubcommand, LlmSweepArgs, LlmTestArgs, OutputFormat, PaletteArg, PlaybookArgs,
66    PlaybookOutputFormat, RecordArgs, RecordFormat, ReportArgs, ReportFormat, ScoreArgs,
67    ScoreOutputFormat, ServeArgs, ServeSubcommand, StressArgs, TestArgs, TreeArgs, VideoArgs,
68    VideoCheckArgs, VideoSubcommand, VizArgs, WasmTarget, WatchArgs,
69};
70pub use config::{CliConfig, ColorChoice, Verbosity};
71pub use debug::{create_tracer, DebugCategory, DebugTracer, DebugVerbosity, ResolutionRule};
72pub use dev_server::{
73    get_mime_type, DevServer, DevServerConfig, DevServerConfigBuilder, FileChangeEvent,
74    FileWatcher, FileWatcherBuilder, HotReloadMessage, ImportRef, ImportType,
75    ImportValidationError, ModuleValidationResult, ModuleValidator,
76};
77pub use error::{CliError, CliResult};
78pub use lint::{
79    render_lint_json, render_lint_report, ContentLinter, LintReport, LintResult, LintSeverity,
80};
81pub use load_testing::{
82    render_load_test_json, render_load_test_report, AssertionResult as LoadAssertionResult,
83    EndpointStats, HttpMethod, LatencyHistogram, LoadTestAssertion, LoadTestConfig, LoadTestError,
84    LoadTestErrorKind, LoadTestOutputFormat, LoadTestRequest, LoadTestResult, LoadTestScenario,
85    LoadTestStage, ResourceUsage, UserConfig,
86};
87pub use output::{OutputFormat as CliOutputFormat, ProgressReporter};
88pub use runner::TestRunner;
89pub use score::{
90    CategoryScore, CategoryStatus, CriterionResult, Effort, Grade, ProjectScore, Recommendation,
91    ScoreCalculator,
92};
93pub use tree::{build_tree, display_tree, render_tree, FileNode, TreeConfig};
94pub use wasm_testing::{
95    compare_performance, render_performance_report, Browser, BrowserMatrix, BrowserTestResult,
96    ComparisonStatus, KeyModifiers, MemoryGrowthEvent, MemoryProfile, MemorySnapshot,
97    PerformanceBaseline, PerformanceComparison, PerformanceMetric, RecordedEvent, Recording,
98    RecordingMetadata, Viewport,
99};
100// PROBAR-SPEC-006 Section H: Enhanced Visualization
101pub use visualization::{
102    render_comparison, render_dashboard, ComparisonVerdict, DashboardState, DataPoint,
103    EndpointMetrics, ExportFormat, MetricsStream, ReportComparison, ReportViewerConfig, StageInfo,
104    StreamingHistogram, TimeSeries,
105};
106// PROBAR-SPEC-006 Section I: Statistical Analysis
107pub use statistics::{
108    render_statistical_json, render_statistical_report, ApdexCalculator, ApdexRating, KneeDetector,
109    LatencySample, QuantileRegression, StatisticalAnalysis, TailAttribution, VarianceComponent,
110    VarianceTree,
111};
112// PROBAR-SPEC-006 Section J: Deep Tracing
113pub use tracing::{
114    render_trace_json, render_trace_report, Flamegraph, FlamegraphNode, OptimizationSuggestion,
115    SourceHotspot, SourceLocation, SyscallStats, TraceAnalysis, TraceCategory, TraceConfig,
116    TraceSpan, WasmEvent, WasmEventType,
117};
118// PROBAR-SPEC-006 Section K: Simulation Playback
119pub use simulation::{
120    render_chaos_report, render_monte_carlo_json, render_monte_carlo_report, ChaosObservation,
121    ChaosResult, Distribution, FailureInjection, ImpactLevel, InjectionType, LatencyDistribution,
122    MonteCarloResult, ObservationSeverity, ParameterVariation, RiskLevel, SensitivityFactor,
123    SimulationConfig, SimulationMode, SimulationOutput, SlaProbability,
124};
125// PROBAR-SPEC-WASM-001 Section H: Browser/WASM Stress Testing
126pub use stress::{
127    render_stress_json, render_stress_report, LatencyStats, MemoryStats, StressConfig, StressError,
128    StressErrorKind, StressMode, StressResult, StressRunner,
129};