test_docker_compose.py: Test the port publish feature
authorPeter Korsgaard <peter@korsgaard.com>
Thu, 13 May 2021 21:03:52 +0000 (23:03 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 14 May 2021 20:59:58 +0000 (22:59 +0200)
Extend docker_test() to expose a random (8888) port to verify that doesn't
fail, and extend the docker-compose test to run the busybox httpd in the
background, expose that as port 80 and verify that /etc/resolv.conf could be
fetched by wget.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
support/testing/conf/docker-compose.yml
support/testing/tests/package/test_docker_compose.py

index 49ff2677da606cf2e589f48055546166d58fe884..de33251dfd1bb1103081ca0dc99e7131e6e73dbc 100644 (file)
@@ -2,3 +2,6 @@ version: '3'
 services:
   busybox:
     image: "busybox:latest"
+    command: httpd -f -h /etc/
+    ports:
+      - "80:80"
index 67ee795f21f5943c29cb220478a35cce877ab92f..364f75b5b0cc240e44f20c8815b546b5f9fc3ea4 100644 (file)
@@ -37,13 +37,15 @@ class TestDockerCompose(infra.basetest.BRTest):
 
     def docker_test(self):
         # will download container if not available, which may take some time
-        _, exit_code = self.emulator.run('docker run --rm busybox:latest /bin/true', 120)
+        _, exit_code = self.emulator.run('docker run --rm -p 8888:8888 busybox:latest /bin/true', 120)
         self.assertEqual(exit_code, 0)
 
     def docker_compose_test(self):
         # will download container if not available, which may take some time
-        _, exit_code = self.emulator.run('docker-compose up', 120)
-        self.assertEqual(exit_code, 0)
+        self.assertRunOk('docker-compose up -d', 120)
+        # container may take some time to start
+        self.assertRunOk('while ! docker inspect root_busybox_1 2>&1 >/dev/null; do sleep 1; done', 120)
+        self.assertRunOk('wget http://127.0.0.1/resolv.conf', 120)
 
     def test_run(self):
         kernel = os.path.join(self.builddir, "images", "bzImage")