mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-01 21:10:13 +00:00
66 lines
1.8 KiB
Go
66 lines
1.8 KiB
Go
package discovery
|
|
|
|
import (
|
|
"net"
|
|
"testing"
|
|
|
|
"github.com/rcourtman/pulse-go-rewrite/pkg/discovery/envdetect"
|
|
)
|
|
|
|
func TestGenerateIPs(t *testing.T) {
|
|
scanner := &Scanner{policy: envdetect.DefaultScanPolicy()}
|
|
|
|
_, subnet30, err := net.ParseCIDR("192.168.0.0/30")
|
|
if err != nil {
|
|
t.Fatalf("failed to parse subnet: %v", err)
|
|
}
|
|
ips := scanner.generateIPs(subnet30)
|
|
if len(ips) != 2 || ips[0] != "192.168.0.1" || ips[1] != "192.168.0.2" {
|
|
t.Fatalf("unexpected /30 IPs: %v", ips)
|
|
}
|
|
|
|
_, subnet32, err := net.ParseCIDR("10.0.0.5/32")
|
|
if err != nil {
|
|
t.Fatalf("failed to parse /32 subnet: %v", err)
|
|
}
|
|
ips = scanner.generateIPs(subnet32)
|
|
if len(ips) != 1 || ips[0] != "10.0.0.5" {
|
|
t.Fatalf("unexpected /32 IPs: %v", ips)
|
|
}
|
|
|
|
_, subnet31, err := net.ParseCIDR("10.0.0.0/31")
|
|
if err != nil {
|
|
t.Fatalf("failed to parse /31 subnet: %v", err)
|
|
}
|
|
ips = scanner.generateIPs(subnet31)
|
|
if len(ips) != 2 || ips[0] != "10.0.0.0" || ips[1] != "10.0.0.1" {
|
|
t.Fatalf("unexpected /31 IPs: %v", ips)
|
|
}
|
|
}
|
|
|
|
func TestGenerateIPsRespectsLimit(t *testing.T) {
|
|
policy := envdetect.DefaultScanPolicy()
|
|
policy.MaxHostsPerScan = 2
|
|
scanner := &Scanner{policy: policy}
|
|
|
|
_, subnet29, err := net.ParseCIDR("192.168.1.0/29")
|
|
if err != nil {
|
|
t.Fatalf("failed to parse subnet: %v", err)
|
|
}
|
|
ips := scanner.generateIPs(subnet29)
|
|
if len(ips) != 2 || ips[0] != "192.168.1.1" || ips[1] != "192.168.1.2" {
|
|
t.Fatalf("unexpected limited IPs: %v", ips)
|
|
}
|
|
}
|
|
|
|
func TestGenerateIPsIPv6ReturnsNil(t *testing.T) {
|
|
scanner := &Scanner{policy: envdetect.DefaultScanPolicy()}
|
|
|
|
_, subnet6, err := net.ParseCIDR("2001:db8::/64")
|
|
if err != nil {
|
|
t.Fatalf("failed to parse ipv6 subnet: %v", err)
|
|
}
|
|
if ips := scanner.generateIPs(subnet6); ips != nil {
|
|
t.Fatalf("expected nil for ipv6 subnet, got %v", ips)
|
|
}
|
|
}
|