stats_unit_test.go 1.2 KB

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