Merge pull request #18276 from sstosh/e2e-journald

e2e: skip journald test if journald is unavailable
This commit is contained in:
openshift-ci[bot] 2023-04-21 11:05:20 +00:00 committed by GitHub
commit e9c13354eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 7 deletions

View File

@ -756,6 +756,33 @@ func SkipIfNotFedora() {
}
}
type journaldTests struct {
journaldSkip bool
journaldOnce sync.Once
}
var journald journaldTests
func SkipIfJournaldUnavailable() {
f := func() {
journald.journaldSkip = false
// Check if journalctl is unavailable
cmd := exec.Command("journalctl", "-n", "1")
if err := cmd.Run(); err != nil {
journald.journaldSkip = true
}
}
journald.journaldOnce.Do(f)
// In container, journalctl does not return an error even if
// journald is unavailable
SkipIfInContainer("[journald]: journalctl inside a container doesn't work correctly")
if journald.journaldSkip {
Skip("[journald]: journald is unavailable")
}
}
// Use isRootless() instead of rootless.IsRootless()
// This function can detect to join the user namespace by mistake
func isRootless() bool {

View File

@ -257,7 +257,7 @@ var _ = Describe("Verify podman containers.conf usage", func() {
})
It("using journald for container with container log_tag", func() {
SkipIfInContainer("journalctl inside a container doesn't work correctly")
SkipIfJournaldUnavailable()
os.Setenv("CONTAINERS_CONF", "config/containers-journald.conf")
if IsRemote() {
podmanTest.RestartRemoteService()

View File

@ -44,7 +44,6 @@ var _ = Describe("Podman logs", func() {
podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
})
It("podman logs on not existent container", func() {
@ -60,7 +59,7 @@ var _ = Describe("Podman logs", func() {
skipIfJournaldInContainer := func() {
if log == "journald" {
SkipIfInContainer("journalctl inside a container doesn't work correctly")
SkipIfJournaldUnavailable()
}
}
@ -513,7 +512,7 @@ var _ = Describe("Podman logs", func() {
}
It("using journald for container with container tag", func() {
SkipIfInContainer("journalctl inside a container doesn't work correctly")
SkipIfJournaldUnavailable()
logc := podmanTest.Podman([]string{"run", "--log-driver", "journald", "--log-opt=tag={{.ImageName}}", "-d", ALPINE, "sh", "-c", "echo podman; sleep 0.1; echo podman; sleep 0.1; echo podman"})
logc.WaitWithDefaultTimeout()
Expect(logc).To(Exit(0))
@ -530,7 +529,7 @@ var _ = Describe("Podman logs", func() {
})
It("using journald container name", func() {
SkipIfInContainer("journalctl inside a container doesn't work correctly")
SkipIfJournaldUnavailable()
containerName := "inside-journal"
logc := podmanTest.Podman([]string{"run", "--log-driver", "journald", "-d", "--name", containerName, ALPINE, "sh", "-c", "echo podman; sleep 0.1; echo podman; sleep 0.1; echo podman"})
logc.WaitWithDefaultTimeout()
@ -560,7 +559,6 @@ var _ = Describe("Podman logs", func() {
It("podman pod logs with container names", func() {
SkipIfRemote("Remote can only process one container at a time")
SkipIfInContainer("journalctl inside a container doesn't work correctly")
podName := "testPod"
containerName1 := "container1"
containerName2 := "container2"
@ -588,7 +586,6 @@ var _ = Describe("Podman logs", func() {
})
It("podman pod logs with different colors", func() {
SkipIfRemote("Remote can only process one container at a time")
SkipIfInContainer("journalctl inside a container doesn't work correctly")
podName := "testPod"
containerName1 := "container1"
containerName2 := "container2"