| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | package guptaimport (	"fmt"	"testing")func TestHello(t *testing.T) {	got := Hello()	want := fmt.Sprintf("Welcome to gupta version %s", version)	name := "welcome string"	if got != want {		t.Errorf("got %s %s want %s", name, got, want)	}}func TestRunGupta(t *testing.T) {	// test that we get CPU load	got := make([]float64, 3)	got[0], got[1], got[2] = Run(true, true, true, "", "")	want := []float64{0.2, 0.2, 70.0}	for i, v := range got {		if v != want[i] {			t.Errorf("got %v want %v", v, want[i])		}	}	// here it makes sense to return some kind of data structure	// with properties filled.	// having a data structure it would be possible to format	// it to json ...}func TestCPUStat(t *testing.T) {	t.Run("Test that gupta hast Report", func(t *testing.T) {		// test we can get some report struct from gupta		report := GuptaReport{			cpuLoad:     0.2,			cpuUsage:    0.2,			memoryUsage: 70.0,		}		got := report.GetCPULoad()		want := "0.20"		name := "CPULoad"		if got != want {			t.Errorf("got %s %s want %s", name, got, want)		}	})	t.Run("Test the CPUStat can read info", func(t *testing.T) {		cpustat := CPUStat{}		cpustat.ReadInfo([]string{			"4705",			"356",			"584",			"3699",			"23",			"23",			"0",			"0",			"0",			"0"})		got := cpustat.user		want := uint64(4705)		name := "cpustat.user"		assert(t, name, got, want)	})	t.Run("Test the NewCPUStat can create an instance", func(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"		cpustat := NewCPUStat(procstatLine)		got := cpustat.user		want := uint64(4705)		name := "cpustat.user"		assert(t, name, got, want)	})	t.Run("Test that Total CPUTime calculates properly", func(t *testing.T) {		procstatLine := "cpu 4705 356  584    3699   23    23     0       0     0    0"		cpustat := NewCPUStat(procstatLine)		got := cpustat.TotalTime()		want := cpustat.user + cpustat.nice + cpustat.system + cpustat.idle + cpustat.iowait +			cpustat.irq + cpustat.softirq + cpustat.steal		name := "total time"		assert(t, name, got, want)	})	t.Run("Test that IdleTime calculates properly", func(t *testing.T) {		procstatLine := "cpu 4705 356  584    3699   23    23     0       0     0    0"		cpustat := NewCPUStat(procstatLine)		got := cpustat.IdleTime()		want := uint64(3722)		name := "idle time"		assert(t, name, got, want)	})}func assert(t *testing.T, name string, got, want uint64) {	if got != want {		t.Errorf("got %s %v want %v", name, got, want)	}}
 |