123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- package gupta
- import (
- "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) {
- // 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{
- 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) {
- 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) {
- 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) {
- got := cpustat.IdleTime()
- want := uint64(3722)
- name := "idle time"
- assert(t, name, 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())
- want := "55.33"
- name := "CPUUsate"
- if got != want {
- t.Errorf("got %s %s want %s", 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)
- }
- }
|