stats_unit_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. mu: sync.RWMutex{},
  20. }
  21. var b bytes.Buffer
  22. if err := c.Display(&b); err != nil {
  23. t.Fatalf("c.Display() gave error: %s", err)
  24. }
  25. got := b.String()
  26. want := "app\t30.00%\t104.9 MB / 2.147 GB\t4.88%\t104.9 MB / 838.9 MB\t104.9 MB / 838.9 MB\n"
  27. if got != want {
  28. t.Fatalf("c.Display() = %q, want %q", got, want)
  29. }
  30. }
  31. func TestCalculBlockIO(t *testing.T) {
  32. blkio := types.BlkioStats{
  33. IoServiceBytesRecursive: []types.BlkioStatEntry{{8, 0, "read", 1234}, {8, 1, "read", 4567}, {8, 0, "write", 123}, {8, 1, "write", 456}},
  34. }
  35. blkRead, blkWrite := calculateBlockIO(blkio)
  36. if blkRead != 5801 {
  37. t.Fatalf("blkRead = %d, want 5801", blkRead)
  38. }
  39. if blkWrite != 579 {
  40. t.Fatalf("blkWrite = %d, want 579", blkWrite)
  41. }
  42. }