sorter_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package docker
  2. import (
  3. "fmt"
  4. "testing"
  5. "time"
  6. )
  7. func TestServerListOrderedImagesByCreationDate(t *testing.T) {
  8. runtime := mkRuntime(t)
  9. defer nuke(runtime)
  10. archive, err := fakeTar()
  11. if err != nil {
  12. t.Fatal(err)
  13. }
  14. _, err = runtime.graph.Create(archive, nil, "Testing", "", nil)
  15. if err != nil {
  16. t.Fatal(err)
  17. }
  18. srv := &Server{runtime: runtime}
  19. images, err := srv.Images(true, "")
  20. if err != nil {
  21. t.Fatal(err)
  22. }
  23. if images[0].Created < images[1].Created {
  24. t.Error("Expected []APIImges to be ordered by most recent creation date.")
  25. }
  26. }
  27. func TestServerListOrderedImagesByCreationDateAndTag(t *testing.T) {
  28. runtime := mkRuntime(t)
  29. defer nuke(runtime)
  30. err := generateImage("bar", runtime)
  31. if err != nil {
  32. t.Fatal(err)
  33. }
  34. time.Sleep(time.Second)
  35. err = generateImage("zed", runtime)
  36. if err != nil {
  37. t.Fatal(err)
  38. }
  39. srv := &Server{runtime: runtime}
  40. images, err := srv.Images(true, "")
  41. if err != nil {
  42. t.Fatal(err)
  43. }
  44. if images[0].RepoTags[0] != "repo:zed" && images[0].RepoTags[0] != "repo:bar" {
  45. t.Errorf("Expected []APIImges to be ordered by most recent creation date. %s", images)
  46. }
  47. }
  48. func generateImage(name string, runtime *Runtime) error {
  49. archive, err := fakeTar()
  50. if err != nil {
  51. return err
  52. }
  53. image, err := runtime.graph.Create(archive, nil, "Testing", "", nil)
  54. if err != nil {
  55. return err
  56. }
  57. srv := &Server{runtime: runtime}
  58. srv.ContainerTag(image.ID, "repo", name, false)
  59. return nil
  60. }
  61. func TestSortUniquePorts(t *testing.T) {
  62. ports := []Port{
  63. Port("6379/tcp"),
  64. Port("22/tcp"),
  65. }
  66. sortPorts(ports, func(ip, jp Port) bool {
  67. return ip.Int() < jp.Int() || (ip.Int() == jp.Int() && ip.Proto() == "tcp")
  68. })
  69. first := ports[0]
  70. if fmt.Sprint(first) != "22/tcp" {
  71. t.Log(fmt.Sprint(first))
  72. t.Fail()
  73. }
  74. }
  75. func TestSortSamePortWithDifferentProto(t *testing.T) {
  76. ports := []Port{
  77. Port("8888/tcp"),
  78. Port("8888/udp"),
  79. Port("6379/tcp"),
  80. Port("6379/udp"),
  81. }
  82. sortPorts(ports, func(ip, jp Port) bool {
  83. return ip.Int() < jp.Int() || (ip.Int() == jp.Int() && ip.Proto() == "tcp")
  84. })
  85. first := ports[0]
  86. if fmt.Sprint(first) != "6379/tcp" {
  87. t.Fail()
  88. }
  89. }