stats_unit_test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package client
  2. import (
  3. "bytes"
  4. "sync"
  5. "testing"
  6. "github.com/docker/engine-api/types"
  7. )
  8. func TestDisplay(t *testing.T) {
  9. c := &containerStats{
  10. Name: "app",
  11. CPUPercentage: 30.0,
  12. Memory: 100 * 1024 * 1024.0,
  13. MemoryLimit: 2048 * 1024 * 1024.0,
  14. MemoryPercentage: 100.0 / 2048.0 * 100.0,
  15. NetworkRx: 100 * 1024 * 1024,
  16. NetworkTx: 800 * 1024 * 1024,
  17. BlockRead: 100 * 1024 * 1024,
  18. BlockWrite: 800 * 1024 * 1024,
  19. PidsCurrent: 1,
  20. mu: sync.RWMutex{},
  21. }
  22. var b bytes.Buffer
  23. if err := c.Display(&b); err != nil {
  24. t.Fatalf("c.Display() gave error: %s", err)
  25. }
  26. got := b.String()
  27. want := "app\t30.00%\t104.9 MB / 2.147 GB\t4.88%\t104.9 MB / 838.9 MB\t104.9 MB / 838.9 MB\t1\n"
  28. if got != want {
  29. t.Fatalf("c.Display() = %q, want %q", got, want)
  30. }
  31. }
  32. func TestCalculBlockIO(t *testing.T) {
  33. blkio := types.BlkioStats{
  34. IoServiceBytesRecursive: []types.BlkioStatEntry{{8, 0, "read", 1234}, {8, 1, "read", 4567}, {8, 0, "write", 123}, {8, 1, "write", 456}},
  35. }
  36. blkRead, blkWrite := calculateBlockIO(blkio)
  37. if blkRead != 5801 {
  38. t.Fatalf("blkRead = %d, want 5801", blkRead)
  39. }
  40. if blkWrite != 579 {
  41. t.Fatalf("blkWrite = %d, want 579", blkWrite)
  42. }
  43. }