docker_cli_search_test.go 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package main
  2. import (
  3. "fmt"
  4. "strings"
  5. "github.com/go-check/check"
  6. "gotest.tools/assert"
  7. )
  8. // search for repos named "registry" on the central registry
  9. func (s *DockerSuite) TestSearchOnCentralRegistry(c *check.C) {
  10. testRequires(c, Network, DaemonIsLinux)
  11. out, _ := dockerCmd(c, "search", "busybox")
  12. assert.Assert(c, strings.Contains(out, "Busybox base image."), "couldn't find any repository named (or containing) 'Busybox base image.'")
  13. }
  14. func (s *DockerSuite) TestSearchStarsOptionWithWrongParameter(c *check.C) {
  15. out, _, err := dockerCmdWithError("search", "--filter", "stars=a", "busybox")
  16. assert.ErrorContains(c, err, "", out)
  17. assert.Assert(c, strings.Contains(out, "Invalid filter"), "couldn't find the invalid filter warning")
  18. out, _, err = dockerCmdWithError("search", "-f", "stars=a", "busybox")
  19. assert.ErrorContains(c, err, "", out)
  20. assert.Assert(c, strings.Contains(out, "Invalid filter"), "couldn't find the invalid filter warning")
  21. out, _, err = dockerCmdWithError("search", "-f", "is-automated=a", "busybox")
  22. assert.ErrorContains(c, err, "", out)
  23. assert.Assert(c, strings.Contains(out, "Invalid filter"), "couldn't find the invalid filter warning")
  24. out, _, err = dockerCmdWithError("search", "-f", "is-official=a", "busybox")
  25. assert.ErrorContains(c, err, "", out)
  26. assert.Assert(c, strings.Contains(out, "Invalid filter"), "couldn't find the invalid filter warning")
  27. // -s --stars deprecated since Docker 1.13
  28. out, _, err = dockerCmdWithError("search", "--stars=a", "busybox")
  29. assert.ErrorContains(c, err, "", out)
  30. assert.Assert(c, strings.Contains(out, "invalid syntax"), "couldn't find the invalid value warning")
  31. // -s --stars deprecated since Docker 1.13
  32. out, _, err = dockerCmdWithError("search", "-s=-1", "busybox")
  33. assert.ErrorContains(c, err, "", out)
  34. assert.Assert(c, strings.Contains(out, "invalid syntax"), "couldn't find the invalid value warning")
  35. }
  36. // search for repos which start with "ubuntu-" on the central registry
  37. func (s *DockerSuite) TestSearchOnCentralRegistryWithDash(c *check.C) {
  38. testRequires(c, Network, DaemonIsLinux)
  39. dockerCmd(c, "search", "ubuntu-")
  40. }
  41. // test case for #23055
  42. func (s *DockerSuite) TestSearchWithLimit(c *check.C) {
  43. testRequires(c, Network, DaemonIsLinux)
  44. limit := 10
  45. out, _, err := dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
  46. assert.NilError(c, err)
  47. outSlice := strings.Split(out, "\n")
  48. assert.Equal(c, len(outSlice), limit+2) // 1 header, 1 carriage return
  49. limit = 50
  50. out, _, err = dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
  51. assert.NilError(c, err)
  52. outSlice = strings.Split(out, "\n")
  53. assert.Equal(c, len(outSlice), limit+2) // 1 header, 1 carriage return
  54. limit = 100
  55. out, _, err = dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
  56. assert.NilError(c, err)
  57. outSlice = strings.Split(out, "\n")
  58. assert.Equal(c, len(outSlice), limit+2) // 1 header, 1 carriage return
  59. limit = 0
  60. _, _, err = dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
  61. assert.ErrorContains(c, err, "")
  62. limit = 200
  63. _, _, err = dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
  64. assert.ErrorContains(c, err, "")
  65. }