e2e: Skip journalctl if journald is unavailable

Test "podman start container by systemd" is failed on the system in
which rootless users don't have accessibility to journald. Therefore,
skip the part that reads journal with journalctl.

Signed-off-by: Tsubasa Watanabe <w.tsubasa@fujitsu.com>
This commit is contained in:
Tsubasa Watanabe
2023-12-30 00:42:13 +09:00
parent 7dc7cbfd9b
commit ec5422af5b
2 changed files with 11 additions and 4 deletions

View File

@ -851,17 +851,21 @@ type journaldTests struct {
var journald journaldTests var journald journaldTests
func SkipIfJournaldUnavailable() { // Check if journalctl is unavailable
func checkAvailableJournald() {
f := func() { f := func() {
journald.journaldSkip = false journald.journaldSkip = false
// Check if journalctl is unavailable
cmd := exec.Command("journalctl", "-n", "1") cmd := exec.Command("journalctl", "-n", "1")
if err := cmd.Run(); err != nil { if err := cmd.Run(); err != nil {
journald.journaldSkip = true journald.journaldSkip = true
} }
} }
journald.journaldOnce.Do(f) journald.journaldOnce.Do(f)
}
func SkipIfJournaldUnavailable() {
checkAvailableJournald()
// In container, journalctl does not return an error even if // In container, journalctl does not return an error even if
// journald is unavailable // journald is unavailable

View File

@ -64,8 +64,11 @@ WantedBy=default.target
start := SystemExec("systemctl", []string{dashWhat, "start", serviceName}) start := SystemExec("systemctl", []string{dashWhat, "start", serviceName})
Expect(start).Should(ExitCleanly()) Expect(start).Should(ExitCleanly())
checkAvailableJournald()
if !journald.journaldSkip {
logs := SystemExec("journalctl", []string{dashWhat, "-n", "20", "-u", serviceName}) logs := SystemExec("journalctl", []string{dashWhat, "-n", "20", "-u", serviceName})
Expect(logs).Should(ExitCleanly()) Expect(logs).Should(ExitCleanly())
}
status := SystemExec("systemctl", []string{dashWhat, "status", serviceName}) status := SystemExec("systemctl", []string{dashWhat, "status", serviceName})
Expect(status.OutputToString()).To(ContainSubstring("active (running)")) Expect(status.OutputToString()).To(ContainSubstring("active (running)"))