diff options
Diffstat (limited to 'tests/testserver')
-rw-r--r-- | tests/testserver/apache2/.gitattributes | 2 | ||||
-rw-r--r-- | tests/testserver/common/.gitattributes | 2 | ||||
-rwxr-xr-x | tests/testserver/common/ssl.sh | 3 | ||||
-rwxr-xr-x | tests/testserver/common/startup.sh | 4 | ||||
-rw-r--r-- | tests/testserver/common/testdata/ssl/qt-test-server-host-network-cacert.pem | 16 | ||||
-rw-r--r-- | tests/testserver/danted/.gitattributes | 2 | ||||
-rwxr-xr-x | tests/testserver/danted/danted.sh | 19 | ||||
-rw-r--r-- | tests/testserver/docker-compose-for-macOS.yml | 100 | ||||
-rw-r--r-- | tests/testserver/docker-compose-for-windows.yml | 100 | ||||
-rw-r--r-- | tests/testserver/docker-compose.yml | 34 | ||||
-rw-r--r-- | tests/testserver/ftp-proxy/.gitattributes | 2 | ||||
-rw-r--r-- | tests/testserver/squid/.gitattributes | 2 | ||||
-rw-r--r-- | tests/testserver/vsftpd/.gitattributes | 2 | ||||
-rwxr-xr-x | tests/testserver/vsftpd/vsftpd.sh | 7 |
14 files changed, 273 insertions, 22 deletions
diff --git a/tests/testserver/apache2/.gitattributes b/tests/testserver/apache2/.gitattributes new file mode 100644 index 0000000000..67af4c73e8 --- /dev/null +++ b/tests/testserver/apache2/.gitattributes @@ -0,0 +1,2 @@ +* text eol=lf +*.gif -text diff --git a/tests/testserver/common/.gitattributes b/tests/testserver/common/.gitattributes new file mode 100644 index 0000000000..21f6efbe14 --- /dev/null +++ b/tests/testserver/common/.gitattributes @@ -0,0 +1,2 @@ +*.sh text eol=lf +*.conf text eol=lf diff --git a/tests/testserver/common/ssl.sh b/tests/testserver/common/ssl.sh index 8a4728ad4d..2593a22979 100755 --- a/tests/testserver/common/ssl.sh +++ b/tests/testserver/common/ssl.sh @@ -35,5 +35,6 @@ set -ex # install ssl_certs and test data su $USER -c "mkdir -p -m 700 ~/ssl-certs/private" -su $USER -c "cp $CONFIG/ssl/qt-test-server-cert.pem ~/ssl-certs/" +su $USER -c \ + "cp $CONFIG/ssl/${test_cert:-qt-test-server-cert.pem} ~/ssl-certs/qt-test-server-cert.pem" su $USER -c "cp $CONFIG/ssl/private/qt-test-server-key.pem ~/ssl-certs/private/" diff --git a/tests/testserver/common/startup.sh b/tests/testserver/common/startup.sh index 84d4003f86..74990a47f6 100755 --- a/tests/testserver/common/startup.sh +++ b/tests/testserver/common/startup.sh @@ -49,7 +49,9 @@ 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 +sed -i -e "s,#domain-name=local,domain-name=${test_domain:-test-net.qt.local}," \ + -e "s,#publish-aaaa-on-ipv4=yes,publish-aaaa-on-ipv4=no," \ + /etc/avahi/avahi-daemon.conf service dbus restart service avahi-daemon restart diff --git a/tests/testserver/common/testdata/ssl/qt-test-server-host-network-cacert.pem b/tests/testserver/common/testdata/ssl/qt-test-server-host-network-cacert.pem new file mode 100644 index 0000000000..5bdce3a3f9 --- /dev/null +++ b/tests/testserver/common/testdata/ssl/qt-test-server-host-network-cacert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIIClzCCAgACCQDeuuUc2HkfKDANBgkqhkiG9w0BAQQFADCBjzELMAkGA1UEChMC +UXQxGTAXBgNVBAsTEENvcmUgQW5kIE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5v +Ym9keS5xdC5pbzENMAsGA1UEBxMET3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UE +BhMCTk8xHTAbBgNVBAMTFHF0LXRlc3Qtc2VydmVyLmxvY2FsMB4XDTE5MDEyNTE1 +NDE0N1oXDTQ5MDExNzE1NDE0N1owgY8xCzAJBgNVBAoTAlF0MRkwFwYDVQQLExBD +b3JlIEFuZCBOZXR3b3JrMRswGQYJKoZIhvcNAQkBFgxub2JvZHkucXQuaW8xDTAL +BgNVBAcTBE9zbG8xDTALBgNVBAgTBE9zbG8xCzAJBgNVBAYTAk5PMR0wGwYDVQQD +ExRxdC10ZXN0LXNlcnZlci5sb2NhbDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC +gYEAzarbb9Y0yafxwL7kQRgZ4gLJIuan1boDLp4oevRfGndfd6kRO49+8C7Gnus6 +2RLXwQxR6CRSPyPDQgwRxvIcoUL+tMJpg633cLEYFcwgKGIw8CwV5jMZr8PrHMCR +9xFolFD4STcIMtc+dd+jvGkAFd7Nhw9cAmuCyAF9avAd3HMCAwEAATANBgkqhkiG +9w0BAQQFAAOBgQB1dxK3Ia4sCpvSikKLaf1ZXu+9GKaNWKJe9bWex9/RmNOla9N2 +FIh6/CfaPFDy/OXCkyEiGg78iyg/DgqVoa9JJGV3diI6berisHMPJpv1syyz9YEU +G3RQUClPcPV6EcedyqCdpbnIFtiSZbtJ0ZBGef4KzBN3rTmPucKb+bhMPg== +-----END CERTIFICATE----- diff --git a/tests/testserver/danted/.gitattributes b/tests/testserver/danted/.gitattributes new file mode 100644 index 0000000000..21f6efbe14 --- /dev/null +++ b/tests/testserver/danted/.gitattributes @@ -0,0 +1,2 @@ +*.sh text eol=lf +*.conf text eol=lf diff --git a/tests/testserver/danted/danted.sh b/tests/testserver/danted/danted.sh index bf3d154f33..97e2142401 100755 --- a/tests/testserver/danted/danted.sh +++ b/tests/testserver/danted/danted.sh @@ -39,6 +39,25 @@ useradd -d /dev/null -s /bin/false qsockstest; echo "qsockstest:$PASS" | chpassw # install configurations and test data cp $TESTDATA/danted{,-authenticating}.conf /etc/ +# Use the input environment variables to overwrite the default value of internal interfaces. +if [ "$danted_internal" -a "$danted_internal" != eth0 ] +then sed -i "s,internal: eth0 port = 1080,internal: $danted_internal port = 1080," /etc/danted.conf +fi + +if [ "$danted_auth_internal" -a "$danted_auth_internal" != eth0 ] +then sed -i "s,internal: eth0 port = 1081,internal: $danted_auth_internal port = 1081," \ + /etc/danted-authenticating.conf +fi + +# Use the input environment variables to overwrite the default value of external interfaces. +if [ "$danted_external" -a "$danted_external" != eth0 ] +then sed -i "s,external: eth0,external: $danted_external," /etc/danted.conf +fi + +if [ "$danted_auth_external" -a "$danted_auth_external" != eth0 ] +then sed -i "s,external: eth0,external: $danted_auth_external," /etc/danted-authenticating.conf +fi + # enable service with installed configurations service danted start service danted-authenticating start diff --git a/tests/testserver/docker-compose-for-macOS.yml b/tests/testserver/docker-compose-for-macOS.yml new file mode 100644 index 0000000000..aa610dfb88 --- /dev/null +++ b/tests/testserver/docker-compose-for-macOS.yml @@ -0,0 +1,100 @@ +version: '3.4' + +# 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 +# of each server context as the tag of docker images. If one of the server +# contexts gets changes, please make sure to update this compose file as well. +# You can run command 'docker images' to list all the tags of test server images. +# For example: +# REPOSITORY TAG +# qt-test-server-apache2 537fe302f61851d1663f41495230d8e3554a4a13 + +services: + apache2: + image: qt-test-server-apache2:537fe302f61851d1663f41495230d8e3554a4a13 + container_name: qt-test-server-apache2 + domainname: ${TEST_DOMAIN} + volumes: + - ./common:/common:ro + - ./apache2:/service:ro + entrypoint: common/startup.sh + command: [common/ssl.sh, service/apache2.sh] + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - test_domain=${TEST_DOMAIN} + - test_cert="qt-test-server-host-network-cacert.pem" + + squid: + image: qt-test-server-squid:9c32f41b19aca3d778733c4d8fb0ecc5955e893c + container_name: qt-test-server-squid + domainname: ${TEST_DOMAIN} + depends_on: + - apache2 + volumes: + - ./common:/common:ro + - ./squid:/service:ro + entrypoint: common/startup.sh + command: service/squid.sh + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - test_domain=${TEST_DOMAIN} + + vsftpd: + image: qt-test-server-vsftpd:f3a9c8d793a77cc007c0e4e481bec01f9e3eeb7e + container_name: qt-test-server-vsftpd + domainname: ${TEST_DOMAIN} + volumes: + - ./common:/common:ro + - ./vsftpd:/service:ro + entrypoint: common/startup.sh + command: service/vsftpd.sh + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - test_domain=${TEST_DOMAIN} + + ftp-proxy: + image: qt-test-server-ftp-proxy:d7de8b28392d173db512a558ccc84ead8bece2ae + container_name: qt-test-server-ftp-proxy + domainname: ${TEST_DOMAIN} + depends_on: + - vsftpd + volumes: + - ./common:/common:ro + - ./ftp-proxy:/service:ro + entrypoint: common/startup.sh + command: service/ftp-proxy.sh + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - test_domain=${TEST_DOMAIN} + + danted: + image: qt-test-server-danted:35607f9b790524cf9690c7d12a9a401696b7b6b5 + container_name: qt-test-server-danted + domainname: ${TEST_DOMAIN} + depends_on: + - apache2 + - vsftpd + - ftp-proxy + volumes: + - ./common:/common:ro + - ./danted:/service:ro + entrypoint: common/startup.sh + command: service/danted.sh + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - danted_internal=${MACHINE_IP} + - danted_external=${MACHINE_IP} + - danted_auth_internal=${MACHINE_IP} + - danted_auth_external=${MACHINE_IP} + - test_domain=${TEST_DOMAIN} diff --git a/tests/testserver/docker-compose-for-windows.yml b/tests/testserver/docker-compose-for-windows.yml new file mode 100644 index 0000000000..aa610dfb88 --- /dev/null +++ b/tests/testserver/docker-compose-for-windows.yml @@ -0,0 +1,100 @@ +version: '3.4' + +# 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 +# of each server context as the tag of docker images. If one of the server +# contexts gets changes, please make sure to update this compose file as well. +# You can run command 'docker images' to list all the tags of test server images. +# For example: +# REPOSITORY TAG +# qt-test-server-apache2 537fe302f61851d1663f41495230d8e3554a4a13 + +services: + apache2: + image: qt-test-server-apache2:537fe302f61851d1663f41495230d8e3554a4a13 + container_name: qt-test-server-apache2 + domainname: ${TEST_DOMAIN} + volumes: + - ./common:/common:ro + - ./apache2:/service:ro + entrypoint: common/startup.sh + command: [common/ssl.sh, service/apache2.sh] + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - test_domain=${TEST_DOMAIN} + - test_cert="qt-test-server-host-network-cacert.pem" + + squid: + image: qt-test-server-squid:9c32f41b19aca3d778733c4d8fb0ecc5955e893c + container_name: qt-test-server-squid + domainname: ${TEST_DOMAIN} + depends_on: + - apache2 + volumes: + - ./common:/common:ro + - ./squid:/service:ro + entrypoint: common/startup.sh + command: service/squid.sh + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - test_domain=${TEST_DOMAIN} + + vsftpd: + image: qt-test-server-vsftpd:f3a9c8d793a77cc007c0e4e481bec01f9e3eeb7e + container_name: qt-test-server-vsftpd + domainname: ${TEST_DOMAIN} + volumes: + - ./common:/common:ro + - ./vsftpd:/service:ro + entrypoint: common/startup.sh + command: service/vsftpd.sh + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - test_domain=${TEST_DOMAIN} + + ftp-proxy: + image: qt-test-server-ftp-proxy:d7de8b28392d173db512a558ccc84ead8bece2ae + container_name: qt-test-server-ftp-proxy + domainname: ${TEST_DOMAIN} + depends_on: + - vsftpd + volumes: + - ./common:/common:ro + - ./ftp-proxy:/service:ro + entrypoint: common/startup.sh + command: service/ftp-proxy.sh + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - test_domain=${TEST_DOMAIN} + + danted: + image: qt-test-server-danted:35607f9b790524cf9690c7d12a9a401696b7b6b5 + container_name: qt-test-server-danted + domainname: ${TEST_DOMAIN} + depends_on: + - apache2 + - vsftpd + - ftp-proxy + volumes: + - ./common:/common:ro + - ./danted:/service:ro + entrypoint: common/startup.sh + command: service/danted.sh + network_mode: "host" + extra_hosts: + - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" + environment: + - danted_internal=${MACHINE_IP} + - danted_external=${MACHINE_IP} + - danted_auth_internal=${MACHINE_IP} + - danted_auth_external=${MACHINE_IP} + - test_domain=${TEST_DOMAIN} diff --git a/tests/testserver/docker-compose.yml b/tests/testserver/docker-compose.yml index a151d6bfb0..be65e5a26a 100644 --- a/tests/testserver/docker-compose.yml +++ b/tests/testserver/docker-compose.yml @@ -7,14 +7,14 @@ version: '3.4' # contexts gets changes, please make sure to update this compose file as well. # You can run command 'docker images' to list all the tag of test server images. # For example: -# REPOSITORY TAG IMAGE ID -# qt-test-server-apache2 e2a70c8b169c204e762b375885bd3a26cc40ba48 2ad5c8720317 +# REPOSITORY TAG +# qt-test-server-apache2 537fe302f61851d1663f41495230d8e3554a4a13 services: apache2: - image: qt-test-server-apache2:cc9ea678b92bdda33acb9fa0159bb4ad0f3cd947 + image: qt-test-server-apache2:537fe302f61851d1663f41495230d8e3554a4a13 container_name: qt-test-server-apache2 - domainname: test-net.qt.local + domainname: ${TEST_DOMAIN} hostname: apache2 volumes: - ./common:/common:ro @@ -23,14 +23,14 @@ services: command: [common/ssl.sh, service/apache2.sh] squid: - image: qt-test-server-squid:577d99307eea9a8cccfec944d25be2bce2fe99cc + image: qt-test-server-squid:9c32f41b19aca3d778733c4d8fb0ecc5955e893c container_name: qt-test-server-squid - domainname: test-net.qt.local + domainname: ${TEST_DOMAIN} hostname: squid depends_on: - apache2 external_links: - - apache2:apache2.test-net.qt.local + - apache2:apache2.${TEST_DOMAIN} volumes: - ./common:/common:ro - ./squid:/service:ro @@ -38,9 +38,9 @@ services: command: service/squid.sh vsftpd: - image: qt-test-server-vsftpd:18896604c7e90b543e56d80c8a8aabdb65a590d0 + image: qt-test-server-vsftpd:f3a9c8d793a77cc007c0e4e481bec01f9e3eeb7e container_name: qt-test-server-vsftpd - domainname: test-net.qt.local + domainname: ${TEST_DOMAIN} hostname: vsftpd volumes: - ./common:/common:ro @@ -49,14 +49,14 @@ services: command: service/vsftpd.sh ftp-proxy: - image: qt-test-server-ftp-proxy:2c6c8f1ab6a364b540c43d705fb6f15a585cb2af + image: qt-test-server-ftp-proxy:d7de8b28392d173db512a558ccc84ead8bece2ae container_name: qt-test-server-ftp-proxy - domainname: test-net.qt.local + domainname: ${TEST_DOMAIN} hostname: ftp-proxy depends_on: - vsftpd external_links: - - vsftpd:vsftpd.test-net.qt.local + - vsftpd:vsftpd.${TEST_DOMAIN} volumes: - ./common:/common:ro - ./ftp-proxy:/service:ro @@ -64,18 +64,18 @@ services: command: service/ftp-proxy.sh danted: - image: qt-test-server-danted:327dd56c3c35db85b26fac93213a5a1918475bc7 + image: qt-test-server-danted:35607f9b790524cf9690c7d12a9a401696b7b6b5 container_name: qt-test-server-danted - domainname: test-net.qt.local + domainname: ${TEST_DOMAIN} hostname: danted depends_on: - apache2 - vsftpd - ftp-proxy external_links: - - apache2:apache2.test-net.qt.local - - vsftpd:vsftpd.test-net.qt.local - - ftp-proxy:ftp-proxy.test-net.qt.local + - apache2:apache2.${TEST_DOMAIN} + - vsftpd:vsftpd.${TEST_DOMAIN} + - ftp-proxy:ftp-proxy.${TEST_DOMAIN} volumes: - ./common:/common:ro - ./danted:/service:ro diff --git a/tests/testserver/ftp-proxy/.gitattributes b/tests/testserver/ftp-proxy/.gitattributes new file mode 100644 index 0000000000..21f6efbe14 --- /dev/null +++ b/tests/testserver/ftp-proxy/.gitattributes @@ -0,0 +1,2 @@ +*.sh text eol=lf +*.conf text eol=lf diff --git a/tests/testserver/squid/.gitattributes b/tests/testserver/squid/.gitattributes new file mode 100644 index 0000000000..21f6efbe14 --- /dev/null +++ b/tests/testserver/squid/.gitattributes @@ -0,0 +1,2 @@ +*.sh text eol=lf +*.conf text eol=lf diff --git a/tests/testserver/vsftpd/.gitattributes b/tests/testserver/vsftpd/.gitattributes new file mode 100644 index 0000000000..67af4c73e8 --- /dev/null +++ b/tests/testserver/vsftpd/.gitattributes @@ -0,0 +1,2 @@ +* text eol=lf +*.gif -text diff --git a/tests/testserver/vsftpd/vsftpd.sh b/tests/testserver/vsftpd/vsftpd.sh index 1ba1a8c347..14364f94c2 100755 --- a/tests/testserver/vsftpd/vsftpd.sh +++ b/tests/testserver/vsftpd/vsftpd.sh @@ -41,9 +41,10 @@ useradd -d "/home/$USER/ftp" -s /bin/bash ftptest; echo "ftptest:$PASS" | chpass cp $TESTDATA/vsftpd.{conf,user_list} /etc/ # Resolve error message "vsftpd failed - probably invalid config" during boot -command='start-stop-daemon --start --background -m --oknodo --pidfile /var/run/vsftpd/vsftpd.pid' -command+=' --exec ${DAEMON}' -sed -i "s,$command.*$,$command; sleep 1," /etc/init.d/vsftpd +# This bug has been reported to Debian bug tracking system (ID #911396) +command='ps -C vsftpd | grep -qs "${_PID}"' +sed -i -e 's,while [ ${n} -le 5 ].*$,while true,' \ + -e "s,\t\t\tif ! $command.*$,\t\t\tif $command," /etc/init.d/vsftpd # Populate the FTP sites: su $USER -c "cp -r $TESTDATA/ftp ~/ftp" |