feat(scan): диапазон IPv4-подсетей CIDR–CIDR в поле целей (нормализация в список)
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
package scans
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestExpandCIDRRangeContiguous24(t *testing.T) {
|
||||
out, err := expandCIDRRange("192.168.160.0/24", "192.168.190.0/24")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(out) != 31 {
|
||||
t.Fatalf("ожидали 31 подсеть /24, получили %d", len(out))
|
||||
}
|
||||
if out[0] != "192.168.160.0/24" || out[len(out)-1] != "192.168.190.0/24" {
|
||||
t.Fatalf("границы: первый %q последний %q", out[0], out[len(out)-1])
|
||||
}
|
||||
}
|
||||
|
||||
func TestExpandCIDRRangeSingle(t *testing.T) {
|
||||
out, err := expandCIDRRange("10.0.0.0/16", "10.0.0.0/16")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(out) != 1 || out[0] != "10.0.0.0/16" {
|
||||
t.Fatalf("получили %v", out)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExpandCIDRRangeMaskMismatch(t *testing.T) {
|
||||
_, err := expandCIDRRange("10.0.0.0/24", "10.0.1.0/16")
|
||||
if err == nil {
|
||||
t.Fatal("ожидали ошибку при разных масках")
|
||||
}
|
||||
}
|
||||
|
||||
func TestExpandCIDREntryRangeWithSpaces(t *testing.T) {
|
||||
out, err := expandCIDREntry(" 192.168.1.0/24 - 192.168.3.0/24 ")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(out) != 3 {
|
||||
t.Fatalf("получили %d: %v", len(out), out)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExpandCIDRSFromRequestDedup(t *testing.T) {
|
||||
out, err := expandCIDRSFromRequest([]string{"192.168.1.0/24", "192.168.1.0/24"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(out) != 1 {
|
||||
t.Fatalf("дедуп: %v", out)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user