add Test_updatePortStatus
This commit is contained in:
@@ -363,6 +363,86 @@ func Test_detectScanDest(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func Test_updatePortStatus(t *testing.T) {
|
||||
type args struct {
|
||||
l base
|
||||
open []string
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
expect models.Packages
|
||||
}{
|
||||
{name: "nil_affected_procs",
|
||||
args: args{
|
||||
l: base{osPackages: osPackages{
|
||||
Packages: models.Packages{"libc-bin": models.Package{Name: "libc-bin"}},
|
||||
}},
|
||||
open: []string{"127.0.0.1:22"}},
|
||||
expect: models.Packages{"libc-bin": models.Package{Name: "libc-bin"}}},
|
||||
{name: "nil_listen_ports",
|
||||
args: args{
|
||||
l: base{osPackages: osPackages{
|
||||
Packages: models.Packages{"bash": models.Package{Name: "bash", AffectedProcs: []models.AffectedProcess{{PID: "1", Name: "bash"}}}},
|
||||
}},
|
||||
open: []string{"127.0.0.1:22"}},
|
||||
expect: models.Packages{"bash": models.Package{Name: "bash", AffectedProcs: []models.AffectedProcess{{PID: "1", Name: "bash"}}}}},
|
||||
{name: "update_match_single_address",
|
||||
args: args{
|
||||
l: base{osPackages: osPackages{
|
||||
Packages: models.Packages{"libc6": models.Package{Name: "libc6", AffectedProcs: []models.AffectedProcess{{PID: "1", Name: "bash"}, {PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "22"}}}}}},
|
||||
}},
|
||||
open: []string{"127.0.0.1:22"}},
|
||||
expect: models.Packages{"libc6": models.Package{Name: "libc6", AffectedProcs: []models.AffectedProcess{{PID: "1", Name: "bash"}, {PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "22", PortScanSuccessOn: []string{"127.0.0.1"}}}}}}}},
|
||||
{name: "update_match_multi_address",
|
||||
args: args{
|
||||
l: base{osPackages: osPackages{
|
||||
Packages: models.Packages{"libc6": models.Package{Name: "libc6", AffectedProcs: []models.AffectedProcess{{PID: "1", Name: "bash"}, {PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "22"}, {Address: "192.168.1.1", Port: "22"}}}}}},
|
||||
}},
|
||||
open: []string{"127.0.0.1:22", "192.168.1.1:22"}},
|
||||
expect: models.Packages{"libc6": models.Package{Name: "libc6", AffectedProcs: []models.AffectedProcess{{PID: "1", Name: "bash"}, {PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{
|
||||
{Address: "127.0.0.1", Port: "22", PortScanSuccessOn: []string{"127.0.0.1"}},
|
||||
{Address: "192.168.1.1", Port: "22", PortScanSuccessOn: []string{"192.168.1.1"}},
|
||||
}}}}}},
|
||||
{name: "update_match_asterisk",
|
||||
args: args{
|
||||
l: base{osPackages: osPackages{
|
||||
Packages: models.Packages{"libc6": models.Package{Name: "libc6", AffectedProcs: []models.AffectedProcess{{PID: "1", Name: "bash"}, {PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "*", Port: "22"}}}}}},
|
||||
}},
|
||||
open: []string{"127.0.0.1:22", "127.0.0.1:80", "192.168.1.1:22"}},
|
||||
expect: models.Packages{"libc6": models.Package{Name: "libc6", AffectedProcs: []models.AffectedProcess{{PID: "1", Name: "bash"}, {PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{
|
||||
{Address: "*", Port: "22", PortScanSuccessOn: []string{"127.0.0.1", "192.168.1.1"}},
|
||||
}}}}}},
|
||||
{name: "update_multi_packages",
|
||||
args: args{
|
||||
l: base{osPackages: osPackages{
|
||||
Packages: models.Packages{
|
||||
"packa": models.Package{Name: "packa", AffectedProcs: []models.AffectedProcess{{PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "80"}}}}},
|
||||
"packb": models.Package{Name: "packb", AffectedProcs: []models.AffectedProcess{{PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "22"}}}}},
|
||||
"packc": models.Package{Name: "packc", AffectedProcs: []models.AffectedProcess{{PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "22"}, {Address: "192.168.1.1", Port: "22"}}}}},
|
||||
"packd": models.Package{Name: "packd", AffectedProcs: []models.AffectedProcess{{PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "*", Port: "22"}}}}},
|
||||
},
|
||||
}},
|
||||
open: []string{"127.0.0.1:22", "192.168.1.1:22"}},
|
||||
expect: models.Packages{
|
||||
"packa": models.Package{Name: "packa", AffectedProcs: []models.AffectedProcess{{PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "80", PortScanSuccessOn: []string{}}}}}},
|
||||
"packb": models.Package{Name: "packb", AffectedProcs: []models.AffectedProcess{{PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "22", PortScanSuccessOn: []string{"127.0.0.1"}}}}}},
|
||||
"packc": models.Package{Name: "packc", AffectedProcs: []models.AffectedProcess{{PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "127.0.0.1", Port: "22", PortScanSuccessOn: []string{"127.0.0.1"}}, {Address: "192.168.1.1", Port: "22", PortScanSuccessOn: []string{"192.168.1.1"}}}}}},
|
||||
"packd": models.Package{Name: "packd", AffectedProcs: []models.AffectedProcess{{PID: "75", Name: "sshd", ListenPorts: []models.ListenPorts{{Address: "*", Port: "22", PortScanSuccessOn: []string{"127.0.0.1", "192.168.1.1"}}}}}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
tt.args.l.updatePortStatus(tt.args.open)
|
||||
if !reflect.DeepEqual(tt.args.l.osPackages.Packages, tt.expect) {
|
||||
t.Errorf("l.updatePortStatus() = %v, want %v", tt.args.l.osPackages.Packages, tt.expect)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_matchListenPorts(t *testing.T) {
|
||||
type args struct {
|
||||
open []string
|
||||
|
||||
Reference in New Issue
Block a user