Aller au contenu

Suite de vérification

Chaque fonction de la bibliothèque est couverte par un scénario StateCharts/Resources/Verification/verify_NN_<nom>.mos, exécutable par omc sans session interactive. Un scénario charge la bibliothèque, simule un exemple, relit des valeurs dans le fichier de résultats (val()) et affiche une ligne PASS: ou FAIL: avec les valeurs relevées.

Scénarios

Script Exemple Ce qui est vérifié
verify_01_traffic_light.mos TrafficLight after(delay), cycle rouge / vert / jaune aux instants attendus ; pseudo-état initial quitté ; impulsion entry à t = 0 ; impulsions entry, exit, effect de 0,1 s ; entryCount, activeDuration ; Actions.SetInteger
verify_02_thermostat.mos Thermostat garde sur une température continue, événement when(...), hystérésis tenue dans [19 ; 21] °C ; Chart utilisé comme bloc ; enchaînement initial → off → on à t = 0
verify_03_toggle.mos Toggle déclencheur Signal (pas de rebond tant que le bouton est appuyé) ; impulsions entry / exit et effect ; fireCount
verify_04_sorting.mos Sorting Choice traversé sans durée, trois branches avec priorités ; retour par after ; FinalState
verify_05_check_all.mos — checkModel de chaque classe instanciable, sans erreur ni avertissement
verify_06_automatic_door.mos AutomaticDoor un état à trois transitions sortantes sur trois côtés (garde, signal, when) départagées par la priorité ; couplage à une position intégrée

Un nouvel exemple ou un nouveau bloc s'accompagne de son scénario (et de son ajout dans verify_05 s'il est instanciable).

Lancer la suite

Depuis PowerShell, à la racine du dépôt (cf. Lancer les scripts sous Windows) :

.\tools\run_tests.cmd              # toute la suite, dans le dépôt
.\tools\run_tests.cmd --copy       # sur une copie des fichiers suivis par git : avant un tag

Ou dans Git Bash :

cd StateCharts/Resources/Verification
./run_tests.sh                     # 4 exécutions simultanées, récapitulatif, nettoyage
./run_tests.sh -j 2 -k             # 2 simultanées, artefacts et journaux gardés
omc verify_01_traffic_light.mos    # un scénario seul

run_tests.sh regroupe en une chaîne séquentielle les scripts qui ont le même fileNamePrefix (ils écriraient les mêmes fichiers), puis supprime les artefacts de compilation (<prefix>.exe, <prefix>_res.mat…). Il complète le PATH à partir de OPENMODELICAHOME si omc n'y est pas.

Où tester

Pendant le travail, dans le dépôt. Avant de poser un tag, --copy : la suite tourne sur ce que livrera le tag (fichiers suivis par git seulement), hors de OneDrive. Annoncer le résultat en précisant sur quoi il a tourné. Compter environ 1 min 30 pour toute la suite (la compilation de chaque exemple domine).

La suite passe sous OpenModelica 1.27.1 (version de développement) et 1.24.4. Pour la rejouer sous une autre version, changer OPENMODELICAHOME le temps d'une session (cf. Lancer les scripts sous Windows).

Contrôle visuel dans OMEdit

Les icônes et les schémas ne sont pas vérifiés par la suite. Avec le serveur MCP MCP-OpenModelica, un aperçu se fait sans toucher aux fichiers : produire une copie mono-fichier de la bibliothèque renommée (par exemple StateChartsPreview, sans les Documentation), la charger dans OMEdit par createClass + setSourceCode, puis créer un modèle de premier niveau qui en hérite (extends StateChartsPreview.Examples.Sorting) et appeler classDiagram sur ce modèle : l'outil ne trouve pas les classes imbriquées d'un paquetage créé en mémoire. Les mêmes captures servent aux illustrations de la documentation : procédure complète dans docs/ILLUSTRATIONS.md (hors site), à côté de docs/figures/make_figures.py qui produit les chronogrammes.