summaryrefslogtreecommitdiffstats
path: root/tests/testserver
diff options
context:
space:
mode:
authorRyan Chu <ryan.chu@qt.io>2018-07-02 15:13:12 +0200
committerRyan Chu <ryan.chu@qt.io>2018-07-10 15:25:14 +0000
commit5c5af7155ae989664919de1f10ac17121fa12a36 (patch)
tree556bd0c474365ee556a48ffb5db2fa269f2cd994 /tests/testserver
parent6d0878db1be77c212fecccd6506e1872134c68cd (diff)
Enable mDNS service discovery in Docker-based test servers
To resolve the challenge of connecting Docker containers from the host without extra user-efforts, Avahi is used to publish the Docker-based test servers (Docker containers) on a local network. It is a free Zeroconf implementation, and it provides multicast DNS (mDNS) service discovery. By default, mDNS only resolves hostname ending with the ".local" domain. In this change, the domain name of test servers is changed to "test-net.qt.local". As stated in the standard, the DNS query for a local domain will be sent to the mDNS multicast address. It avoids the need for root access to modify system files. Task-number: QTQAINFRA-1686 Change-Id: I255fba0720ee6d0e84c9cb5ca9289d4466578922 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Ryan Chu <ryan.chu@qt.io> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Diffstat (limited to 'tests/testserver')
-rw-r--r--tests/testserver/apache2/testdata/main.conf2
-rwxr-xr-xtests/testserver/common/startup.sh5
-rw-r--r--tests/testserver/common/testdata/ssl/qt-test-server-cert.pem24
-rw-r--r--tests/testserver/docker-compose.yml36
4 files changed, 33 insertions, 34 deletions
diff --git a/tests/testserver/apache2/testdata/main.conf b/tests/testserver/apache2/testdata/main.conf
index 5cfa544623..f3b13bb571 100644
--- a/tests/testserver/apache2/testdata/main.conf
+++ b/tests/testserver/apache2/testdata/main.conf
@@ -1,4 +1,4 @@
-ServerName apache2.test-net.qt:80
+ServerName apache2.test-net.qt.local:80
NameVirtualHost *:443
diff --git a/tests/testserver/common/startup.sh b/tests/testserver/common/startup.sh
index 10847d3524..84d4003f86 100755
--- a/tests/testserver/common/startup.sh
+++ b/tests/testserver/common/startup.sh
@@ -48,5 +48,10 @@ for RUN_CMD
do $RUN_CMD
done
+# start multicast DNS service discovery (mDNS)
+sed -i "s,#domain-name=local,domain-name=test-net.qt.local," /etc/avahi/avahi-daemon.conf
+service dbus restart
+service avahi-daemon restart
+
# keep-alive in docker detach mode
sleep infinity
diff --git a/tests/testserver/common/testdata/ssl/qt-test-server-cert.pem b/tests/testserver/common/testdata/ssl/qt-test-server-cert.pem
index dae5641a88..43c8794ce2 100644
--- a/tests/testserver/common/testdata/ssl/qt-test-server-cert.pem
+++ b/tests/testserver/common/testdata/ssl/qt-test-server-cert.pem
@@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
-MIICiTCCAfICCQCqBnF3SPSY7jANBgkqhkiG9w0BAQQFADCBiDELMAkGA1UEChMC
+MIIClTCCAf4CCQC2xMhNhwvATDANBgkqhkiG9w0BAQQFADCBjjELMAkGA1UEChMC
UXQxGTAXBgNVBAsTEENvcmUgQW5kIE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5v
Ym9keS5xdC5pbzENMAsGA1UEBxMET3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UE
-BhMCTk8xFjAUBgNVBAMUDSoudGVzdC1uZXQucXQwHhcNMTgwMzEzMDkyNjQ0WhcN
-NDgwMzA1MDkyNjQ0WjCBiDELMAkGA1UEChMCUXQxGTAXBgNVBAsTEENvcmUgQW5k
-IE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5vYm9keS5xdC5pbzENMAsGA1UEBxME
-T3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UEBhMCTk8xFjAUBgNVBAMUDSoudGVz
-dC1uZXQucXQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM2q22/WNMmn8cC+
-5EEYGeICySLmp9W6Ay6eKHr0Xxp3X3epETuPfvAuxp7rOtkS18EMUegkUj8jw0IM
-EcbyHKFC/rTCaYOt93CxGBXMIChiMPAsFeYzGa/D6xzAkfcRaJRQ+Ek3CDLXPnXf
-o7xpABXezYcPXAJrgsgBfWrwHdxzAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAwNhw
-aKznTaMj6JeHP/kEEwMppRkNjmh4ECdQfT9vYNs45UKSAvCa1dn6ZBZKIdhqKCLn
-U2qiIS2783IoisRjFtg8x70S13EsBw/yEL/av+Ca1gQHOIFrOuLqwYbslTHrRXRA
-RPzHOl3ZP9FD3mPZ8jyzxYs4x5EM0X26FkAR078=
+BhMCTk8xHDAaBgNVBAMUEyoudGVzdC1uZXQucXQubG9jYWwwHhcNMTgwNzAxMTgz
+NjI3WhcNNDgwNjIzMTgzNjI3WjCBjjELMAkGA1UEChMCUXQxGTAXBgNVBAsTEENv
+cmUgQW5kIE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5vYm9keS5xdC5pbzENMAsG
+A1UEBxMET3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UEBhMCTk8xHDAaBgNVBAMU
+EyoudGVzdC1uZXQucXQubG9jYWwwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
+AM2q22/WNMmn8cC+5EEYGeICySLmp9W6Ay6eKHr0Xxp3X3epETuPfvAuxp7rOtkS
+18EMUegkUj8jw0IMEcbyHKFC/rTCaYOt93CxGBXMIChiMPAsFeYzGa/D6xzAkfcR
+aJRQ+Ek3CDLXPnXfo7xpABXezYcPXAJrgsgBfWrwHdxzAgMBAAEwDQYJKoZIhvcN
+AQEEBQADgYEAZu/lQPy8PXeyyYGamOVms/FZKJ48BH1y8KC3BeBU5FYnhvgG7pz8
+Wz9JKvt2t/r45wQeAkNL6HnGUBhPJsHMjPHl5KktqN+db3D+FQygBeS2V1+zmC0X
+UZNRE4aWiHvt1Lq+pTx89SOMOpfqWfh4qTQKiE5jC2V4DeCNQ3u7uI8=
-----END CERTIFICATE-----
diff --git a/tests/testserver/docker-compose.yml b/tests/testserver/docker-compose.yml
index 334818bc9b..a151d6bfb0 100644
--- a/tests/testserver/docker-compose.yml
+++ b/tests/testserver/docker-compose.yml
@@ -1,9 +1,5 @@
version: '3.4'
-x-domains:
- &testdomain
- ${TESTSERVER_DOMAIN:-test-net.qt}
-
# The tag of images is used by docker compose file to launch the corresponding
# docker containers. The value of tag comes from the provisioning script
# (coin/provisioning/.../testserver/docker_testserver.sh). The script gets SHA-1
@@ -16,9 +12,9 @@ x-domains:
services:
apache2:
- image: qt-test-server-apache2:e2a70c8b169c204e762b375885bd3a26cc40ba48
+ image: qt-test-server-apache2:cc9ea678b92bdda33acb9fa0159bb4ad0f3cd947
container_name: qt-test-server-apache2
- domainname: *testdomain
+ domainname: test-net.qt.local
hostname: apache2
volumes:
- ./common:/common:ro
@@ -27,14 +23,14 @@ services:
command: [common/ssl.sh, service/apache2.sh]
squid:
- image: qt-test-server-squid:276768104d3bbf097f4f3d9f3dc472a067852094
+ image: qt-test-server-squid:577d99307eea9a8cccfec944d25be2bce2fe99cc
container_name: qt-test-server-squid
- domainname: *testdomain
+ domainname: test-net.qt.local
hostname: squid
depends_on:
- apache2
external_links:
- - apache2:apache2.test-net.qt
+ - apache2:apache2.test-net.qt.local
volumes:
- ./common:/common:ro
- ./squid:/service:ro
@@ -42,12 +38,10 @@ services:
command: service/squid.sh
vsftpd:
- image: qt-test-server-vsftpd:ab7ecdbbace1bce7642a92ce04e9051c7630376c
+ image: qt-test-server-vsftpd:18896604c7e90b543e56d80c8a8aabdb65a590d0
container_name: qt-test-server-vsftpd
- domainname: *testdomain
+ domainname: test-net.qt.local
hostname: vsftpd
- depends_on:
- - squid
volumes:
- ./common:/common:ro
- ./vsftpd:/service:ro
@@ -55,14 +49,14 @@ services:
command: service/vsftpd.sh
ftp-proxy:
- image: qt-test-server-ftp-proxy:4c5734fe60eb450cbf8a96165f67cba19851ec12
+ image: qt-test-server-ftp-proxy:2c6c8f1ab6a364b540c43d705fb6f15a585cb2af
container_name: qt-test-server-ftp-proxy
- domainname: *testdomain
+ domainname: test-net.qt.local
hostname: ftp-proxy
depends_on:
- vsftpd
external_links:
- - vsftpd:vsftpd.test-net.qt
+ - vsftpd:vsftpd.test-net.qt.local
volumes:
- ./common:/common:ro
- ./ftp-proxy:/service:ro
@@ -70,18 +64,18 @@ services:
command: service/ftp-proxy.sh
danted:
- image: qt-test-server-danted:8404549745b5601ec3d22dc019258b70438864de
+ image: qt-test-server-danted:327dd56c3c35db85b26fac93213a5a1918475bc7
container_name: qt-test-server-danted
- domainname: *testdomain
+ domainname: test-net.qt.local
hostname: danted
depends_on:
- apache2
- vsftpd
- ftp-proxy
external_links:
- - apache2:apache2.test-net.qt
- - vsftpd:vsftpd.test-net.qt
- - ftp-proxy:ftp-proxy.test-net.qt
+ - apache2:apache2.test-net.qt.local
+ - vsftpd:vsftpd.test-net.qt.local
+ - ftp-proxy:ftp-proxy.test-net.qt.local
volumes:
- ./common:/common:ro
- ./danted:/service:ro