Skip to content

Commit

Permalink
test: test ignore MAC Address on restore feature
Browse files Browse the repository at this point in the history
This was broken in 4.0 and now fixed in 4.4 which is still an release
candidate. Locally this has been tested with podman-4.4.0~rc1.

Closes cockpit-project#1179
  • Loading branch information
jelly committed Feb 7, 2023
1 parent 63acb34 commit 6c90376
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions test/check-application
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ DISTROS_WITHOUT_PODMAN_USER_RESTART = ['ubuntu-stable', 'ubuntu-2204']
DISTROS_WITHOUT_PODMAN_POD_VOLUMES = ['ubuntu-stable', 'ubuntu-2204', 'debian-testing']


def podman_version(cls):
version = cls.execute(False, "podman -v").strip().split(' ')[-1]
# HACK: handle possible rc versions such as 4.4.0-rc2
return tuple(int(v.split('-')[0]) for v in version.split('.'))


def showImages(browser):
if browser.attr("#containers-images button.pf-c-expandable-section__toggle", "aria-expanded") == 'false':
browser.click("#containers-images button.pf-c-expandable-section__toggle")
Expand Down Expand Up @@ -1162,7 +1168,8 @@ class TestApplication(testlib.MachineCase):
return

# Run a container
self.execute(True, "podman run -dit --name swamped-crate --stop-timeout 0 busybox:latest sh; podman stop swamped-crate")
mac_address = '92:d0:c6:0a:29:38'
self.execute(True, f"podman run -dit --mac-address {mac_address} --name swamped-crate --stop-timeout 0 busybox:latest sh; podman stop swamped-crate")
b.wait(lambda: self.execute(True, "podman ps --all | grep -e swamped-crate -e Exited"))

# Check that the restore option is not present (i.e. start is a regular button)
Expand Down Expand Up @@ -1201,6 +1208,13 @@ class TestApplication(testlib.MachineCase):
b.click('.pf-c-modal-box button:contains(Restore)')
b.wait(lambda: self.getContainerAttr("swamped-crate", "State") in 'Running')

# A new MAC address should have been generated
# Fixed in podman 4.4.0 https://github.com/containers/podman/issues/16666
import json
print(json.dumps(podman_version(self)))
if podman_version(self) >= (4, 4, 0):
self.assertNotEqual(self.execute(True, "podman inspect --format '{{.NetworkSettings.MacAddress}}' swamped-crate").strip(), mac_address)

# Checkpoint the container without stopping
self.waitContainerRow("swamped-crate")
self.performContainerAction("swamped-crate", "Checkpoint")
Expand Down Expand Up @@ -1461,8 +1475,7 @@ class TestApplication(testlib.MachineCase):
# Just drop user images so we can use simpler selectors
if auth:
self.execute(False, "podman rmi alpine busybox quay.io/cockpit/registry:2")
_, _, version = self.execute(False, "podman -v").split(' ')
if int(version[0]) < 4:
if podman_version(self)[0] < 4:
self.execute(False, "podman rmi pause:3.5")

self.login(auth)
Expand Down

0 comments on commit 6c90376

Please sign in to comment.