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
func SkipIfJournaldUnavailable() {
// Check if journalctl is unavailable
func checkAvailableJournald() {
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)
}
func SkipIfJournaldUnavailable() {
checkAvailableJournald()
// In container, journalctl does not return an error even if
// journald is unavailable

View File

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