mirror of
https://github.com/containers/podman.git
synced 2025-06-06 23:08:04 +08:00
Merge pull request #1740 from baude/ppc64le
allow ppc64le to pass libpod integration tests
This commit is contained in:
@ -163,6 +163,7 @@ packages:
|
||||
- python3-dateutil
|
||||
- python3-psutil
|
||||
- container-selinux
|
||||
- https://kojipkgs.fedoraproject.org//packages/runc/1.0.0/54.dev.git00dc700.fc28/x86_64/runc-1.0.0-54.dev.git00dc700.fc28.x86_64.rpm
|
||||
|
||||
tests:
|
||||
- sed 's/^expand-check.*/expand-check=0/g' -i /etc/selinux/semanage.conf
|
||||
|
9
test/e2e/config.go
Normal file
9
test/e2e/config.go
Normal file
@ -0,0 +1,9 @@
|
||||
package integration
|
||||
|
||||
var (
|
||||
redis = "docker.io/library/redis:alpine"
|
||||
fedoraMinimal = "registry.fedoraproject.org/fedora-minimal:latest"
|
||||
ALPINE = "docker.io/library/alpine:latest"
|
||||
infra = "k8s.gcr.io/pause:3.1"
|
||||
BB = "docker.io/library/busybox:latest"
|
||||
)
|
11
test/e2e/config_amd64.go
Normal file
11
test/e2e/config_amd64.go
Normal file
@ -0,0 +1,11 @@
|
||||
package integration
|
||||
|
||||
var (
|
||||
STORAGE_OPTIONS = "--storage-driver vfs"
|
||||
ROOTLESS_STORAGE_OPTIONS = "--storage-driver vfs"
|
||||
CACHE_IMAGES = []string{ALPINE, BB, fedoraMinimal, nginx, redis, registry, infra, labels}
|
||||
nginx = "quay.io/baude/alpine_nginx:latest"
|
||||
BB_GLIBC = "docker.io/library/busybox:glibc"
|
||||
registry = "docker.io/library/registry:2"
|
||||
labels = "quay.io/baude/alpine_labels:latest"
|
||||
)
|
11
test/e2e/config_ppc64le.go
Normal file
11
test/e2e/config_ppc64le.go
Normal file
@ -0,0 +1,11 @@
|
||||
package integration
|
||||
|
||||
var (
|
||||
STORAGE_OPTIONS = "--storage-driver overlay"
|
||||
ROOTLESS_STORAGE_OPTIONS = "--storage-driver vfs"
|
||||
CACHE_IMAGES = []string{ALPINE, BB, fedoraMinimal, nginx, redis, infra, labels}
|
||||
nginx = "quay.io/baude/alpine_nginx-ppc64le:latest"
|
||||
BB_GLIBC = "docker.io/ppc64le/busybox:glibc"
|
||||
labels = "quay.io/baude/alpine_labels-ppc64le:latest"
|
||||
registry string
|
||||
)
|
@ -9,6 +9,7 @@ import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
@ -29,19 +30,8 @@ var (
|
||||
RUNC_BINARY string
|
||||
INTEGRATION_ROOT string
|
||||
CGROUP_MANAGER = "systemd"
|
||||
STORAGE_OPTIONS = "--storage-driver vfs"
|
||||
ARTIFACT_DIR = "/tmp/.artifacts"
|
||||
CACHE_IMAGES = []string{ALPINE, BB, fedoraMinimal, nginx, redis, registry, infra, labels}
|
||||
RESTORE_IMAGES = []string{ALPINE, BB}
|
||||
ALPINE = "docker.io/library/alpine:latest"
|
||||
BB = "docker.io/library/busybox:latest"
|
||||
BB_GLIBC = "docker.io/library/busybox:glibc"
|
||||
fedoraMinimal = "registry.fedoraproject.org/fedora-minimal:latest"
|
||||
nginx = "quay.io/baude/alpine_nginx:latest"
|
||||
redis = "docker.io/library/redis:alpine"
|
||||
registry = "docker.io/library/registry:2"
|
||||
infra = "k8s.gcr.io/pause:3.1"
|
||||
labels = "quay.io/baude/alpine_labels:latest"
|
||||
defaultWaitTimeout = 90
|
||||
)
|
||||
|
||||
@ -70,6 +60,7 @@ type PodmanTest struct {
|
||||
type HostOS struct {
|
||||
Distribution string
|
||||
Version string
|
||||
Arch string
|
||||
}
|
||||
|
||||
// TestLibpod ginkgo master function
|
||||
@ -245,7 +236,6 @@ func (p *PodmanTest) Cleanup() {
|
||||
// Remove all containers
|
||||
stopall := p.Podman([]string{"stop", "-a", "--timeout", "0"})
|
||||
stopall.WaitWithDefaultTimeout()
|
||||
|
||||
session := p.Podman([]string{"rm", "-fa"})
|
||||
session.Wait(90)
|
||||
// Nuke tempdir
|
||||
@ -662,6 +652,7 @@ func GetHostDistributionInfo() HostOS {
|
||||
|
||||
l := bufio.NewScanner(f)
|
||||
host := HostOS{}
|
||||
host.Arch = runtime.GOARCH
|
||||
for l.Scan() {
|
||||
if strings.HasPrefix(l.Text(), "ID=") {
|
||||
host.Distribution = strings.Replace(strings.TrimSpace(strings.Join(strings.Split(l.Text(), "=")[1:], "")), "\"", "", -1)
|
||||
|
@ -139,6 +139,9 @@ var _ = Describe("Podman load", func() {
|
||||
})
|
||||
|
||||
It("podman load multiple tags", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("skip on ppc64le")
|
||||
}
|
||||
outfile := filepath.Join(podmanTest.TempDir, "alpine.tar")
|
||||
alpVersion := "docker.io/library/alpine:3.2"
|
||||
|
||||
|
@ -33,7 +33,6 @@ var _ = Describe("Podman logs", func() {
|
||||
|
||||
//sudo bin/podman run -it --rm fedora-minimal bash -c 'for a in `seq 5`; do echo hello; done'
|
||||
It("podman logs for container", func() {
|
||||
podmanTest.RestoreArtifact(fedoraMinimal)
|
||||
logc := podmanTest.Podman([]string{"run", "-dt", ALPINE, "sh", "-c", "echo podman; echo podman; echo podman"})
|
||||
logc.WaitWithDefaultTimeout()
|
||||
Expect(logc.ExitCode()).To(Equal(0))
|
||||
@ -46,7 +45,6 @@ var _ = Describe("Podman logs", func() {
|
||||
})
|
||||
|
||||
It("podman logs tail two lines", func() {
|
||||
podmanTest.RestoreArtifact(fedoraMinimal)
|
||||
logc := podmanTest.Podman([]string{"run", "-dt", ALPINE, "sh", "-c", "echo podman; echo podman; echo podman"})
|
||||
logc.WaitWithDefaultTimeout()
|
||||
Expect(logc.ExitCode()).To(Equal(0))
|
||||
@ -59,7 +57,6 @@ var _ = Describe("Podman logs", func() {
|
||||
})
|
||||
|
||||
It("podman logs tail 99 lines", func() {
|
||||
podmanTest.RestoreArtifact(fedoraMinimal)
|
||||
logc := podmanTest.Podman([]string{"run", "-dt", ALPINE, "sh", "-c", "echo podman; echo podman; echo podman"})
|
||||
logc.WaitWithDefaultTimeout()
|
||||
Expect(logc.ExitCode()).To(Equal(0))
|
||||
@ -72,7 +69,6 @@ var _ = Describe("Podman logs", func() {
|
||||
})
|
||||
|
||||
It("podman logs tail 2 lines with timestamps", func() {
|
||||
podmanTest.RestoreArtifact(fedoraMinimal)
|
||||
logc := podmanTest.Podman([]string{"run", "-dt", ALPINE, "sh", "-c", "echo podman; echo podman; echo podman"})
|
||||
logc.WaitWithDefaultTimeout()
|
||||
Expect(logc.ExitCode()).To(Equal(0))
|
||||
@ -85,7 +81,6 @@ var _ = Describe("Podman logs", func() {
|
||||
})
|
||||
|
||||
It("podman logs latest with since time", func() {
|
||||
podmanTest.RestoreArtifact(fedoraMinimal)
|
||||
logc := podmanTest.Podman([]string{"run", "-dt", ALPINE, "sh", "-c", "echo podman; echo podman; echo podman"})
|
||||
logc.WaitWithDefaultTimeout()
|
||||
Expect(logc.ExitCode()).To(Equal(0))
|
||||
@ -98,7 +93,6 @@ var _ = Describe("Podman logs", func() {
|
||||
})
|
||||
|
||||
It("podman logs latest with since duration", func() {
|
||||
podmanTest.RestoreArtifact(fedoraMinimal)
|
||||
logc := podmanTest.Podman([]string{"run", "-dt", ALPINE, "sh", "-c", "echo podman; echo podman; echo podman"})
|
||||
logc.WaitWithDefaultTimeout()
|
||||
Expect(logc.ExitCode()).To(Equal(0))
|
||||
|
@ -58,6 +58,9 @@ var _ = Describe("Podman push", func() {
|
||||
})
|
||||
|
||||
It("podman push to local registry", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
podmanTest.RestoreArtifact(registry)
|
||||
session := podmanTest.Podman([]string{"run", "-d", "--name", "registry", "-p", "5000:5000", registry, "/entrypoint.sh", "/etc/docker/registry/config.yml"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
@ -73,6 +76,9 @@ var _ = Describe("Podman push", func() {
|
||||
})
|
||||
|
||||
It("podman push to local registry with authorization", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
authPath := filepath.Join(podmanTest.TempDir, "auth")
|
||||
os.Mkdir(authPath, os.ModePerm)
|
||||
os.MkdirAll("/etc/containers/certs.d/localhost:5000", os.ModePerm)
|
||||
|
@ -13,8 +13,6 @@ var _ = Describe("Podman rmi", func() {
|
||||
tempdir string
|
||||
err error
|
||||
podmanTest PodmanTest
|
||||
image1 = "docker.io/library/alpine:latest"
|
||||
image3 = "docker.io/library/busybox:glibc"
|
||||
)
|
||||
|
||||
BeforeEach(func() {
|
||||
@ -42,7 +40,7 @@ var _ = Describe("Podman rmi", func() {
|
||||
})
|
||||
|
||||
It("podman rmi with fq name", func() {
|
||||
session := podmanTest.Podman([]string{"rmi", image1})
|
||||
session := podmanTest.Podman([]string{"rmi", ALPINE})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
@ -56,15 +54,18 @@ var _ = Describe("Podman rmi", func() {
|
||||
})
|
||||
|
||||
It("podman rmi all images", func() {
|
||||
podmanTest.PullImages([]string{image3})
|
||||
podmanTest.PullImages([]string{nginx})
|
||||
session := podmanTest.Podman([]string{"rmi", "-a"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
images := podmanTest.Podman([]string{"images"})
|
||||
images.WaitWithDefaultTimeout()
|
||||
fmt.Println(images.OutputToStringArray())
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
})
|
||||
|
||||
It("podman rmi all images forcibly with short options", func() {
|
||||
podmanTest.PullImages([]string{image3})
|
||||
podmanTest.PullImages([]string{nginx})
|
||||
session := podmanTest.Podman([]string{"rmi", "-fa"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
@ -40,6 +40,7 @@ var _ = Describe("Podman rootless", func() {
|
||||
}
|
||||
podmanTest = PodmanCreate(tempdir)
|
||||
podmanTest.CgroupManager = "cgroupfs"
|
||||
podmanTest.StorageOptions = ROOTLESS_STORAGE_OPTIONS
|
||||
podmanTest.RestoreAllArtifacts()
|
||||
})
|
||||
|
||||
@ -92,6 +93,7 @@ var _ = Describe("Podman rootless", func() {
|
||||
Expect(err).To(BeNil())
|
||||
rootlessTest := PodmanCreate(tempdir)
|
||||
rootlessTest.CgroupManager = "cgroupfs"
|
||||
rootlessTest.StorageOptions = ROOTLESS_STORAGE_OPTIONS
|
||||
err = filepath.Walk(tempdir, chownFunc)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
|
@ -56,6 +56,9 @@ var _ = Describe("Podman run with --sig-proxy", func() {
|
||||
})
|
||||
|
||||
Specify("signals are forwarded to container using sig-proxy", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("Doesnt work on ppc64le")
|
||||
}
|
||||
signal := syscall.SIGFPE
|
||||
// Set up a socket for communication
|
||||
udsDir := filepath.Join(tmpdir, "socket")
|
||||
|
@ -42,8 +42,9 @@ var _ = Describe("Podman run", func() {
|
||||
})
|
||||
|
||||
It("podman run a container based on a complex local image name", func() {
|
||||
imageName := strings.TrimPrefix(nginx, "quay.io/")
|
||||
podmanTest.RestoreArtifact(nginx)
|
||||
session := podmanTest.Podman([]string{"run", "baude/alpine_nginx:latest", "ls"})
|
||||
session := podmanTest.Podman([]string{"run", imageName, "ls"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ErrorToString()).ToNot(ContainSubstring("Trying to pull"))
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
@ -203,6 +204,9 @@ var _ = Describe("Podman run", func() {
|
||||
})
|
||||
|
||||
It("podman run with mount flag", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("skip failing test on ppc64le")
|
||||
}
|
||||
mountPath := filepath.Join(podmanTest.TempDir, "secrets")
|
||||
os.Mkdir(mountPath, 0755)
|
||||
session := podmanTest.Podman([]string{"run", "--rm", "--mount", fmt.Sprintf("type=bind,src=%s,target=/run/test", mountPath), ALPINE, "grep", "/run/test", "/proc/self/mountinfo"})
|
||||
|
@ -128,6 +128,9 @@ var _ = Describe("Podman search", func() {
|
||||
})
|
||||
|
||||
It("podman search attempts HTTP if tls-verify flag is set false", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
podmanTest.RestoreArtifact(registry)
|
||||
fakereg := podmanTest.Podman([]string{"run", "-d", "--name", "registry", "-p", "5000:5000", registry, "/entrypoint.sh", "/etc/docker/registry/config.yml"})
|
||||
fakereg.WaitWithDefaultTimeout()
|
||||
@ -148,6 +151,9 @@ var _ = Describe("Podman search", func() {
|
||||
})
|
||||
|
||||
It("podman search in local registry", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
podmanTest.RestoreArtifact(registry)
|
||||
registry := podmanTest.Podman([]string{"run", "-d", "--name", "registry3", "-p", "5000:5000", registry, "/entrypoint.sh", "/etc/docker/registry/config.yml"})
|
||||
registry.WaitWithDefaultTimeout()
|
||||
@ -168,6 +174,9 @@ var _ = Describe("Podman search", func() {
|
||||
})
|
||||
|
||||
It("podman search attempts HTTP if registry is in registries.insecure and force secure is false", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
podmanTest.RestoreArtifact(registry)
|
||||
registry := podmanTest.Podman([]string{"run", "-d", "--name", "registry4", "-p", "5000:5000", registry, "/entrypoint.sh", "/etc/docker/registry/config.yml"})
|
||||
registry.WaitWithDefaultTimeout()
|
||||
@ -197,6 +206,9 @@ var _ = Describe("Podman search", func() {
|
||||
})
|
||||
|
||||
It("podman search doesn't attempt HTTP if force secure is true", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
podmanTest.RestoreArtifact(registry)
|
||||
registry := podmanTest.Podman([]string{"run", "-d", "-p", "5000:5000", "--name", "registry5", registry})
|
||||
registry.WaitWithDefaultTimeout()
|
||||
@ -225,6 +237,9 @@ var _ = Describe("Podman search", func() {
|
||||
})
|
||||
|
||||
It("podman search doesn't attempt HTTP if registry is not listed as insecure", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
podmanTest.RestoreArtifact(registry)
|
||||
registry := podmanTest.Podman([]string{"run", "-d", "-p", "5000:5000", "--name", "registry6", registry})
|
||||
registry.WaitWithDefaultTimeout()
|
||||
@ -253,6 +268,9 @@ var _ = Describe("Podman search", func() {
|
||||
})
|
||||
|
||||
It("podman search doesn't attempt HTTP if one registry is not listed as insecure", func() {
|
||||
if podmanTest.Host.Arch == "ppc64le" {
|
||||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
podmanTest.RestoreArtifact(registry)
|
||||
registryLocal := podmanTest.Podman([]string{"run", "-d", "-p", "5000:5000", "--name", "registry7", registry})
|
||||
registryLocal.WaitWithDefaultTimeout()
|
||||
|
Reference in New Issue
Block a user