perf: 重构优化路由性能,添加日志系统,优化大文件内存占用,加强输入验证及路径安全等
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
import hono
|
||||
import os
|
||||
|
||||
fn test_default_config() {
|
||||
println('=== 测试默认配置 ===')
|
||||
|
||||
config := hono.default_config()
|
||||
|
||||
// 验证默认值
|
||||
assert config.server.host == '127.0.0.1'
|
||||
assert config.server.port == 8080
|
||||
assert config.static.enabled == true
|
||||
assert config.upload.enabled == true
|
||||
assert config.cache.enabled == true
|
||||
assert config.log.enabled == true
|
||||
assert config.env == 'development'
|
||||
|
||||
println('✅ 默认配置测试通过')
|
||||
}
|
||||
|
||||
fn test_config_validation() {
|
||||
println('=== 测试配置验证 ===')
|
||||
|
||||
mut config := hono.default_config()
|
||||
|
||||
// 测试有效配置
|
||||
hono.validate_config(config) or {
|
||||
panic('有效配置验证失败: ${err}')
|
||||
}
|
||||
println('✅ 有效配置验证通过')
|
||||
|
||||
// 测试无效端口
|
||||
config.server.port = 0
|
||||
hono.validate_config(config) or {
|
||||
println('✅ 无效端口验证通过: ${err}')
|
||||
config.server.port = 8080 // 恢复
|
||||
}
|
||||
|
||||
// 测试无效日志级别
|
||||
config.log.level = 'invalid'
|
||||
hono.validate_config(config) or {
|
||||
println('✅ 无效日志级别验证通过: ${err}')
|
||||
config.log.level = 'info' // 恢复
|
||||
}
|
||||
|
||||
// 测试无效环境
|
||||
config.env = 'invalid'
|
||||
hono.validate_config(config) or {
|
||||
println('✅ 无效环境验证通过: ${err}')
|
||||
config.env = 'development' // 恢复
|
||||
}
|
||||
}
|
||||
|
||||
fn test_config_file_operations() {
|
||||
println('=== 测试配置文件操作 ===')
|
||||
|
||||
config_path := './test_config.json'
|
||||
|
||||
// 清理可能存在的测试文件
|
||||
if os.exists(config_path) {
|
||||
os.rm(config_path) or {}
|
||||
}
|
||||
|
||||
// 创建默认配置
|
||||
config := hono.default_config()
|
||||
|
||||
// 保存配置
|
||||
hono.save_config(config, config_path) or {
|
||||
panic('保存配置失败: ${err}')
|
||||
}
|
||||
println('✅ 配置保存成功')
|
||||
|
||||
// 加载配置
|
||||
loaded_config := hono.load_config(config_path) or {
|
||||
panic('加载配置失败: ${err}')
|
||||
}
|
||||
println('✅ 配置加载成功')
|
||||
|
||||
// 验证配置内容
|
||||
assert loaded_config.server.host == config.server.host
|
||||
assert loaded_config.server.port == config.server.port
|
||||
assert loaded_config.env == config.env
|
||||
println('✅ 配置内容验证通过')
|
||||
|
||||
// 清理测试文件
|
||||
os.rm(config_path) or {}
|
||||
}
|
||||
|
||||
fn test_env_config_loading() {
|
||||
println('=== 测试环境变量配置 ===')
|
||||
|
||||
// 设置环境变量
|
||||
os.setenv('HONO_HOST', '0.0.0.0', true)
|
||||
os.setenv('HONO_PORT', '9090', true)
|
||||
os.setenv('HONO_ENV', 'production', true)
|
||||
os.setenv('HONO_DEBUG', 'true', true)
|
||||
|
||||
config := hono.load_config_from_env()
|
||||
|
||||
// 验证环境变量配置
|
||||
assert config.server.host == '0.0.0.0'
|
||||
assert config.server.port == 9090
|
||||
assert config.env == 'production'
|
||||
assert config.debug == true
|
||||
|
||||
println('✅ 环境变量配置测试通过')
|
||||
|
||||
// 清理环境变量
|
||||
os.unsetenv('HONO_HOST')
|
||||
os.unsetenv('HONO_PORT')
|
||||
os.unsetenv('HONO_ENV')
|
||||
os.unsetenv('HONO_DEBUG')
|
||||
}
|
||||
|
||||
fn test_config_summary() {
|
||||
println('=== 测试配置摘要 ===')
|
||||
|
||||
config := hono.default_config()
|
||||
summary := hono.get_config_summary(config)
|
||||
|
||||
// 验证摘要包含关键信息
|
||||
assert summary.contains('应用配置摘要')
|
||||
assert summary.contains('127.0.0.1:8080')
|
||||
assert summary.contains('development')
|
||||
assert summary.contains('静态文件')
|
||||
assert summary.contains('文件上传')
|
||||
|
||||
println('配置摘要:')
|
||||
println(summary)
|
||||
println('✅ 配置摘要测试通过')
|
||||
}
|
||||
|
||||
fn test_config_merge() {
|
||||
println('=== 测试配置合并 ===')
|
||||
|
||||
base_config := hono.default_config()
|
||||
mut override_config := hono.AppConfig{}
|
||||
override_config.server.host = '0.0.0.0'
|
||||
override_config.server.port = 9000
|
||||
override_config.env = 'production'
|
||||
|
||||
merged_config := hono.merge_config(base_config, override_config)
|
||||
|
||||
// 验证合并结果
|
||||
assert merged_config.server.host == '0.0.0.0'
|
||||
assert merged_config.server.port == 9000
|
||||
assert merged_config.env == 'production'
|
||||
// 其他值应该保持默认
|
||||
assert merged_config.static.enabled == true
|
||||
assert merged_config.upload.enabled == true
|
||||
|
||||
println('✅ 配置合并测试通过')
|
||||
}
|
||||
|
||||
fn main() {
|
||||
println('开始配置管理系统测试...\n')
|
||||
|
||||
test_default_config()
|
||||
println('')
|
||||
|
||||
test_config_validation()
|
||||
println('')
|
||||
|
||||
test_config_file_operations()
|
||||
println('')
|
||||
|
||||
test_env_config_loading()
|
||||
println('')
|
||||
|
||||
test_config_summary()
|
||||
println('')
|
||||
|
||||
test_config_merge()
|
||||
println('')
|
||||
|
||||
println('🎉 所有配置管理测试通过!')
|
||||
}
|
||||
Reference in New Issue
Block a user