mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-04 18:51:17 +00:00
64 lines
2.5 KiB
Go
64 lines
2.5 KiB
Go
package linux
|
|
|
|
import "testing"
|
|
import "reflect"
|
|
import "fmt"
|
|
|
|
func TestNetStat(t *testing.T) {
|
|
{
|
|
var expected = NetStat{0, 0, 1764, 180, 0, 0, 0, 0, 0, 0, 28321, 0, 0, 0, 0, 243, 25089, 53, 837, 0, 0, 95994, 623148353, 640988091, 0, 92391, 81263, 594305, 590571, 35, 6501, 81, 113, 213, 1, 223, 318, 1056, 287, 218, 6619, 435, 1, 975, 264, 17298, 871, 5836, 3843, 0, 0, 2, 520, 0, 0, 833, 0, 3235, 44, 0, 571, 163, 0, 138, 0, 0, 0, 19, 1312, 677, 129, 0, 0, 27986, 27713, 40522, 837, 0, 38648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2772402103, 5189844022, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
|
|
|
read, err := ReadNetStat("proc/net_netstat_1")
|
|
if err != nil {
|
|
t.Fatal("netstat read fail", err)
|
|
}
|
|
|
|
t.Logf("%+v", expected)
|
|
t.Logf("%+v", read)
|
|
|
|
if err := compareExpectedReadFieldsNetStat(&expected, read); err != nil {
|
|
t.Error(err.Error())
|
|
}
|
|
|
|
if !reflect.DeepEqual(*read, expected) {
|
|
t.Error("not equal to expected")
|
|
}
|
|
}
|
|
{
|
|
expected := NetStat{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 427717, 0, 0, 0, 0, 370, 3111446, 59, 1825, 0, 0, 170176, 0, 507248, 0, 47385919, 0, 7377770, 29264396, 0, 410, 0, 3, 1, 0, 0, 4, 0, 18, 579, 0, 2, 0, 50, 6, 949, 50, 332, 1005, 5893, 978, 0, 8, 0, 0, 1838, 8, 764, 0, 0, 157868, 3281, 0, 35, 0, 0, 0, 0, 28, 453, 46, 0, 0, 226, 316, 2725, 0, 0, 0, 0, 0, 0, 0, 0, 11292855, 88470, 0, 8, 261, 198, 0, 0, 0, 0, 0, 0, 0, 0, 842446, 118, 118, 11490, 859, 105365136, 0, 0, 0, 0, 249, 0, 205328912480, 353370957921, 0, 0, 92394, 0, 0, 157218430, 0, 0, 0}
|
|
|
|
read, err := ReadNetStat("proc/net_netstat_2")
|
|
if err != nil {
|
|
t.Fatal("netstat read fail", err)
|
|
}
|
|
|
|
t.Logf("%+v", expected)
|
|
t.Logf("%+v", read)
|
|
|
|
if err := compareExpectedReadFieldsNetStat(&expected, read); err != nil {
|
|
t.Error(err.Error())
|
|
}
|
|
|
|
if !reflect.DeepEqual(*read, expected) {
|
|
t.Error("not equal to expected")
|
|
}
|
|
}
|
|
}
|
|
|
|
// This is a helper function which makes it easier to track down errors in expected versus read values.
|
|
func compareExpectedReadFieldsNetStat(expected *NetStat, read *NetStat) error {
|
|
elemExpected := reflect.ValueOf(*expected)
|
|
typeOfElemExpected := elemExpected.Type()
|
|
elemRead := reflect.ValueOf(*read)
|
|
|
|
for i := 0; i < elemExpected.NumField(); i++ {
|
|
fieldName := typeOfElemExpected.Field(i).Name
|
|
|
|
if elemExpected.Field(i).Uint() != elemRead.Field(i).Uint() {
|
|
return fmt.Errorf("Read value not equal to expected value for field %s. Got %d and expected %d.", fieldName, elemRead.Field(i).Uint(), elemExpected.Field(i).Uint())
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|