config_validation_test/
config_validation_test.rs1use rat_logger::{LoggerBuilder, LevelFilter};
3use rat_logger::handler::term::TermConfig;
4use rat_logger::handler::file::FileProcessorConfig;
5use rat_logger::config::{FileConfig, FormatConfig, ColorConfig};
6
7fn main() {
8 println!("=== 配置冲突检测测试 ===\n");
9
10 println!("1. 测试 TermConfig 颜色冲突:");
12 let invalid_term_config = TermConfig {
13 enable_color: false, color: Some(ColorConfig::default()), ..Default::default()
16 };
17
18 match std::panic::catch_unwind(|| {
19 LoggerBuilder::new()
20 .with_level(LevelFilter::Debug)
21 .add_terminal_with_config(invalid_term_config)
22 .build()
23 }) {
24 Ok(_) => println!(" ❌ 错误: 应该检测到配置冲突但没有"),
25 Err(_) => println!(" ✅ 正确: 成功检测到颜色配置冲突"),
26 }
27
28 println!("\n2. 测试 TermConfig 无效批量大小:");
30 let invalid_batch_config = TermConfig {
31 batch_size: 0, ..Default::default()
33 };
34
35 match std::panic::catch_unwind(|| {
36 LoggerBuilder::new()
37 .with_level(LevelFilter::Debug)
38 .add_terminal_with_config(invalid_batch_config)
39 .build()
40 }) {
41 Ok(_) => println!(" ❌ 错误: 应该检测到批量大小错误但没有"),
42 Err(_) => println!(" ✅ 正确: 成功检测到批量大小错误"),
43 }
44
45 println!("\n3. 测试 FileConfig 原始模式冲突:");
47 let invalid_file_config = FileConfig {
48 is_raw: true, format: Some(FormatConfig::default()), ..Default::default()
51 };
52
53 let file_processor_config = FileProcessorConfig {
54 file_config: invalid_file_config,
55 ..Default::default()
56 };
57
58 match std::panic::catch_unwind(|| {
59 rat_logger::handler::file::FileProcessor::with_config(file_processor_config)
60 }) {
61 Ok(_) => println!(" ❌ 错误: 应该检测到原始模式冲突但没有"),
62 Err(_) => println!(" ✅ 正确: 成功检测到原始模式冲突"),
63 }
64
65 println!("\n4. 测试 FileConfig 无效文件大小:");
67 let invalid_size_config = FileConfig {
68 max_file_size: 0, ..Default::default()
70 };
71
72 let file_processor_config = FileProcessorConfig {
73 file_config: invalid_size_config,
74 ..Default::default()
75 };
76
77 match std::panic::catch_unwind(|| {
78 rat_logger::handler::file::FileProcessor::with_config(file_processor_config)
79 }) {
80 Ok(_) => println!(" ❌ 错误: 应该检测到文件大小错误但没有"),
81 Err(_) => println!(" ✅ 正确: 成功检测到文件大小错误"),
82 }
83
84 println!("\n5. 测试正确配置:");
86 let valid_term_config = TermConfig {
87 enable_color: true,
88 color: Some(ColorConfig::default()),
89 format: Some(FormatConfig::default()),
90 ..Default::default()
91 };
92
93 match std::panic::catch_unwind(|| {
94 LoggerBuilder::new()
95 .with_level(LevelFilter::Debug)
96 .add_terminal_with_config(valid_term_config)
97 .build()
98 }) {
99 Ok(_) => println!(" ✅ 正确: 有效配置正常工作"),
100 Err(_) => println!(" ❌ 错误: 有效配置被错误拒绝"),
101 }
102
103 println!("\n=== 配置冲突检测测试完成 ===");
104}