-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathlib.rs
More file actions
66 lines (56 loc) · 1.97 KB
/
Copy pathlib.rs
File metadata and controls
66 lines (56 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//! Terraphim AI Release Validation System
//!
//! This crate provides comprehensive validation capabilities for Terraphim AI releases,
//! including download testing, installation validation, functional verification, and
//! security scanning across multiple platforms and package formats.
// Allow various lints in this validation/testing crate - this is test infrastructure
// with flexible utilities prepared for future use and extensibility.
// TODO: Gradually remove these allows as the crate matures
#![allow(unused)]
#![allow(ambiguous_glob_reexports)]
// #![allow(clippy::all)] -- removed: see issue #2508
pub mod artifacts;
pub mod orchestrator;
pub mod performance;
pub mod reporting;
pub mod testing;
pub mod validators;
// Re-export core components for easier access
pub use artifacts::{ArtifactType, Platform, ReleaseArtifact};
pub use orchestrator::ValidationOrchestrator;
pub use reporting::{ReportFormat, ValidationReport};
pub use validators::{ValidationResult, ValidationStatus};
use anyhow::Result;
/// Main validation system entry point
pub struct ValidationSystem {
orchestrator: ValidationOrchestrator,
}
impl ValidationSystem {
/// Create a new validation system instance
pub fn new() -> Result<Self> {
let orchestrator = ValidationOrchestrator::new()?;
Ok(Self { orchestrator })
}
/// Run complete validation for a release
pub async fn validate_release(&self, version: &str) -> Result<ValidationReport> {
self.orchestrator.validate_release(version).await
}
/// Run specific validation categories
pub async fn validate_categories(
&self,
version: &str,
categories: Vec<String>,
) -> Result<ValidationReport> {
self.orchestrator
.validate_categories(version, categories)
.await
}
}
#[cfg(test)]
mod tests {
use super::*;
#[tokio::test]
async fn test_validation_system_creation() {
let _system = ValidationSystem::new().unwrap();
}
}