mirror of
https://github.com/containers/podman.git
synced 2025-12-05 21:32:22 +08:00
The function to generate random IP addresses during ginkgo tests in the checkpoint test code is moved to common and all tests using hardcoded IP addresses have been changed to use random IP addresses to reduce test errors when running the tests in parallel. Signed-off-by: Adrian Reber <areber@redhat.com>
94 lines
2.9 KiB
Go
94 lines
2.9 KiB
Go
// +build !remoteclient
|
|
|
|
package integration
|
|
|
|
import (
|
|
"os"
|
|
|
|
. "github.com/containers/libpod/test/utils"
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("Podman create with --ip flag", func() {
|
|
var (
|
|
tempdir string
|
|
err error
|
|
podmanTest *PodmanTestIntegration
|
|
)
|
|
|
|
BeforeEach(func() {
|
|
SkipIfRootless()
|
|
tempdir, err = CreateTempDirInTempDir()
|
|
if err != nil {
|
|
os.Exit(1)
|
|
}
|
|
podmanTest = PodmanTestCreate(tempdir)
|
|
podmanTest.Setup()
|
|
podmanTest.SeedImages()
|
|
// Cleanup the CNI networks used by the tests
|
|
os.RemoveAll("/var/lib/cni/networks/podman")
|
|
})
|
|
|
|
AfterEach(func() {
|
|
podmanTest.Cleanup()
|
|
f := CurrentGinkgoTestDescription()
|
|
processTestResult(f)
|
|
|
|
})
|
|
|
|
It("Podman create --ip with garbage address", func() {
|
|
result := podmanTest.Podman([]string{"create", "--name", "test", "--ip", "114232346", ALPINE, "ls"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).ToNot(Equal(0))
|
|
})
|
|
|
|
It("Podman create --ip with v6 address", func() {
|
|
result := podmanTest.Podman([]string{"create", "--name", "test", "--ip", "2001:db8:bad:beef::1", ALPINE, "ls"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).ToNot(Equal(0))
|
|
})
|
|
|
|
It("Podman create --ip with non-allocatable IP", func() {
|
|
result := podmanTest.Podman([]string{"create", "--name", "test", "--ip", "203.0.113.124", ALPINE, "ls"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
|
|
result = podmanTest.Podman([]string{"start", "test"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).ToNot(Equal(0))
|
|
})
|
|
|
|
It("Podman create with specified static IP has correct IP", func() {
|
|
ip := GetRandomIPAddress()
|
|
result := podmanTest.Podman([]string{"create", "--name", "test", "--ip", ip, ALPINE, "ip", "addr"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
|
|
result = podmanTest.Podman([]string{"start", "test"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
|
|
result = podmanTest.Podman([]string{"logs", "test"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
Expect(result.OutputToString()).To(ContainSubstring(ip + "/16"))
|
|
})
|
|
|
|
It("Podman create two containers with the same IP", func() {
|
|
ip := GetRandomIPAddress()
|
|
result := podmanTest.Podman([]string{"create", "--name", "test1", "--ip", ip, ALPINE, "sleep", "999"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
result = podmanTest.Podman([]string{"create", "--name", "test2", "--ip", ip, ALPINE, "ip", "addr"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
result = podmanTest.Podman([]string{"start", "test1"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).To(Equal(0))
|
|
result = podmanTest.Podman([]string{"start", "test2"})
|
|
result.WaitWithDefaultTimeout()
|
|
Expect(result.ExitCode()).ToNot(Equal(0))
|
|
})
|
|
})
|