package gupta import ( "fmt" "testing" ) func TestHello(t *testing.T) { got := Hello() want := fmt.Sprintf("Welcome to gupta version %s", version) name := "welcome string" assertString(t, name, want, got) } func TestCPUStat(t *testing.T) { // 0 1 2 3 4 5 6 7 8 9 10 // cpu user nice system idle iowait irq softirq steal guest guest_nice procstatLine := "cpu 4705 356 584 3699 23 23 0 0 0 0" procstatLineNew := "cpu 4875 356 584 3779 23 23 0 0 0 0" cpustat := NewCPUStat(procstatLine, procstatLineNew) t.Run("Test that gupta hast Report", func(t *testing.T) { // test we can get some report struct from gupta report := GuptaReport{ LoadAvarage: 0.2, CPUUsage: &cpustat, MemoryUsage: &Memory{}, } got := report.CPUUsage.CPUUsage() want := float64(68.00) assertFloat64(t, "CPULoad", got, want) }) t.Run("Test that CPUUsage calculates properly", func(t *testing.T) { cpustat = NewCPUStat("cpu 657046 84 232824 4025519 2874 0 40555 0 0 0", "cpu 657136 84 232952 4025695 2874 0 40555 0 0 0") got := fmt.Sprintf("%.2f", cpustat.CPUUsage()) assertString(t, "CPUUsage", got, "55.33") }) } func assertString(t *testing.T, name, got, want string) { if got != want { t.Errorf("got %s %s want %s", name, got, want) } } func assertFloat64(t *testing.T, name string, got, want float64) { if got != want { t.Errorf("got %s %.2f want %.2f", name, got, want) } } func assertInt64(t *testing.T, name string, got, want uint64) { if got != want { t.Errorf("got %s %v want %v", name, got, want) } }