docker_cli_network_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // +build experimental
  2. package main
  3. import (
  4. "os/exec"
  5. "strings"
  6. "github.com/go-check/check"
  7. )
  8. func assertNwIsAvailable(c *check.C, name string) {
  9. if !isNwPresent(c, name) {
  10. c.Fatalf("Network %s not found in network ls o/p", name)
  11. }
  12. }
  13. func assertNwNotAvailable(c *check.C, name string) {
  14. if isNwPresent(c, name) {
  15. c.Fatalf("Found network %s in network ls o/p", name)
  16. }
  17. }
  18. func isNwPresent(c *check.C, name string) bool {
  19. runCmd := exec.Command(dockerBinary, "network", "ls")
  20. out, _, _, err := runCommandWithStdoutStderr(runCmd)
  21. c.Assert(err, check.IsNil)
  22. lines := strings.Split(out, "\n")
  23. for i := 1; i < len(lines)-1; i++ {
  24. if strings.Contains(lines[i], name) {
  25. return true
  26. }
  27. }
  28. return false
  29. }
  30. func (s *DockerSuite) TestDockerNetworkLsDefault(c *check.C) {
  31. defaults := []string{"bridge", "host", "none"}
  32. for _, nn := range defaults {
  33. assertNwIsAvailable(c, nn)
  34. }
  35. }
  36. func (s *DockerSuite) TestDockerNetworkCreateDelete(c *check.C) {
  37. runCmd := exec.Command(dockerBinary, "network", "create", "test")
  38. _, _, _, err := runCommandWithStdoutStderr(runCmd)
  39. c.Assert(err, check.IsNil)
  40. assertNwIsAvailable(c, "test")
  41. runCmd = exec.Command(dockerBinary, "network", "rm", "test")
  42. _, _, _, err = runCommandWithStdoutStderr(runCmd)
  43. c.Assert(err, check.IsNil)
  44. assertNwNotAvailable(c, "test")
  45. }