mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-22 03:10:42 +08:00
Fix credential cleanup and explicit tuning flags
This commit is contained in:
+15
-3
@@ -575,9 +575,9 @@ func TestClampInt(t *testing.T) {
|
||||
{0, 1, 10, 1},
|
||||
{15, 1, 10, 10},
|
||||
{-5, -10, -1, -5},
|
||||
{5, 5, 5, 5}, // min == max == v
|
||||
{3, 5, 5, 5}, // v < min == max
|
||||
{10, 5, 5, 5}, // v > min == max
|
||||
{5, 5, 5, 5}, // min == max == v
|
||||
{3, 5, 5, 5}, // v < min == max
|
||||
{10, 5, 5, 5}, // v > min == max
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
@@ -636,4 +636,16 @@ func TestIsExplicit(t *testing.T) {
|
||||
if !isExplicit(config, "t") {
|
||||
t.Error("ThreadNumExplicit=true 应视为显式")
|
||||
}
|
||||
|
||||
config = makeDefaultConfig()
|
||||
config.TimeoutExplicit = true
|
||||
config.ModuleThreadNumExplicit = true
|
||||
config.MaxRetriesExplicit = true
|
||||
config.Network.ICMPRateExplicit = true
|
||||
config.POC.NumExplicit = true
|
||||
if !isExplicit(config, "time") || !isExplicit(config, "mt") ||
|
||||
!isExplicit(config, "retry") || !isExplicit(config, "icmp-rate") ||
|
||||
!isExplicit(config, "num") {
|
||||
t.Error("显式标记为 true 时默认值也应视为显式")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,22 +180,22 @@ func computeICMPRate(net *NetworkProfile, sys *SystemProfile) float64 {
|
||||
return base
|
||||
}
|
||||
|
||||
// isExplicit 检查参数是否被用户显式指定
|
||||
// 目前只有 ThreadNum 有 explicit 标记,其他参数通过检查是否为默认值来判断
|
||||
// isExplicit 检查参数是否被用户显式指定。
|
||||
// 显式标记来自 CLI flag.Visit;值比较保留 SDK/测试里直接构造 Config 的旧行为。
|
||||
func isExplicit(config *common.Config, flagName string) bool {
|
||||
switch flagName {
|
||||
case "t":
|
||||
return config.ThreadNumExplicit
|
||||
case "time":
|
||||
return config.Timeout != 3*time.Second // 默认值
|
||||
return config.TimeoutExplicit || config.Timeout != 3*time.Second
|
||||
case "mt":
|
||||
return config.ModuleThreadNum != 20 // 默认值
|
||||
return config.ModuleThreadNumExplicit || config.ModuleThreadNum != 20
|
||||
case "retry":
|
||||
return config.MaxRetries != 3 // 默认值
|
||||
return config.MaxRetriesExplicit || config.MaxRetries != 3
|
||||
case "icmp-rate":
|
||||
return config.Network.ICMPRate != 0.1 // 默认值
|
||||
return config.Network.ICMPRateExplicit || config.Network.ICMPRate != 0.1
|
||||
case "num":
|
||||
return config.POC.Num != 20 // 默认值
|
||||
return config.POC.NumExplicit || config.POC.Num != 20
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -214,11 +214,11 @@ func TestTuneConfig_SlowLossy(t *testing.T) {
|
||||
|
||||
func TestTuneConfig_ExplicitOverride(t *testing.T) {
|
||||
config := makeDefaultConfig()
|
||||
config.Timeout = 5 * time.Second // 用户设了 -time 5
|
||||
config.ModuleThreadNum = 50 // 用户设了 -mt 50
|
||||
config.MaxRetries = 1 // 用户设了 -retry 1
|
||||
config.Network.ICMPRate = 0.8 // 用户设了 -icmp-rate 0.8
|
||||
config.POC.Num = 100 // 用户设了 -num 100
|
||||
config.Timeout = 5 * time.Second // 用户设了 -time 5
|
||||
config.ModuleThreadNum = 50 // 用户设了 -mt 50
|
||||
config.MaxRetries = 1 // 用户设了 -retry 1
|
||||
config.Network.ICMPRate = 0.8 // 用户设了 -icmp-rate 0.8
|
||||
config.POC.Num = 100 // 用户设了 -num 100
|
||||
session := makeTestSession(config)
|
||||
|
||||
ep := &EnvironmentProfile{
|
||||
@@ -252,6 +252,45 @@ func TestTuneConfig_ExplicitOverride(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestTuneConfig_ExplicitDefaultValues(t *testing.T) {
|
||||
config := makeDefaultConfig()
|
||||
config.TimeoutExplicit = true
|
||||
config.ModuleThreadNumExplicit = true
|
||||
config.MaxRetriesExplicit = true
|
||||
config.Network.ICMPRateExplicit = true
|
||||
config.POC.NumExplicit = true
|
||||
session := makeTestSession(config)
|
||||
|
||||
ep := &EnvironmentProfile{
|
||||
Net: NetworkProfile{
|
||||
Env: EnvLAN,
|
||||
RTTMedian: 1 * time.Millisecond,
|
||||
RTTStddev: 500 * time.Microsecond,
|
||||
LossRate: 0.0,
|
||||
Samples: 30,
|
||||
},
|
||||
System: SystemProfile{FDLimit: 65536, NumCPU: 8},
|
||||
}
|
||||
|
||||
ep.TuneConfig(config, session)
|
||||
|
||||
if config.Timeout != 3*time.Second {
|
||||
t.Errorf("显式默认 Timeout 被覆盖: %v", config.Timeout)
|
||||
}
|
||||
if config.ModuleThreadNum != 20 {
|
||||
t.Errorf("显式默认 ModuleThreadNum 被覆盖: %d", config.ModuleThreadNum)
|
||||
}
|
||||
if config.MaxRetries != 3 {
|
||||
t.Errorf("显式默认 MaxRetries 被覆盖: %d", config.MaxRetries)
|
||||
}
|
||||
if config.Network.ICMPRate != 0.1 {
|
||||
t.Errorf("显式默认 ICMPRate 被覆盖: %.2f", config.Network.ICMPRate)
|
||||
}
|
||||
if config.POC.Num != 20 {
|
||||
t.Errorf("显式默认 PocNum 被覆盖: %d", config.POC.Num)
|
||||
}
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
// 集成测试:fd limit 约束
|
||||
// =============================================================================
|
||||
|
||||
Reference in New Issue
Block a user