From 52969ffff6478e8db8e69ad1f379f328f50d0520 Mon Sep 17 00:00:00 2001 From: scith Date: Tue, 17 Jan 2017 14:31:30 +0100 Subject: [PATCH] Parsing de check_process --- README.md | 26 ++++++++++++++++++++++++++ check_process | 11 +++++++++++ package_check.sh | 16 ++++++++++++++-- 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f2f46b3..cc45848 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,17 @@ package_check/package_check.sh APP_ynh fail_download_source=0 port_already_use=1 (XXXX) final_path_already_use=0 +;;; Levels + Level 1=auto + Level 2=auto + Level 3=auto + Level 4=0 + Level 5=auto + Level 6=auto + Level 7=auto + Level 8=0 + Level 9=0 + Level 10=0 ``` ### `;; Nom du test` Nom du scénario de test qui sera effectué. @@ -117,6 +128,21 @@ Si un test est absent de la liste, il sera ignoré. Cela revient à le noter à Le numéro de port doit alors être noté entre parenthèse, il servira au test de port. - `final_path_already_use`: *Non implémenté pour le moment...* +### `;;; Levels` +Permet de choisir comment [chaque niveau](https://forum.yunohost.org/t/redaction-de-regles-pour-passer-une-app-en-officielle/2256/26) est déterminé. +Chaque niveau fixé à auto sera déterminé par le script. Il est également possible de fixer le niveau à 1 ou à 0 pour respectivement le valider ou l'invalider. +Il est à noter que les niveaux 4, 8, 9 et 10 ne peuvent être fixés à "auto" car ils ne peuvent être testés par le script et nécessitent une vérification manuelle. +- Niveau 1 : L'application s'installe et se désinstalle correctement. -- Peut être vérifié par package_check +- Niveau 2 : L'application s'installe et se désinstalle dans toutes les configurations communes. -- Peut être vérifié par package_check +- Niveau 3 : L'application supporte l'upgrade depuis une ancienne version du package. -- Peut être vérifié par package_check +- Niveau 4 : L'application prend en charge de LDAP et/ou HTTP Auth. -- Doit être vérifié manuellement +- Niveau 5 : Aucune erreur dans package_linter. -- Peut être vérifié par package_check +- Niveau 6 : L'application peut-être sauvegardée et restaurée sans erreurs sur la même machine ou une autre. -- Peut être vérifié par package_check +- Niveau 7 : Aucune erreur dans package check. -- Peut être vérifié par package_check +- Niveau 8 : L'application respecte toutes les YEP recommandées. -- Doit être vérifié manuellement +- Niveau 9 : L'application respecte toutes les YEP optionnelles. -- Doit être vérifié manuellement +- Niveau 10 : L'application est jugée parfaite. -- Doit être vérifié manuellement + --- Le script `package_check.sh` accepte 6 arguments en plus du package à tester. - `--bash-mode`: Rend le script autonome. Aucune intervention de l'utilisateur ne sera nécessaire. diff --git a/check_process b/check_process index 353c504..421c303 100644 --- a/check_process +++ b/check_process @@ -27,3 +27,14 @@ fail_download_source=0 port_already_use=1 (66) final_path_already_use=0 +;;; Levels + Level 1=auto + Level 2=auto + Level 3=auto + Level 4=0 + Level 5=auto + Level 6=auto + Level 7=auto + Level 8=0 + Level 9=0 + Level 10=0 diff --git a/package_check.sh b/package_check.sh index c186a36..e58bdca 100755 --- a/package_check.sh +++ b/package_check.sh @@ -538,6 +538,7 @@ INIT_VAR() { IN_PROCESS=0 MANIFEST=0 CHECKS=0 + IN_LEVELS=1 auto_remove=1 install_pass=0 note=0 @@ -607,7 +608,12 @@ then # Si le fichier check_process est trouvé if echo "$LIGNE" | grep -q "^auto_remove="; then # Indication d'auto remove auto_remove=$(echo "$LIGNE" | cut -d '=' -f2) fi - if echo "$LIGNE" | grep -q "^;;"; then # Début d'un scénario de test + if echo "$LIGNE" | grep -q "^;;; Levels"; then # Définition des variables de niveaux + IN_PROCESS=0 + MANIFEST=0 + CHECKS=0 + IN_LEVELS=1 + elif echo "$LIGNE" | grep -q "^;;"; then # Début d'un scénario de test if [ "$IN_PROCESS" -eq 1 ]; then # Un scénario est déjà en cours. Donc on a atteind la fin du scénario. TESTING_PROCESS TEST_RESULTS @@ -620,8 +626,14 @@ then # Si le fichier check_process est trouvé IN_PROCESS=1 MANIFEST=0 CHECKS=0 + IN_LEVELS=0 fi - if [ "$IN_PROCESS" -eq 1 ] + if [ "$IN_LEVELS" -eq 1 ] + then + if echo "$LIGNE" | grep -q "Level "; then # Définition d'un niveau + level[$(echo "$LIGNE" | cut -d '=' -f1 | cut -d ' ' -f2)]=$(echo "$LIGNE" | cut -d '=' -f2) + fi + elif [ "$IN_PROCESS" -eq 1 ] then # Analyse des arguments du scenario de test if echo "$LIGNE" | grep -q "^; Manifest"; then # Arguments du manifest MANIFEST=1