docker_cli_links_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package main
  2. import (
  3. "fmt"
  4. "os/exec"
  5. "testing"
  6. )
  7. func TestPingUnlinkedContainers(t *testing.T) {
  8. runCmd := exec.Command(dockerBinary, "run", "--rm", "busybox", "sh", "-c", "ping -c 1 alias1 -W 1 && ping -c 1 alias2 -W 1")
  9. exitCode, err := runCommand(runCmd)
  10. if exitCode == 0 {
  11. t.Fatal("run ping did not fail")
  12. } else if exitCode != 1 {
  13. errorOut(err, t, fmt.Sprintf("run ping failed with errors: %v", err))
  14. }
  15. }
  16. func TestPingLinkedContainers(t *testing.T) {
  17. cmd := exec.Command(dockerBinary, "run", "-d", "--name", "container1", "busybox", "sleep", "10")
  18. out, _, err := runCommandWithOutput(cmd)
  19. errorOut(err, t, fmt.Sprintf("run container1 failed with errors: %v", err))
  20. idA := stripTrailingCharacters(out)
  21. cmd = exec.Command(dockerBinary, "run", "-d", "--name", "container2", "busybox", "sleep", "10")
  22. out, _, err = runCommandWithOutput(cmd)
  23. errorOut(err, t, fmt.Sprintf("run container2 failed with errors: %v", err))
  24. idB := stripTrailingCharacters(out)
  25. cmd = exec.Command(dockerBinary, "run", "--rm", "--link", "container1:alias1", "--link", "container2:alias2", "busybox", "sh", "-c", "ping -c 1 alias1 -W 1 && ping -c 1 alias2 -W 1")
  26. out, _, err = runCommandWithOutput(cmd)
  27. fmt.Printf("OUT: %s", out)
  28. errorOut(err, t, fmt.Sprintf("run ping failed with errors: %v", err))
  29. cmd = exec.Command(dockerBinary, "kill", idA)
  30. _, err = runCommand(cmd)
  31. errorOut(err, t, fmt.Sprintf("failed to kill container1: %v", err))
  32. cmd = exec.Command(dockerBinary, "kill", idB)
  33. _, err = runCommand(cmd)
  34. errorOut(err, t, fmt.Sprintf("failed to kill container2: %v", err))
  35. deleteAllContainers()
  36. }