Harden scan robustness and tests

This commit is contained in:
ZacharyZcR
2026-06-13 07:55:37 +08:00
parent 1595c92aed
commit 15a7670ba2
100 changed files with 4483 additions and 412 deletions
+55
View File
@@ -0,0 +1,55 @@
package common
import (
"strings"
"testing"
)
func TestValidateExclusiveParams(t *testing.T) {
previous := GetFlagVars()
t.Cleanup(func() { flagVars = previous })
tests := []struct {
name string
info *HostInfo
flags *FlagVars
wantErr string
}{
{name: "host only", info: &HostInfo{Host: "127.0.0.1"}, flags: &FlagVars{}},
{name: "url only", info: &HostInfo{}, flags: &FlagVars{TargetURL: "http://example.com"}},
{name: "local only", info: &HostInfo{}, flags: &FlagVars{LocalPlugin: "sshkey"}},
{name: "host and url conflict", info: &HostInfo{Host: "127.0.0.1"}, flags: &FlagVars{TargetURL: "http://example.com"}, wantErr: "-h"},
{name: "host url local conflict", info: &HostInfo{Host: "127.0.0.1"}, flags: &FlagVars{TargetURL: "http://example.com", LocalPlugin: "sshkey"}, wantErr: "-local"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
flagVars = tt.flags
err := ValidateExclusiveParams(tt.info)
if tt.wantErr == "" {
if err != nil {
t.Fatalf("ValidateExclusiveParams error = %v", err)
}
return
}
if err == nil || !strings.Contains(err.Error(), tt.wantErr) {
t.Fatalf("ValidateExclusiveParams error = %v, want containing %q", err, tt.wantErr)
}
})
}
}
func TestCleanupWithoutOutput(t *testing.T) {
oldResultOutput := ResultOutput
oldStdoutWriter := StdoutWriter
t.Cleanup(func() {
ResultOutput = oldResultOutput
StdoutWriter = oldStdoutWriter
})
ResultOutput = nil
StdoutWriter = nil
if err := Cleanup(); err != nil {
t.Fatalf("Cleanup error = %v", err)
}
}