|
@@ -0,0 +1,64 @@
|
|
|
+package stat
|
|
|
+
|
|
|
+import (
|
|
|
+ "bytes"
|
|
|
+ "strings"
|
|
|
+ "testing"
|
|
|
+
|
|
|
+ "github.com/stretchr/testify/assert"
|
|
|
+ "github.com/zeromicro/go-zero/core/logx"
|
|
|
+)
|
|
|
+
|
|
|
+func TestBToMb(t *testing.T) {
|
|
|
+ tests := []struct {
|
|
|
+ name string
|
|
|
+ bytes uint64
|
|
|
+ expected float32
|
|
|
+ }{
|
|
|
+ {
|
|
|
+ name: "Test 1: Convert 0 bytes to MB",
|
|
|
+ bytes: 0,
|
|
|
+ expected: 0,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "Test 2: Convert 1048576 bytes to MB",
|
|
|
+ bytes: 1048576,
|
|
|
+ expected: 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "Test 3: Convert 2097152 bytes to MB",
|
|
|
+ bytes: 2097152,
|
|
|
+ expected: 2,
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, test := range tests {
|
|
|
+ t.Run(test.name, func(t *testing.T) {
|
|
|
+ result := bToMb(test.bytes)
|
|
|
+ assert.Equal(t, test.expected, result)
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestPrintUsage(t *testing.T) {
|
|
|
+ var buf bytes.Buffer
|
|
|
+ writer := logx.NewWriter(&buf)
|
|
|
+ old := logx.Reset()
|
|
|
+ logx.SetWriter(writer)
|
|
|
+ defer logx.SetWriter(old)
|
|
|
+
|
|
|
+ printUsage()
|
|
|
+
|
|
|
+ output := buf.String()
|
|
|
+ assert.Contains(t, output, "CPU:")
|
|
|
+ assert.Contains(t, output, "MEMORY:")
|
|
|
+ assert.Contains(t, output, "Alloc=")
|
|
|
+ assert.Contains(t, output, "TotalAlloc=")
|
|
|
+ assert.Contains(t, output, "Sys=")
|
|
|
+ assert.Contains(t, output, "NumGC=")
|
|
|
+
|
|
|
+ lines := strings.Split(output, "\n")
|
|
|
+ assert.Len(t, lines, 2)
|
|
|
+ fields := strings.Split(lines[0], ", ")
|
|
|
+ assert.Len(t, fields, 5)
|
|
|
+}
|