Skip to content

Commit

Permalink
fix tests to work with older libslirp versions
Browse files Browse the repository at this point in the history
Signed-off-by: 5eraph <5eraph@protonmail.com>
  • Loading branch information
5eraph committed Aug 5, 2020
1 parent 76dcb56 commit 65f7f05
Showing 1 changed file with 35 additions and 13 deletions.
48 changes: 35 additions & 13 deletions test/e2e/run_networking_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package integration
import (
"fmt"
"os"
"strings"

. "github.com/containers/podman/v2/test/utils"
. "github.com/onsi/ginkgo"
Expand Down Expand Up @@ -281,27 +282,48 @@ var _ = Describe("Podman run networking", func() {
})

It("podman run network bind to 127.0.0.1", func() {
ncListener := SystemExec("nc", []string{"-v", "-l", "-p", "8083"})
session := podmanTest.Podman([]string{"run", "--network", "slirp4netns:outbound_addr=127.0.0.1,allow_host_loopback=true", "-dt", ALPINE, "nc", "-w", "2", "10.0.2.2", "8083"})
session.Wait(30)

Expect(session.ExitCode()).To(Equal(0))
Expect(ncListener.ExitCode()).To(Equal(0))
Expect(ncListener.OutputToString()).To(ContainSubstring("localhost"))
slirp4netnsHelp := SystemExec("slirp4netns", []string{"--help"})
Expect(slirp4netnsHelp.ExitCode()).To(Equal(0))
networkConfiguration := "slirp4netns:outbound_addr=127.0.0.1,allow_host_loopback=true"

if strings.Contains(slirp4netnsHelp.OutputToString(), "outbound-addr") {
ncListener := SystemExec("nc", []string{"-v", "-l", "-p", "8083"})
session := podmanTest.Podman([]string{"run", "--network", networkConfiguration, "-dt", ALPINE, "nc", "-w", "2", "10.0.2.2", "8083"})
session.Wait(30)

Expect(session.ExitCode()).To(Equal(0))
Expect(ncListener.ExitCode()).To(Equal(0))
Expect(ncListener.OutputToString()).To(ContainSubstring("localhost"))
} else {
session := podmanTest.Podman([]string{"run", "--network", networkConfiguration, "-dt", ALPINE, "nc", "-w", "2", "10.0.2.2", "8083"})
session.Wait(30)
Expect(session.ExitCode()).ToNot(Equal(0))
Expect(session.ErrorToString()).To(ContainSubstring("outbound_addr not supported"))
}
})

It("podman run network bind to HostIP", func() {
ip, err := utils.HostIP()
Expect(err).To(Equal(nil))

ncListener := SystemExec("nc", []string{"-v", "-l", "-p", "8084"})
slirp4netnsHelp := SystemExec("slirp4netns", []string{"--help"})
Expect(slirp4netnsHelp.ExitCode()).To(Equal(0))
networkConfiguration := fmt.Sprintf("slirp4netns:outbound_addr=%s,allow_host_loopback=true", ip.String())
session := podmanTest.Podman([]string{"run", "--network", networkConfiguration, "-dt", ALPINE, "nc", "-w", "2", "10.0.2.2", "8084"})
session.Wait(30)

Expect(session.ExitCode()).To(Equal(0))
Expect(ncListener.ExitCode()).To(Equal(0))
Expect(ncListener.OutputToString()).To(ContainSubstring(hostname))
if strings.Contains(slirp4netnsHelp.OutputToString(), "outbound-addr") {
ncListener := SystemExec("nc", []string{"-v", "-l", "-p", "8084"})
session := podmanTest.Podman([]string{"run", "--network", networkConfiguration, "-dt", ALPINE, "nc", "-w", "2", "10.0.2.2", "8084"})
session.Wait(30)

Expect(session.ExitCode()).To(Equal(0))
Expect(ncListener.ExitCode()).To(Equal(0))
Expect(ncListener.OutputToString()).To(ContainSubstring(hostname))
} else {
session := podmanTest.Podman([]string{"run", "--network", networkConfiguration, "-dt", ALPINE, "nc", "-w", "2", "10.0.2.2", "8084"})
session.Wait(30)
Expect(session.ExitCode()).ToNot(Equal(0))
Expect(session.ErrorToString()).To(ContainSubstring("outbound_addr not supported"))
}
})

It("podman run network expose ports in image metadata", func() {
Expand Down

0 comments on commit 65f7f05

Please sign in to comment.