47 lines
981 B
Go
47 lines
981 B
Go
package platform
|
|
|
|
import "testing"
|
|
|
|
func TestParseInterfaceAdminState(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
raw string
|
|
want bool
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "admin up with no carrier",
|
|
raw: "2: enp1s0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000\n",
|
|
want: true,
|
|
},
|
|
{
|
|
name: "admin down",
|
|
raw: "2: enp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000\n",
|
|
want: false,
|
|
},
|
|
{
|
|
name: "malformed output",
|
|
raw: "2: enp1s0: mtu 1500 state DOWN\n",
|
|
wantErr: true,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := parseInterfaceAdminState(tt.raw)
|
|
if tt.wantErr {
|
|
if err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
return
|
|
}
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
if got != tt.want {
|
|
t.Fatalf("got %v want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|