#![allow(non_snake_case)]
use serial_test::serial;
use xet_runtime::config::XetConfig;
use xet_runtime::config_group;
use xet_runtime::utils::EnvVarGuard;
mod data_config {
use super::*;
config_group!({
ref TEST_INT: usize = 42;
});
}
mod shard_config {
use super::*;
config_group!({
ref TEST_STRING: String = "default".to_string();
});
}
#[test]
fn test_primary_config_struct() {
let config = XetConfig::default();
assert_eq!(config.shard.target_size, 64 * 1024 * 1024);
}
#[test]
fn test_primary_config_clone() {
let config1 = XetConfig::new();
let config2 = config1.clone();
assert_eq!(config1.shard.target_size, config2.shard.target_size);
}
#[test]
fn test_primary_config_debug() {
let config = XetConfig::new();
let debug_str = format!("{:?}", config);
assert!(!debug_str.is_empty());
}
#[test]
fn test_config_values_type_alias() {
let mut _data_config = data_config::ConfigValueGroup::new();
_data_config.apply_env_overrides();
let mut _shard_config = shard_config::ConfigValueGroup::new();
_shard_config.apply_env_overrides();
let mut data1 = data_config::ConfigValueGroup::new();
data1.apply_env_overrides();
assert_eq!(data1.TEST_INT, 42);
}
#[test]
#[serial(config_env)]
fn test_group_name_env_var_prefixing() {
let _guard = EnvVarGuard::set("HF_XET_DATA_DEFAULT_CAS_ENDPOINT", "http://test:8080");
let config = XetConfig::new();
assert_eq!(config.data.default_cas_endpoint, "http://test:8080");
assert_eq!(config.shard.target_size, 64 * 1024 * 1024);
let _guard2 = EnvVarGuard::set("HF_XET_SHARD_TARGET_SIZE", "1000000");
let config2 = XetConfig::new();
assert_eq!(config2.data.default_cas_endpoint, "http://test:8080"); assert_eq!(config2.shard.target_size, 1000000);
}