diff --git a/README.md b/README.md index 0e70afa..f50a450 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ Si un test est absent de la liste, il sera ignoré. Cela revient à le noter à - `setup_public`: Installation en public. - `upgrade`: Upgrade du package sur la même version. Test uniquement le script upgrade. - `backup_restore`: Backup et restauration. -- `multi_instance`: Installation de l'application 2 fois de suite, pour vérifier sa capacité à être multi-instance. +- `multi_instance`: Installation de l'application 3 fois de suite, pour vérifier sa capacité à être multi-instance. Les 2e et 3e installations se font respectivement en ajoutant un suffixe et un préfixe au path. - `wrong_user`: Provoque une erreur avec un nom d'utilisateur incorrect. - `wrong_path`: Provoque une erreur avec un domain incorrect. - `incorrect_path`: Provoque une erreur avec un path malformé, path/. diff --git a/sub_scripts/testing_process.sh b/sub_scripts/testing_process.sh index 074d34a..ae46e3b 100644 --- a/sub_scripts/testing_process.sh +++ b/sub_scripts/testing_process.sh @@ -511,7 +511,6 @@ CHECK_MULTI_INSTANCE () { fi if [ "$GLOBAL_CHECK_SUB_DIR" -eq 1 ]; then # Si l'install en sub_dir à fonctionné. Utilise ce mode d'installation MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=$PATH_TEST\&@") - CHECK_PATH="$PATH_TEST" else echo "L'installation en sous-dossier n'a pas fonctionné, impossible d'effectuer ce test..." return; @@ -520,23 +519,44 @@ CHECK_MULTI_INSTANCE () { SETUP_APP LOG_EXTRACTOR APPID_first=$APPID # Stocke le nom de la première instance - CHECK_PATH_first=$CHECK_PATH # Stocke le path de la première instance YUNOHOST_RESULT_first=$YUNOHOST_RESULT # Stocke le résulat de l'installation de la première instance - # Installation de l'app une deuxième fois - MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=$PATH_TEST-2\&@") - CHECK_PATH="$PATH_TEST-2" + # Installation de l'app une deuxième fois, en ajoutant un suffixe au path + ECHO_FORMAT "2e installation\n" + path2="$PATH_TEST-2" + MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=$path2\&@") + SETUP_APP + LOG_EXTRACTOR + APPID_second=$APPID # Stocke le nom de la deuxième instance + YUNOHOST_RESULT_second=$YUNOHOST_RESULT # Stocke le résulat de l'installation de la deuxième instance + ECHO_FORMAT "3e installation\n" + path3="/3-${PATH_TEST#/}" + # Installation de l'app une troisième fois, en ajoutant un préfixe au path + MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=$path2\&@$MANIFEST_PATH=$path3\&@") SETUP_APP LOG_EXTRACTOR # Test l'accès à la 1ère instance de l'app - CHECK_PATH=$CHECK_PATH_first + CHECK_PATH="$PATH_TEST" CHECK_URL if [ "$curl_error" -ne 0 ]; then YUNOHOST_RESULT_first=$curl_error fi # Test l'accès à la 2e instance de l'app - CHECK_PATH="$PATH_TEST-2" + CHECK_PATH="$path2" CHECK_URL + if [ "$curl_error" -ne 0 ]; then + YUNOHOST_RESULT_second=$curl_error + fi + # Test l'accès à la 3e instance de l'app + CHECK_PATH="$path3" + CHECK_URL + if [ "$curl_error" -ne 0 ]; then + YUNOHOST_RESULT=$curl_error + fi tnote=$((tnote+1)) + if [ "$YUNOHOST_RESULT" -eq 0 ] || [ "$YUNOHOST_RESULT_second" -eq 0 ] + then # Si la 2e OU la 3e installation à fonctionné, le test est validé. Car le SSO peut bloquer des installations en suffixe sur la même racine. + YUNOHOST_RESULT=0 + fi if [ "$YUNOHOST_RESULT" -eq 0 ] && [ "$YUNOHOST_RESULT_first" -eq 0 ] && [ "$curl_error" -eq 0 ]; then ECHO_FORMAT "--- SUCCESS ---\n" "lgreen" "bold" note=$((note+1))