use crate::*;
#[test]
fn environment_detection_runs() {
let registry = AcceleratorRegistry::detect();
let env = registry.system_io().environment.as_ref();
assert!(env.is_some());
}
#[test]
fn environment_serde_roundtrip() {
let env = RuntimeEnvironment {
is_docker: true,
is_kubernetes: false,
kubernetes_namespace: None,
cloud_instance: Some(CloudInstanceMeta {
provider: "aws".into(),
instance_type: Some("p4d.24xlarge".into()),
instance_id: Some("i-1234567890abcdef0".into()),
region: Some("us-east-1".into()),
zone: None,
}),
};
let json = serde_json::to_string(&env).unwrap();
let back: RuntimeEnvironment = serde_json::from_str(&json).unwrap();
assert_eq!(env, back);
}
#[test]
fn environment_serde_minimal() {
let env = RuntimeEnvironment {
is_docker: false,
is_kubernetes: false,
kubernetes_namespace: None,
cloud_instance: None,
};
let json = serde_json::to_string(&env).unwrap();
assert!(!json.contains("kubernetes_namespace"));
assert!(!json.contains("cloud_instance"));
let back: RuntimeEnvironment = serde_json::from_str(&json).unwrap();
assert_eq!(env, back);
}
#[test]
fn system_io_without_environment_deserializes() {
let json = r#"{"interconnects":[],"storage":[]}"#;
let sio: SystemIo = serde_json::from_str(json).unwrap();
assert!(sio.environment.is_none());
}