2388b5f3ff
Made-with: Cursor
76 lines
1.9 KiB
Go
76 lines
1.9 KiB
Go
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)
|
||
}
|
||
}
|
||
|
||
func TestExpandCIDRSFromRequestCommaList(t *testing.T) {
|
||
out, err := expandCIDRSFromRequest([]string{"172.16.0.0/24, 192.168.160.0/24 ,192.168.170.0/24"})
|
||
if err != nil {
|
||
t.Fatal(err)
|
||
}
|
||
if len(out) != 3 {
|
||
t.Fatalf("ожидали 3 подсети, получили %d: %v", len(out), out)
|
||
}
|
||
}
|
||
|
||
func TestExpandCIDRSFromRequestCommaAndRange(t *testing.T) {
|
||
out, err := expandCIDRSFromRequest([]string{"10.0.0.0/30,192.168.1.0/24-192.168.2.0/24"})
|
||
if err != nil {
|
||
t.Fatal(err)
|
||
}
|
||
if len(out) != 1+2 {
|
||
t.Fatalf("ожидали /30 + 2×/24, получили %d: %v", len(out), out)
|
||
}
|
||
}
|