primeiro commit
This commit is contained in:
99
internal/probe/probe_test.go
Normal file
99
internal/probe/probe_test.go
Normal file
@@ -0,0 +1,99 @@
|
||||
package probe
|
||||
|
||||
import (
|
||||
"net"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestHumanizeBitsPerSecond(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
rate float64
|
||||
want string
|
||||
}{
|
||||
{name: "bits", rate: 999, want: "999 bit/s"},
|
||||
{name: "kilobits", rate: 1500, want: "1.50 kbit/s"},
|
||||
{name: "megabits", rate: 2500000, want: "2.50 Mbit/s"},
|
||||
{name: "gigabits", rate: 4200000000, want: "4.20 Gbit/s"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := HumanizeBitsPerSecond(tt.rate); got != tt.want {
|
||||
t.Fatalf("HumanizeBitsPerSecond(%v) = %q, want %q", tt.rate, got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseNetDev(t *testing.T) {
|
||||
data := []byte(`Inter-| Receive | Transmit
|
||||
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
|
||||
lo: 1000 0 0 0 0 0 0 0 2000 0 0 0 0 0 0 0
|
||||
eth0: 12345 1 0 0 0 0 0 0 67890 2 0 0 0 0 0 0
|
||||
`)
|
||||
|
||||
stats, err := parseNetDev(data, "eth0")
|
||||
if err != nil {
|
||||
t.Fatalf("parseNetDev() error = %v", err)
|
||||
}
|
||||
if stats.RXBytes != 12345 || stats.TXBytes != 67890 {
|
||||
t.Fatalf("stats = %+v, want rx 12345 tx 67890", stats)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLittleEndianHexIPv4(t *testing.T) {
|
||||
ip, err := littleEndianHexIPv4("0102A8C0")
|
||||
if err != nil {
|
||||
t.Fatalf("littleEndianHexIPv4() error = %v", err)
|
||||
}
|
||||
if !ip.Equal(net.IPv4(192, 168, 2, 1)) {
|
||||
t.Fatalf("ip = %v, want 192.168.2.1", ip)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseLinuxDefaultGateway(t *testing.T) {
|
||||
t.Run("explicit gateway default route", func(t *testing.T) {
|
||||
data := []byte(`Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
|
||||
eth0 00000000 0102A8C0 0003 0 0 100 00000000 0 0 0
|
||||
`)
|
||||
|
||||
ip, err := parseLinuxDefaultGateway(data, "eth0")
|
||||
if err != nil {
|
||||
t.Fatalf("parseLinuxDefaultGateway() error = %v", err)
|
||||
}
|
||||
if !ip.Equal(net.IPv4(192, 168, 2, 1)) {
|
||||
t.Fatalf("ip = %v, want 192.168.2.1", ip)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("point to point peer route", func(t *testing.T) {
|
||||
data := []byte(`Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
|
||||
ppp0 00000000 00000000 0001 0 0 0 00000000 0 0 0
|
||||
ppp0 0100400A 00000000 0005 0 0 0 FFFFFFFF 0 0 0
|
||||
`)
|
||||
|
||||
ip, err := parseLinuxDefaultGateway(data, "ppp0")
|
||||
if err != nil {
|
||||
t.Fatalf("parseLinuxDefaultGateway() error = %v", err)
|
||||
}
|
||||
if !ip.Equal(net.IPv4(10, 64, 0, 1)) {
|
||||
t.Fatalf("ip = %v, want 10.64.0.1", ip)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("prefers explicit gateway over peer route", func(t *testing.T) {
|
||||
data := []byte(`Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
|
||||
ppp0 00000000 FE00400A 0003 0 0 0 00000000 0 0 0
|
||||
ppp0 0100400A 00000000 0005 0 0 0 FFFFFFFF 0 0 0
|
||||
`)
|
||||
|
||||
ip, err := parseLinuxDefaultGateway(data, "ppp0")
|
||||
if err != nil {
|
||||
t.Fatalf("parseLinuxDefaultGateway() error = %v", err)
|
||||
}
|
||||
if !ip.Equal(net.IPv4(10, 64, 0, 254)) {
|
||||
t.Fatalf("ip = %v, want 10.64.0.254", ip)
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user