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) } }