cypress_test/Makefile.am | 53 ++++++++++++++++++++++++++----------------- cypress_test/run_parallel.sh | 14 +++++++++-- 2 files changed, 45 insertions(+), 22 deletions(-)
New commits: commit fd6b984a3ccfd1b5cfe65439a54f70b980617bed Author: Tamás Zolnai <tamas.zol...@collabora.com> AuthorDate: Wed Jul 29 12:06:10 2020 +0200 Commit: Tamás Zolnai <tamas.zol...@collabora.com> CommitDate: Wed Jul 29 14:26:51 2020 +0200 cypress: introduce make check-multi command. To run multi-user tests only. - make check-multi runs all multi-user tests. - make check-multi spec=sidebar_visibility runs only the test pair with the specified name. Change-Id: Idada04960a6a2d33c7f36ef57bc1d6a1d1cffa99 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99682 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com> diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am index a3f153c20..303043ee5 100644 --- a/cypress_test/Makefile.am +++ b/cypress_test/Makefile.am @@ -62,10 +62,10 @@ MOBILE_TEST_FILES=$(subst $(MOBILE_TEST_FOLDER)/,,$(wildcard $(MOBILE_TEST_FOLDE DEKSTOP_TEST_FILES=$(subst $(DESKTOP_TEST_FOLDER)/,,$(wildcard $(DESKTOP_TEST_FOLDER)/*_spec.js) $(wildcard $(DESKTOP_TEST_FOLDER)/*/*_spec.js)) -MULTIUSER_TEST_FILES= \ - paragraph_prop_user1_spec.js,paragraph_prop_user2_spec.js \ - sidebar_visibility_user1_spec.js,sidebar_visibility_user2_spec.js \ - simultaneous_typing_user1_spec.js,simultaneous_typing_user2_spec.js +MULTIUSER_TESTS= \ + paragraph_prop \ + sidebar_visibility \ + simultaneous_typing MOBILE_TEST_FILES_DONE= \ $(foreach test_file,$(MOBILE_TEST_FILES),$(MOBILE_TRACK_FOLDER)/$(test_file).done) @@ -73,13 +73,13 @@ MOBILE_TEST_FILES_DONE= \ DESKTOP_TEST_FILES_DONE= \ $(foreach test_file,$(DEKSTOP_TEST_FILES),$(DESKTOP_TRACK_FOLDER)/$(test_file).done) -MULTIUSER_TEST_FILES_DONE= \ - $(foreach test_file,$(subst $(COMMA),_,$(MULTIUSER_TEST_FILES)),$(MULTIUSER_TRACK_FOLDER)/$(test_file).done) +MULTIUSER_TESTS_DONE= \ + $(foreach test,$(MULTIUSER_TESTS),$(MULTIUSER_TRACK_FOLDER)/$(test).done) check-local: do-check $(if $(wildcard $(ERROR_LOG)),$(error CypressError: some tests failed!)) -do-check: $(DESKTOP_TEST_FILES_DONE) $(MOBILE_TEST_FILES_DONE) $(MULTIUSER_TEST_FILES_DONE) +do-check: $(DESKTOP_TEST_FILES_DONE) $(MOBILE_TEST_FILES_DONE) $(MULTIUSER_TESTS_DONE) @$(KILL_COMMAND) || true $(if $(HEADLESS_BUILD),@pkill Xvfb,) $(if $(wildcard $(ERROR_LOG)),@cat $(ERROR_LOG)) @@ -110,13 +110,8 @@ $(DESKTOP_TEST_FILES_DONE): $(PID_FILE) @$(foreach done_file,$(DESKTOP_TEST_FILES_DONE),mkdir -p $(dir $(done_file)) && touch $(done_file) &&) true\ ) -$(MULTIUSER_TEST_FILES_DONE): $(PID_FILE) $(MOBILE_TEST_FILES_DONE) - $(eval TEST_FILES=$(subst spec.js_,spec.js$(SPACE),$(notdir $@))) - $(eval USER1=$(dir $@)$(firstword $(TEST_FILES))) - $(eval USER2=$(basename $(dir $@)$(lastword $(TEST_FILES)))) - $(call run_multiuser_tests,\ - $(subst $(MULTIUSER_TRACK_FOLDER)/,,$(USER1)),$(USER1).log,\ - $(subst $(MULTIUSER_TRACK_FOLDER)/,,$(USER2)),$(USER2).log) +$(MULTIUSER_TESTS_DONE): $(PID_FILE) $(MOBILE_TEST_FILES_DONE) + $(call run_multiuser_test,$(subst $(MULTIUSER_TRACK_FOLDER)/,,$(basename $@))) @mkdir -p $(dir $@) && touch $@ check-desktop: @JAILS_PATH@ $(NODE_BINS) @@ -131,6 +126,16 @@ check-mobile: @JAILS_PATH@ $(NODE_BINS) $(call run_mobile_tests,$(spec)) @$(KILL_COMMAND) || true +check-multi: @JAILS_PATH@ $(NODE_BINS) + @rm -f $(ERROR_LOG) + $(call run_JS_error_check) + $(call start_loolwsd) + $(if $(spec), \ + $(call run_multiuser_test,$(spec)), \ + $(call run_all_multiuser_tests)) + @$(KILL_COMMAND) || true + $(if $(wildcard $(ERROR_LOG)),@cat $(ERROR_LOG)) + run-desktop: @JAILS_PATH@ $(NODE_BINS) $(call run_JS_error_check) $(call start_loolwsd) @@ -293,23 +298,31 @@ define run_mobile_tests ) endef -define run_multiuser_tests - @echo "Running cypress multi-user test: $(strip $(1)) - $(strip $(3))" +define run_all_multiuser_tests + $(foreach test,$(MULTIUSER_TESTS),$(call run_multiuser_test,$(test))) +endef + +define run_multiuser_test + $(eval USER1_SPEC=$(strip $(1))_user1_spec.js) + $(eval USER2_SPEC=$(strip $(1))_user2_spec.js) + $(eval USER1_LOG=$(MULTIUSER_TRACK_FOLDER)/$(USER1_SPEC).log) + $(eval USER2_LOG=$(MULTIUSER_TRACK_FOLDER)/$(USER2_SPEC).log) + @echo "Running cypress multi-user test: $(USER1_SPEC) - $(USER2_SPEC)" @echo @$(PARALLEL_SCRIPT) \ --browser $(CHROME) \ --config $(MULTIUSER_CONFIG) \ --env $(MULTIUSER_ENV) \ - --spec $(1) \ + --spec $(USER1_SPEC) \ --type multi-user \ - --log-file $(2) & \ + --log-file $(USER1_LOG) & \ $(PARALLEL_SCRIPT) \ --browser $(CHROME) \ --config $(MULTIUSER_CONFIG) \ --env $(MULTIUSER_ENV) \ - --spec $(3) \ + --spec $(USER2_SPEC) \ --type multi-user \ - --log-file $(4) && \ + --log-file $(USER2_LOG) && \ wait # waits the background process to be finished endef diff --git a/cypress_test/run_parallel.sh b/cypress_test/run_parallel.sh index 21f4e6c2a..0da1ea5c2 100755 --- a/cypress_test/run_parallel.sh +++ b/cypress_test/run_parallel.sh @@ -62,12 +62,22 @@ RUN_COMMAND="${CYPRESS_BINARY} run \ --spec=${TEST_FILE_PATH}" print_error() { + SPEC=${TEST_FILE} + COMMAND=${TEST_TYPE} + if [ "${TEST_TYPE}" = "multi-user" ]; then + COMMAND="multi" + SPEC=${SPEC%"_user1_spec.js"} + SPEC=${SPEC%"_user2_spec.js"} + fi echo -e "\n\ CypressError: a test failed, please do one of the following:\n\n\ Run the failing test in headless mode:\n\ - \tcd cypress_test && make check-${TEST_TYPE} spec=${TEST_FILE}\n\n\ + \tcd cypress_test && make check-${COMMAND} spec=${SPEC}\n" >> ${ERROR_LOG} + if [ "${TEST_TYPE}" != "multi-user" ]; then + echo -e "\ Open the failing test in the interactive test runner:\n\ - \tcd cypress_test && make run-${TEST_TYPE} spec=${TEST_FILE}\n" >> ${ERROR_LOG} + \tcd cypress_test && make run-${COMMAND} spec=${SPEC}\n" >> ${ERROR_LOG} + fi } run_command() { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits