46 lines
1.6 KiB
Go
46 lines
1.6 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"os/exec"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestPingUnlinkedContainers(t *testing.T) {
|
||
|
runCmd := exec.Command(dockerBinary, "run", "--rm", "busybox", "sh", "-c", "ping -c 1 alias1 -W 1 && ping -c 1 alias2 -W 1")
|
||
|
exitCode, err := runCommand(runCmd)
|
||
|
|
||
|
if exitCode == 0 {
|
||
|
t.Fatal("run ping did not fail")
|
||
|
} else if exitCode != 1 {
|
||
|
errorOut(err, t, fmt.Sprintf("run ping failed with errors: %v", err))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestPingLinkedContainers(t *testing.T) {
|
||
|
cmd := exec.Command(dockerBinary, "run", "-d", "--name", "container1", "busybox", "sleep", "10")
|
||
|
out, _, err := runCommandWithOutput(cmd)
|
||
|
errorOut(err, t, fmt.Sprintf("run container1 failed with errors: %v", err))
|
||
|
idA := stripTrailingCharacters(out)
|
||
|
|
||
|
cmd = exec.Command(dockerBinary, "run", "-d", "--name", "container2", "busybox", "sleep", "10")
|
||
|
out, _, err = runCommandWithOutput(cmd)
|
||
|
errorOut(err, t, fmt.Sprintf("run container2 failed with errors: %v", err))
|
||
|
idB := stripTrailingCharacters(out)
|
||
|
|
||
|
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")
|
||
|
out, _, err = runCommandWithOutput(cmd)
|
||
|
fmt.Printf("OUT: %s", out)
|
||
|
errorOut(err, t, fmt.Sprintf("run ping failed with errors: %v", err))
|
||
|
|
||
|
cmd = exec.Command(dockerBinary, "kill", idA)
|
||
|
_, err = runCommand(cmd)
|
||
|
errorOut(err, t, fmt.Sprintf("failed to kill container1: %v", err))
|
||
|
|
||
|
cmd = exec.Command(dockerBinary, "kill", idB)
|
||
|
_, err = runCommand(cmd)
|
||
|
errorOut(err, t, fmt.Sprintf("failed to kill container2: %v", err))
|
||
|
|
||
|
deleteAllContainers()
|
||
|
}
|