[doc] misc. patchs & small improvements
[scilab.git] / scilab / modules / development_tools / help / fr_FR / test_run.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) INRIA
5  * Copyright (C) 2009-2011 - DIGITEO - Michael Baudin
6  * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier: added 32/64bits separation
7  * Copyright (C) 2012 - 2016 - Scilab Enterprises
8  * Copyright (C) 2018 - Samuel GOUGEON
9  *
10  * This file is hereby licensed under the terms of the GNU GPL v2.0,
11  * pursuant to article 5.3.4 of the CeCILL v.2.1.
12  * This file was originally licensed under the terms of the CeCILL v2.1,
13  * and continues to be available under such terms.
14  * For more information, see the COPYING file which you should have received
15  * along with this program.
16  *
17  -->
18 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
19           xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
20           xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
21           xmlns:scilab="http://www.scilab.org" xml:id="test_run" xml:lang="fr">
22     <refnamediv>
23         <refname>test_run</refname>
24         <refpurpose>
25             Lance les tests unitaires et de non régression présents dans un module ou dans un répertoire
26         </refpurpose>
27     </refnamediv>
28     <refsynopsisdiv>
29         <title>Syntaxe</title>
30         <synopsis>
31             status = test_run()
32             status = test_run(module)
33             status = test_run(module, test_name)
34             status = test_run(module, test_name, options, exportToFile)
35         </synopsis>
36     </refsynopsisdiv>
37     <refsection>
38         <title>Arguments</title>
39         <variablelist>
40             <varlistentry>
41                 <term>module</term>
42                 <listitem>
43                     <para>
44                         Un tableau de chaînes de caractères ou <literal>[]</literal> (ou <literal>"[]"</literal>). Nom des modules ou répertoires à tester, tous les modules internes de scilab si <literal>[]</literal>
45                     </para>
46                     <itemizedlist>
47                         <listitem>
48                             <para>
49                                 le nom d'un module interne de Scilab ("core", "time", ...) ou d'un sous-module ("optimization|neldermead").
50                             </para>
51                         </listitem>
52                         <listitem>
53                             <para>
54                                 le nom d'un module ATOMS ("module_lycee", "nisp", ...). Pour être pris en compte le module doit être chargé à l'appel de test_run().
55                             </para>
56                         </listitem>
57                         <listitem>
58                             <para>
59                                 le chemin absolu vers le répertoire d'un module.
60                             </para>
61                         </listitem>
62                     </itemizedlist>
63                 </listitem>
64             </varlistentry>
65             <varlistentry>
66                 <term>test_name</term>
67                 <listitem>
68                     <para>
69                         Noms des tests à effectuer (tableau de texte), ou <literal>[]</literal>
70                         ou <literal>"[]"</literal> pour tous les tests disponibles pour le
71                         module considéré.
72                     </para>
73                     <para>
74                         Le joker * peut être utilisé, tel que dans <literal>*sin</literal>,
75                         <literal>*sin</literal>, ou <literal>*sin*</literal>.
76                     </para>
77                 </listitem>
78             </varlistentry>
79             <varlistentry>
80                 <term>options</term>
81                 <listitem>
82                     <para>
83                         Un tableau de chaînes de caractères : étiquettes des options à utiliser
84                         pour le lot de tests (liste ci-après).
85                         Indiquer <literal>[]</literal> ou <literal>"[]"</literal> pour utiliser
86                         les options par défaut.
87                     </para>
88                     <variablelist>
89                         <varlistentry>
90                             <term>"no_check_ref"</term>
91                             <listitem>
92                                 <para>n'effectue pas la comparaison entre les fichiers .dia et .dia.ref</para>
93                             </listitem>
94                         </varlistentry>
95                         <varlistentry>
96                             <term>"no_check_error_output"</term>
97                             <listitem>
98                                 <para>ignore les messages affichés en sortie d'erreur standard. Cette option peut être utilisé pour certains messages présents en sortie d'erreur dans la localisation par exemple.</para>
99                             </listitem>
100                         </varlistentry>
101                         <varlistentry>
102                             <term>"create_ref"</term>
103                             <listitem>
104                                 <para>génère un fichier .dia.ref (pour les tests sans l'indicateur
105                                   <literal>&lt;-- NO CHECK REF --></literal>), et ignore la comparaison
106                                   avec tout précédent fichier .dia.ref</para>
107                             </listitem>
108                         </varlistentry>
109                         <varlistentry>
110                             <term>"show_error"</term>
111                             <listitem>
112                                 <para>affiche les 10 dernières lignes d'exécution du script si un test échoue.</para>
113                             </listitem>
114                         </varlistentry>
115                         <varlistentry>
116                             <term>"show_diff"</term>
117                             <listitem>
118                                 <para>
119                                     si une différence avec le fichier .dia.ref est trouvée, affiche la différence avec une commande <literal>diff -u</literal>
120                                 </para>
121                             </listitem>
122                         </varlistentry>
123                         <varlistentry>
124                             <term>"list"</term>
125                             <listitem>
126                                 <para>liste les tests disponibles (aucun test n'est exécuté)</para>
127                             </listitem>
128                         </varlistentry>
129                         <varlistentry>
130                             <term>"help"</term>
131                             <listitem>
132                                 <para>affiche des exemples d'utilisation de cette commande</para>
133                             </listitem>
134                         </varlistentry>
135                         <varlistentry>
136                             <term>"mode_nw"</term>
137                             <listitem>
138                                 <para>ajoute l'option "-nw" au lancement de chaque test</para>
139                             </listitem>
140                         </varlistentry>
141                         <varlistentry>
142                             <term>"mode_nwni"</term>
143                             <listitem>
144                                 <para>ajoute l'option "-nwni" au lancement de chaque test</para>
145                             </listitem>
146                         </varlistentry>
147                         <varlistentry>
148                             <term>"mode_nwni_profiling"</term>
149                             <listitem>
150                                 <para>ajoute les options "-nwni -profiling" pour permettre le profiling (seulement disponible sous linux)</para>
151                             </listitem>
152                         </varlistentry>
153                         <varlistentry>
154                             <term>"nonreg_tests"</term>
155                             <listitem>
156                                 <para>lance uniquement les tests de non régression</para>
157                             </listitem>
158                         </varlistentry>
159                         <varlistentry>
160                             <term>"unit_tests"</term>
161                             <listitem>
162                                 <para>lance uniquement les tests unitaires</para>
163                             </listitem>
164                         </varlistentry>
165                         <varlistentry>
166                             <term>"skip_tests"</term>
167                             <listitem>
168                                 <para>
169                                     ignore les tests spécifiés dans <term>test_name</term>
170                                 </para>
171                             </listitem>
172                         </varlistentry>
173                         <varlistentry>
174                             <term>"enable_lt"</term>
175                             <listitem>
176                                 <para>active les tests taggés à long temps d'exécution</para>
177                             </listitem>
178                         </varlistentry>
179                         <varlistentry>
180                             <term>"short_summary"</term>
181                             <listitem>
182                                 <para>n'affiche pas les statistiques complètes d'exécutions (seuls le nombre de tests exécutés, réussis, échoués et ignorés sont affichés sur une seule ligne de résumé)</para>
183                             </listitem>
184                         </varlistentry>
185                     </variablelist>
186                 </listitem>
187             </varlistentry>
188             <varlistentry>
189                 <term>exportToFile</term>
190                 <listitem>
191                     <para>
192                         une chaîne de caractères. Chemin d'accès à un fichier d'export.
193                     </para>
194                     <para>
195                         Exporte le resultat de la passe de test dans le fichier XML <varname>exportToFile</varname>. Ce fichier suit le format XUnit.
196                         L'utilisation de cet argument d'entrée active automatiquement les options <literal>"show_diff"</literal> et <literal>"show_error"</literal>.
197                     </para>
198                     <para>
199                         Si le fichier spécifié par <varname>exportToFile</varname> existe préalablement, les résultats de tests sont ajoutés en fin de fichier.
200                     </para>
201                 </listitem>
202             </varlistentry>
203             <varlistentry>
204                 <term>status</term>
205                 <listitem>
206                     <para>
207                         Une valeur booléenne.
208                         Renvoie %t dans le cas où aucune erreur n'est détectée pour cette passe.
209                         Renvoie %f sinon.
210                     </para>
211                 </listitem>
212             </varlistentry>
213         </variablelist>
214     </refsection>
215     <refsection>
216         <title>Description</title>
217         <para>
218             Cherche les fichiers .tst dans les répertoires unit_tests et nonreg_tests, les exécute et affiche un résumé des succès et échecs pour la passe de test.
219             Les ficheirs .tst se trouvent dans les répertoire SCI+"/modules/*/tests/unit_tests" et SCI+"/modules/*/tests/nonreg_tests".
220         </para>
221         <para>
222             Tout d'abord, <literal>test_run</literal> vérifie que le test ne produit aucune erreur.
223             Si le test produit une erreur, le test est considéré en échec.
224         </para>
225         <para>
226             Ensuite, <literal>test_run</literal> s'assure que les commandes et l'affichage de leurs résultats dans la console sont conformes à un fichier de référence préalablement constitué. Chaque exécution d'un test donne lieu à un fichier <literal>.dia</literal> qui est comparé à une fichier <literal>.dia.ref</literal>.
227             Le fichier <literal>.dia.ref</literal> doit se trouver dans le même répertoire que le fichier <literal>.tst</literal> correspondant.
228             Si les deux fichiers sont différents le test est considéré en échec.
229         </para>
230         <para>
231             Des tags spécifiques insérés dans les fichiers .tst peuvent modifier la gestion des fichiers .tst. Ces tags se trouvent dans des commentaires Scilab présents dans le fichier de test.
232         </para>
233         <para>liste des tags disponbiles : </para>
234         <itemizedlist>
235             <listitem>
236                 <para>
237                     &lt;-- INTERACTIVE TEST --&gt;
238                     Le test est taggé Interactif. Les tests interactifs sont ignorés.
239                 </para>
240             </listitem>
241             <listitem>
242                 <para>
243                     &lt;-- LONG TIME EXECUTION --&gt;
244                     Le test est taggé comme étant long à exécuter. Ces test sont ignorés sauf si l'option <literal>"enable-lt"</literal> est spécifiée.
245                 </para>
246             </listitem>
247             <listitem>
248                 <para>
249                     &lt;-- NOT FIXED --&gt;
250                     Le test est taggé comme non corrigé. Les tests non corrigés sont ignorés.
251                 </para>
252             </listitem>
253             <listitem>
254                 <para>
255                     &lt;-- TEST WITH GRAPHIC --&gt;
256                     Ce test est taggé comme nécessitant les fonctionnalités graphiques de Scilab. Ils sont automatiquement exécutés avec l'option de lancement "-nw" (mode par défaut).
257                 </para>
258             </listitem>
259             <listitem>
260                 <para>
261                     &lt;-- NO TRY CATCH --&gt;
262                 </para>
263             </listitem>
264             <listitem>
265                 <para>
266                     &lt;-- NO CHECK ERROR OUTPUT --&gt;
267                     La sortie d'erreur standard de scilab n'est pas vérifiée.
268                 </para>
269             </listitem>
270             <listitem>
271                 <para>
272                     &lt;-- NO CHECK REF --&gt;
273                     Les fichiers <literal>.dia</literal> et <literal>.dia.ref</literal> ne sont pas vérifiés.
274                 </para>
275             </listitem>
276             <listitem>
277                 <para>
278                     &lt;-- ENGLISH IMPOSED --&gt;
279                     Le test est lancé avec l'option <literal>-l en_US</literal>
280                 </para>
281             </listitem>
282             <listitem>
283                 <para>
284                     &lt;-- FRENCH IMPOSED --&gt;
285                     Le test est lancé avec l'option <literal>-l fr_FR</literal>
286                 </para>
287             </listitem>
288             <listitem>
289                 <para>
290                     &lt;-- CLI SHELL MODE --&gt;
291                     (anciennement &lt;-- JVM NOT MANDATORY --&gt; maintenant obsolète)
292                     Le test est exécuté avec l'option de lancement <literal>-nwni</literal>.
293                 </para>
294             </listitem>
295             <listitem>
296                 <para>
297                     &lt;-- WINDOWS ONLY --&gt;
298                     Ignore le test sur tout autre système d'exploitation que Windows.
299                 </para>
300             </listitem>
301             <listitem>
302                 <para>
303                     &lt;-- UNIX ONLY --&gt;
304                     Ignore le test sur tout autre système d'exploitation que Unix.
305                 </para>
306             </listitem>
307             <listitem>
308                 <para>
309                     &lt;-- LINUX ONLY --&gt;
310                     Ignore le test sur tout autre système d'exploitation que GNU/Linux.
311                 </para>
312             </listitem>
313             <listitem>
314                 <para>
315                     &lt;-- MACOSX ONLY --&gt;
316                     Ignore le test sur tout autre système d'exploitations que Mac OS X.
317                 </para>
318             </listitem>
319             <listitem>
320                 <para>
321                     &lt;-- XCOS TEST --&gt;
322                     Charge préalablement les librairies d'Xcos pour exécuter le test.
323                 </para>
324             </listitem>
325         </itemizedlist>
326         <para>
327             Chaque test est éxécuté dans un processus séparé, créé avec la commande <link linkend="host">host</link>.
328             Ceci permet de continuer à lancer les tests même si l'environnement exécutant le test est devenu instable suite aux commandes passées.
329             Cela permet aussi de rendre les tests indépendants les uns des autres.
330         </para>
331     </refsection>
332     <refsection>
333         <title>Tests spécifiques à une platforme</title>
334         <para>
335             Il est possible que le résultat d'un test dépende de l'OS sur lequel il est exécuté.
336             Si tel est le cas, le fichier <literal>.ref</literal> peut dépendre d'une plateforme et le test peut échouer sur les autres plateformes.
337             Des fichiers <literal>.ref</literal> additionnels peuvent être créés avec des extensions spéciques à la plateforme :
338         </para>
339         <itemizedlist>
340             <listitem>
341                 <para>
342                     <literal>.unix.dia.ref</literal> pour la plateforme Unix,
343                 </para>
344             </listitem>
345             <listitem>
346                 <para>
347                     <literal>.linux.dia.ref</literal> pour la plateforme GNU/Linux,
348                 </para>
349             </listitem>
350             <listitem>
351                 <para>
352                     <literal>.linux32.dia.ref</literal> pour la plateforme GNU/Linux 32bits,
353                 </para>
354             </listitem>
355             <listitem>
356                 <para>
357                     <literal>.win.dia.ref</literal> pour la platforme Windows,
358                 </para>
359             </listitem>
360             <listitem>
361                 <para>
362                     <literal>.win32.dia.ref</literal> pour la plateforme Windows 32bits,
363                 </para>
364             </listitem>
365             <listitem>
366                 <para>
367                     <literal>.macosx.dia.ref</literal> pour la plateforme Max OS X.
368                 </para>
369             </listitem>
370         </itemizedlist>
371         <para>
372             L'algorithme est le suivant :
373             D'abord les fichiers <literal>.ref</literal> sont sélectionnés pour le test. Si ces fichiers n'existent pas le fichier <literal>platform.ref</literal> est examiné pour la platforme sur lequel le test est lancé.
374         </para>
375         <itemizedlist>
376             <listitem>
377                 <para>
378                     Sur les plateformes Windows : <literal>.win.dia.ref</literal>, <literal>.win32.dia.ref</literal>
379                 </para>
380             </listitem>
381             <listitem>
382                 <para>
383                     sur les plateformes Mac OS : <literal>.unix.dia.ref</literal>, <literal>.macosx.dia.ref</literal>,
384                 </para>
385             </listitem>
386             <listitem>
387                 <para>
388                     sur les plateformes GNU/Linux : <literal>.unix.dia.ref</literal>, <literal>.linux.dia.ref</literal>, <literal>.linux32.dia.ref</literal>.
389                 </para>
390             </listitem>
391         </itemizedlist>
392     </refsection>
393     <refsection>
394         <title>Examples</title>
395         <programlisting role="example"><![CDATA[
396 // Lance tous les tests
397 // Cela peut prendre du temps...
398 // =============================================
399
400 // test_run();
401 // test_run([]);
402 // test_run([],[]);
403 // test_run("[]","[]");
404 // test_run [] [];
405
406 // Teste un ou plusieurs modules
407 // =============================================
408
409 // Teste un seul module
410 test_run('time');
411
412 // Teste plusieurs modules
413 test_run(['time','string']);
414
415 // Teste un sous-module
416 test_run('optimization|neldermead');
417
418 // Test défini par le chemin d'accès
419 test_run(SCI+'/modules/core');
420
421 // Lance un test spécifique
422 // =============================================
423
424 // Un seul test
425 test_run('time','datenum');
426
427 // Plusieurs tests
428 test_run('time',['datenum';'calendar']);
429
430 // Ignorer plusieurs tests
431 // =============================================
432
433 test_run('time',['datenum';'calendar'],'skip_tests');
434
435 // Options
436 // =============================================
437
438 // sans comparaison entre .dia et .dia.ref
439 test_run('time','datenum','no_check_ref');
440
441 // création d'un fichier .dia.ref
442 // test_run([],[],'create_ref');
443
444 // liste des tests disponibles
445 test_run([],[],'list');
446
447 // affichage des exemples d'utilisation de la commande
448 test_run([],[],'help');
449
450 // Exécution de tous les tests de non régression
451 test_run([],[],'nonreg_test');
452
453 // Exécution de tous les tests unitaires
454 test_run([],[],'unit_test');
455
456 // non vérification de la sortie d'erreur standard (std err)
457 test_run('boolean','bug_2799','no_check_error_output');
458
459 // Combinaisons d'options
460 test_run([],[],['no_check_ref','mode_nw']);
461
462 // Console mode
463 test_run time [] no_check_ref //tests time module with no_check_ref option
464  ]]></programlisting>
465
466         <programlisting role="example"><![CDATA[
467 // lance les tests d'un module externe
468 test_run('SCI/contrib/toolbox_skeleton')
469  ]]></programlisting>
470
471         <programlisting role="example"><![CDATA[
472 // Export XML Xunit
473 test_run('boolean',[],[],TMPDIR+"/boolean_test_run.xml");
474 test_run('time','datenum',[],TMPDIR+"/time_datenum_test_run.xml");
475  ]]></programlisting>
476         <para>
477             <emphasis role="bold">Sélections avec joker * :</emphasis>
478         </para>
479         <programlisting role="example"><![CDATA[
480 test_run elementary_functions *space
481 test_run elementary_functions dec2*
482 test_run string *ascii*
483  ]]></programlisting>
484     <screen><![CDATA[
485 --> test_run elementary_functions *space
486    TMPDIR = C:\MyPath\AppData\Local\Temp\SCI_TMP_3668_1147
487
488    001/002 - [elementary_functions] logspace....................passed
489    002/002 - [elementary_functions] linspace....................passed
490    --------------------------------------------------------------------------
491    Summary
492 ../..
493
494 --> test_run elementary_functions dec2*
495    TMPDIR = C:\MyPath\AppData\Local\Temp\SCI_TMP_3668_1147
496
497    001/004 - [elementary_functions] dec2oct.....................passed
498    002/004 - [elementary_functions] dec2hex.....................passed
499    003/004 - [elementary_functions] dec2bin.....................passed
500    004/004 - [elementary_functions] dec2base....................passed
501    --------------------------------------------------------------------------
502    Summary
503 ../..
504
505 --> test_run string *ascii*
506    TMPDIR = C:\MyPath\AppData\Local\Temp\SCI_TMP_3668_1147
507
508    001/003 - [string] isascii...................................passed
509    002/003 - [string] asciimat..................................passed
510    003/003 - [string] ascii.....................................passed
511    --------------------------------------------------------------------------
512    Summary
513 ../..
514 ]]></screen>
515     </refsection>
516     <refsection>
517         <title>Design interne</title>
518         <para>
519             Les tests sont exécutés dans un répertoire temporaire, non pas dans le repertoire les contenant.
520         </para>
521         <para>
522             Les scripts de tests ne sont pas exécutés tels qu'écrit, un en-tête et un pied de page spécifiques sont rajoutés à chaque test.
523             Le but est d'instrumenter le fichier de tests afin de rediriger les sorties dans un fichier de log spécique au test.
524         </para>
525         <para>
526             La durée d'exécution pour chaque test est fixé à 5 minutes. Pour
527             désactiver la terminaison du test après ce délai, utilisez le tag
528             <literal>LONG TIME EXECUTION</literal>.
529         </para>
530     </refsection>
531     <refsection role="see also">
532         <title>Voir aussi</title>
533         <simplelist type="inline">
534             <member>
535                 <link linkend="debug">debug</link>
536             </member>
537             <member>
538                 <link linkend="covStart">covStart</link>
539             </member>
540             <member>
541                 <link linkend="profile">profile</link>
542             </member>
543             <member>
544                 <link linkend="slint">slint</link>
545             </member>
546             <member>
547                 <ulink url="https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382.aspx">
548                   Liste des codes de résultat d'exécution de MS Windows
549                 </ulink>
550             </member>
551         </simplelist>
552     </refsection>
553     <refsection>
554         <title>Historique</title>
555         <revhistory>
556             <revision>
557                 <revnumber>5.4.0</revnumber>
558                 <revdescription>test_run renvoie un statut:
559                     <itemizedlist><listitem>
560                             Renvoie %t si aucune erreur n'est détectée
561                         </listitem>
562                         <listitem>
563                             Renvoie %f si une erreur est détectée
564                         </listitem>
565                     </itemizedlist>
566                     <para>
567                         <literal>show_diff</literal> et <literal>show_error</literal> ajoutés comme nouvelles options
568                     </para>
569                     <para>
570                         tag <literal>CLI SHELL MODE</literal> ajouté. Remplace <literal>JVM NOT MANDATORY</literal> (toujours supporté)
571                     </para>
572                     <para>
573                         <literal>test_run</literal> peut fonctionner sur un module externe.
574                     </para>
575                     <para>
576                         Quatrième paramètre d'appel pour l'export vers un fichier XML XUnit
577                     </para>
578                 </revdescription>
579             </revision>
580             <revision>
581                 <revnumber>5.5.0</revnumber>
582                 <revdescription>séparation 32/64bits disponible</revdescription>
583             </revision>
584             <revision>
585                 <revnumber>6.0.0</revnumber>
586                 <revdescription>
587                     <para>mode profiling ajouté pour permettre l'analyse du profil d'exécution avec valgrind (Linux uniquement)</para>
588                     <para>
589                         durée d'exécution maximale d'un test sans <literal>LONG TIME EXECUTION</literal> configurée à 5 minutes.
590                     </para>
591                 </revdescription>
592             </revision>
593             <revision>
594                 <revnumber>6.0.2</revnumber>
595                 <revdescription>
596                     <para>Les noms de tests avec joker * sont désormais utilisables,
597                         tels que sin*, *sin, ou *sin*
598                     </para>
599                 </revdescription>
600             </revision>
601         </revhistory>
602     </refsection>
603 </refentry>