cypress_test/Makefile.am                        |   21 ++++++++++++++-------
 cypress_test/integration_tests/common/helper.js |   12 +++++++++---
 cypress_test/package.json                       |    1 +
 3 files changed, 24 insertions(+), 10 deletions(-)

New commits:
commit eb53dd5a8cec05cdf48941a5248b55f3b27d372c
Author:     Tamás Zolnai <tamas.zol...@collabora.com>
AuthorDate: Thu Feb 20 02:25:01 2020 +0100
Commit:     Tamás Zolnai <tamas.zol...@collabora.com>
CommitDate: Thu Feb 20 04:49:38 2020 +0100

    cypress: Always search for an available port number.
    
    Change-Id: Ibfb80d43cd7f7d4c8cab8e3621bebfc2201d4b2d
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89066
    Tested-by: Tamás Zolnai <tamas.zol...@collabora.com>
    Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com>

diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index 58fa873f4..d77710989 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -13,6 +13,10 @@ MOBILE_TEST_FOLDER = ${abs_srcdir}/integration_tests/mobile
 MOBILE_DATA_FOLDER = ${abs_srcdir}/data/mobile/
 MOBILE_WORKDIR = ${abs_builddir}/workdir/mobile/
 
+ALLOWED_PORTS = 9980 9979 9978 9977 9976 9975 9974 9973 9972 9971 9970
+
+FREE_PORT=$(shell node_modules/get-port-cli/cli.js --host=127.0.0.1 
$(ALLOWED_PORTS))
+
 if HAVE_LO_PATH
 check-local: @JAILS_PATH@ node_modules
        $(call run_JS_error_check)
@@ -39,7 +43,7 @@ run-desktop: @JAILS_PATH@ node_modules
        @echo "Open cypress with desktop tests..."
        @echo
        $(CYPRESS_BINARY) open --config 
integrationFolder=$(DESKTOP_TEST_FOLDER),userAgent=$(DESKTOP_USER_AGENT) \
-                       --env 
DATA_FOLDER=$(DESKTOP_DATA_FOLDER),WORKDIR=$(DESKTOP_WORKDIR),WSD_VERSION_HASH=$(LOOLWSD_VERSION_HASH)
 \
+                       --env 
DATA_FOLDER=$(DESKTOP_DATA_FOLDER),WORKDIR=$(DESKTOP_WORKDIR),WSD_VERSION_HASH=$(LOOLWSD_VERSION_HASH),SERVER_PORT=$(FREE_PORT)
 \
                        || true
        @pkill loolwsd || true
 
@@ -49,7 +53,7 @@ run-mobile: @JAILS_PATH@ node_modules
        @echo "Open cypress with mobile tests..."
        @echo
        $(CYPRESS_BINARY) open --config 
integrationFolder=$(MOBILE_TEST_FOLDER),userAgent=$(MOBILE_USER_AGENT) \
-                       --env 
DATA_FOLDER=$(MOBILE_DATA_FOLDER),WORKDIR=$(MOBILE_WORKDIR),WSD_VERSION_HASH=$(LOOLWSD_VERSION_HASH)
 \
+                       --env 
DATA_FOLDER=$(MOBILE_DATA_FOLDER),WORKDIR=$(MOBILE_WORKDIR),WSD_VERSION_HASH=$(LOOLWSD_VERSION_HASH),SERVER_PORT=$(FREE_PORT)
 \
                        || true
        @pkill loolwsd || true
 
@@ -63,15 +67,18 @@ endef
 
 define start_loolwsd
        @pkill loolwsd || true
-       @echo "Launching loolwsd for testing..."
+       @echo "Found available port for testing: $(FREE_PORT)"
+       @echo
+       @echo "Launching loolwsd..."
        @fc-cache "@LO_PATH@"/share/fonts/truetype
        @echo
        ../loolwsd --o:sys_template_path="@SYSTEMPLATE_PATH@" \
                        --o:child_root_path="@JAILS_PATH@" 
--o:storage.filesystem[@allow]=true \
                        --disable-ssl \
                        --o:admin_console.username=admin 
--o:admin_console.password=admin \
-                       --o:logging.file[@enable]=true --o:logging.level=trace 
> /dev/null 2>&1 &
-       @node_modules/wait-on/bin/wait-on http://localhost:9980
+                       --o:logging.file[@enable]=true --o:logging.level=trace 
> /dev/null 2>&1 \
+                       --port=$(FREE_PORT) &
+       @node_modules/wait-on/bin/wait-on http://localhost:$(FREE_PORT)
        @echo
 endef
 
@@ -82,7 +89,7 @@ define run_desktop_tests
        $(CYPRESS_BINARY) run --browser $(CHROME) \
                        --config 
integrationFolder=$(DESKTOP_TEST_FOLDER),userAgent=$(DESKTOP_USER_AGENT) \
                        --headless \
-                       --env 
DATA_FOLDER=$(DESKTOP_DATA_FOLDER),WORKDIR=$(DESKTOP_WORKDIR),WSD_VERSION_HASH=$(LOOLWSD_VERSION_HASH)
 \
+                       --env 
DATA_FOLDER=$(DESKTOP_DATA_FOLDER),WORKDIR=$(DESKTOP_WORKDIR),WSD_VERSION_HASH=$(LOOLWSD_VERSION_HASH),SERVER_PORT=$(FREE_PORT)
 \
                        $(if $(1), 
--spec=${abs_dir}/integration_tests/desktop/$(1)) \
                        || (pkill loolwsd && false)
 endef
@@ -94,7 +101,7 @@ define run_mobile_tests
        $(CYPRESS_BINARY) run --browser $(CHROME) \
                        --config 
integrationFolder=$(MOBILE_TEST_FOLDER),userAgent=$(MOBILE_USER_AGENT) \
                        --headless \
-                       --env 
DATA_FOLDER=$(MOBILE_DATA_FOLDER),WORKDIR=$(MOBILE_WORKDIR),WSD_VERSION_HASH=$(LOOLWSD_VERSION_HASH)
 \
+                       --env 
DATA_FOLDER=$(MOBILE_DATA_FOLDER),WORKDIR=$(MOBILE_WORKDIR),WSD_VERSION_HASH=$(LOOLWSD_VERSION_HASH),SERVER_PORT=$(FREE_PORT)
 \
                        $(if $(1), 
--spec=$(abs_dir)/integration_tests/mobile/$(1)) \
                        || (pkill loolwsd && false)
 endef
diff --git a/cypress_test/integration_tests/common/helper.js 
b/cypress_test/integration_tests/common/helper.js
index 388423ac2..6c7147097 100644
--- a/cypress_test/integration_tests/common/helper.js
+++ b/cypress_test/integration_tests/common/helper.js
@@ -23,12 +23,16 @@ function loadTestDoc(fileName, subFolder, mobile) {
        // Open test document
        var URI;
        if (subFolder === undefined) {
-               URI = 'http://localhost:9980/loleaflet/' +
+               URI = 'http://localhost:'+
+                       Cypress.env('SERVER_PORT') +
+                       '/loleaflet/' +
                        Cypress.env('WSD_VERSION_HASH') +
                        '/loleaflet.html?lang=en-US&file_path=file://' +
                        Cypress.env('WORKDIR') + fileName;
        } else {
-               URI = 'http://localhost:9980/loleaflet/' +
+               URI = 'http://localhost:'+
+                       Cypress.env('SERVER_PORT') +
+                       '/loleaflet/' +
                        Cypress.env('WSD_VERSION_HASH') +
                        '/loleaflet.html?lang=en-US&file_path=file://' +
                        Cypress.env('WORKDIR') + subFolder + '/' + fileName;
@@ -147,7 +151,9 @@ function beforeAllMobile(fileName, subFolder) {
 
 function afterAll() {
        // Make sure that the document is closed
-       
cy.visit('http://admin:admin@localhost:9980/loleaflet/dist/admin/admin.html');
+       cy.visit('http://admin:admin@localhost:' +
+                       Cypress.env('SERVER_PORT') +
+                       '/loleaflet/dist/admin/admin.html');
        cy.get('#doclist')
                .should('exist');
        cy.get('#doclist tr')
diff --git a/cypress_test/package.json b/cypress_test/package.json
index 0d80d1173..07e378814 100644
--- a/cypress_test/package.json
+++ b/cypress_test/package.json
@@ -6,6 +6,7 @@
   "dependencies": {
     "cypress": "3.8.3",
     "eslint": "6.8.0",
+    "get-port-cli": "2.0.0",
     "wait-on": "4.0.0"
   },
   "repository": {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to