Projet mkd/shell.c
De Wiki EELL.
(Différences entre les versions)
JPL (discuter | contributions) m (Mise à jour) |
JPL (discuter | contributions) m (→Fichiers de la fonction shell_() : Mise à jour) |
||
(Une version intermédiaire masquée) | |||
Ligne 93 : | Ligne 93 : | ||
The 'Codes': table of 5 characters: | The 'Codes': table of 5 characters: | ||
extern char codes[]; | extern char codes[]; | ||
- | They must be | + | They must be defined in the calling function: |
char codes[5] = {0,0,0,0,0}; | char codes[5] = {0,0,0,0,0}; | ||
The 'Options': n,s,t,v: | The 'Options': n,s,t,v: | ||
extern unsigned char n,s,t; | extern unsigned char n,s,t; | ||
- | They must be | + | They must be defined in the calling function: |
unsigned char n=0,s=0,t=0; | unsigned char n=0,s=0,t=0; | ||
With the options: | With the options: | ||
Ligne 288 : | Ligne 288 : | ||
{ | { | ||
putc('\t',pfdoc); // tab to target | putc('\t',pfdoc); // tab to target | ||
- | putch('\t'); | + | if(s)putch('\t'); // tab to stdout |
} | } | ||
else | else | ||
{ | { | ||
putc(' ',pfdoc); // blank to target | putc(' ',pfdoc); // blank to target | ||
- | putch(' '); | + | if(s)putch(' '); // blank to stdout |
} | } | ||
} /*S t */ | } /*S t */ | ||
Ligne 325 : | Ligne 325 : | ||
== Fichier de commande des tests == | == Fichier de commande des tests == | ||
- | MAKE_Tests_U, CLEAN_Tests_U | + | {{Boîte déroulante/début|titre=MAKE_Tests_U, CLEAN_Tests_U}} |
+ | * MAKE_Tests_U | ||
+ | <pre style="color:blue"> | ||
+ | #!/bin/bash | ||
+ | #O ../../mkd tests under Linux. | ||
+ | #O Epreuve de vérification de la fonction cpp_() avec ../../mkd | ||
- | + | #O Copy Test_cpp_U.cc in target created file | |
- | + | cat MAKE_Tests_cpp_U > Tests_cpp_U.tstshell | |
- | Fichier source des tests | + | #O Test options -nstv with source "MAKE_Tests_cpp_U" and target "*.tstshell" |
+ | #O - and screen redirection to tstshell.screen | ||
+ | |||
+ | #O 1: Test de l'option -s append target | ||
+ | echo "------------------------------------------------------------------" >> Tests_cpp_U.tstshell | ||
+ | echo "1: Test de l'option -s append target" >> Tests_cpp_U.tstshell | ||
+ | ../../mkd -savS O MAKE_Tests_cpp_U *.tstshell > tstshell.screen | ||
+ | |||
+ | #O 1: Test option -t | ||
+ | echo "------------------------------------------------------------------" >> Tests_cpp_U.tstshell | ||
+ | echo "1: Test option -t" >> Tests_cpp_U.tstshell | ||
+ | ../../mkd -tavS O MAKE_Tests_cpp_U *.tstshell # >> tstshell.screen | ||
+ | |||
+ | #O 1: Test option -n, with append files target and screen | ||
+ | echo "------------------------------------------------------------------" >> Tests_cpp_U.tstshell | ||
+ | echo "1: Test option -n, with append files target and screen" >> Tests_cpp_U.tstshell | ||
+ | ../../mkd -navS O MAKE_Tests_cpp_U *.tstshell # >> tstshell.screen | ||
+ | |||
+ | #O 2: Test options -ns, with append files target and screen | ||
+ | echo "------------------------------------------------------------------" >> Tests_cpp_U.tstshell | ||
+ | echo "------------------------------------------------------------------" >> Tests_cpp_U.tstshell | ||
+ | echo "------------------------------------------------------------------" >> Tests_cpp_U.tstshell | ||
+ | echo "2: Test options -ns, with append files target and screen" >> Tests_cpp_U.tstshell | ||
+ | ../../mkd -nsavS O MAKE_Tests_cpp_U *.tstshell >> tstshell.screen | ||
+ | |||
+ | #O 2: Test options -nt, with append files target and screen | ||
+ | echo "------------------------------------------------------------------" >> Tests_cpp_U.tstshell | ||
+ | echo "2: Test options -nt, with append files target and screen" >> Tests_cpp_U.tstshell | ||
+ | ../../mkd -ntavS O MAKE_Tests_cpp_U *.tstshell >> tstshell.screen | ||
+ | |||
+ | #O 2: Test options -nst, with append files target and screen | ||
+ | echo "------------------------------------------------------------------" >> Tests_cpp_U.tstshell | ||
+ | echo "2: Test options -nst, with append files target and screen" >> Tests_cpp_U.tstshell | ||
+ | ../../mkd -nstavS O MAKE_Tests_cpp_U *.tstshell >> tstshell.screen | ||
+ | |||
+ | #O 5: Independant test with -nstv "Test_cpp_U.cc" and target "*.tstshelllastline" | ||
+ | ../../mkd -nstvwS T MAKE_Tests_cpp_U tstshelllastline > tstshelllastline.screen | ||
+ | |||
+ | #O 5: Independant test with -nstv "Test_cpp_U.c2" and target file "*.tstshelllastline" | ||
+ | ../../mkd -nsvaS '**' MAKE_Tests_cpp_U tstshelllastline >> tstshelllastline.screen | ||
+ | |||
+ | |||
+ | |||
+ | #O Break with gedit "Tests_cpp_U.tstshell", "tstshell.screen" | ||
+ | gedit Tests_cpp_U.tstshell tstshell.screen tstshelllastline tstshelllastline.screen | ||
+ | |||
+ | |||
+ | #T test tab and lastline | ||
+ | </pre> | ||
+ | |||
+ | * CLEAN_Tests_U | ||
+ | <pre style="color:orange"> | ||
+ | #!/bin/dash | ||
+ | #O File Tests_Clean | ||
+ | #O Force delete files created with mkd "tests" under Linux. | ||
+ | rm -f Tests_cpp_U.tstshell | ||
+ | rm -f tstshell.screen | ||
+ | rm -f tstshelllastline | ||
+ | rm -f tstshelllastline.screen | ||
+ | rm -f *.doc | ||
+ | </pre> | ||
+ | {{Boîte déroulante/fin}} | ||
+ | |||
+ | == Analyse des tests Konsole == | ||
+ | {{Boîte déroulante/début|titre=Analysis 2013-05-09}} | ||
+ | <pre style="color:black"> | ||
+ | Fichier Analysis texte UTF-8 | ||
+ | Analyse du : 9 mai 2013 par Clara pour le retour à la conception détaillée. | ||
+ | ------------------------------------------------------------------------------- | ||
+ | Résultats du test unitaire de la fonction shell_() du fichier shell.c intégrée | ||
+ | à la commande mkd 2013 alpha 05 | ||
+ | . | ||
+ | Ce test est effectué avec la version mkd 2013 alpha pour évaluer les | ||
+ | modifications à effectuer dans la version alpha 2013. | ||
+ | . | ||
+ | D'après les directives et les fichiers d'analyse Tests_cpp_U.tstshell, | ||
+ | tstshell.screen, tstshelllastline et tstshelllastline.screen | ||
+ | . | ||
+ | Directives de tests unitaires version alpha 2013: | ||
+ | ------------------------------------------------- | ||
+ | 1: Vérifiez les options n, s et t séparément: | ||
+ | - les essais séparés fonctionnent correctement et sont conformes | ||
+ | . | ||
+ | 2: Vérifiez que la numérotation des lignes est correcte dans tous les cas de | ||
+ | décodage des lignes. n, ns. nt, nst. | ||
+ | - Les essais réalisés ont été conformes | ||
+ | . | ||
+ | 3: Vérifiez que le texte reste à la bonne place dans tous les cas de décodage: | ||
+ | toute la ligne (dans la cas de la directive de compilation FULL_LINE), ou | ||
+ | texte seul. | ||
+ | - Le résultat est conforme (Sans de numérotation des lignes) | ||
+ | . | ||
+ | 4: -- Vérifiez que les tabulations sont bien prises en charge dans tous les | ||
+ | cas d'extraction des lignes. | ||
+ | -- Vérifiez de même pour les espaces. | ||
+ | - Les résultas sont conformes. Il est à noter que les tabulations créent un | ||
+ | décalage du texte avec l'option -n numéroation | ||
+ | . | ||
+ | 5: La fonction doit être éprouvée de telle sorte qu'un commentaire qui se | ||
+ | termine par le caractère de fin de fichier soit entièrement copié dans le | ||
+ | fichier cible. | ||
+ | Le caractère de fin de fichier décodé avant le(les) caractère(s) de fin de | ||
+ | commentaire doit être remplacé par un caractère de fin de ligne 0xOA. | ||
+ | - Le fichier tstshelllastline commentaire ligne; fait apparaître | ||
+ | une fin de fichier conforme. | ||
+ | . | ||
+ | 6: Le caractère de fin de fichier (EOF) NE DOIT JAMAIS APPARAÎTRE DANS LE | ||
+ | TEXTE DU FICHIER CIBLE. | ||
+ | Ceci provoquait un bug dans la version Alpha de l'application fenêtrée | ||
+ | mkdcppw à l'étape du test d'intégration. | ||
+ | - La réponse est incluse dans les tests 5: | ||
+ | - Nous avons constaté que EOF est précédé du caractère OxOA (New Line) | ||
+ | - Tous les caractères sont recopiés octets par octets. La commande mkd | ||
+ | ignore le format du texte recopié. Il n'en est pas de même pour mkdcppw | ||
+ | qui ne reconnaît que les caractères UTF-8 nécessaires à l'impression. | ||
+ | . | ||
+ | 7: La fin de fichier a été testée avec les codes '**' et le caractère 0xOA | ||
+ | précède bien la fin du fichier sans retour à la ligne. | ||
+ | Le caractère # à l'itérieur d'une chaîne de caractères n'est pas interprété | ||
+ | comme un début de commentaire conformémént aux directives. | ||
+ | De même,\#T n'est pas interprété par mkd comme étant un commentaire shell. | ||
+ | </pre> | ||
+ | {{Boîte déroulante/fin}} | ||
+ | |||
+ | == Fichier source des tests == | ||
+ | {{Boîte déroulante/début|titre=MAKE_Tests_cpp_U}} | ||
+ | <pre style="color:blue"> | ||
+ | #!/bin/bash | ||
+ | #O ../../mkd tests under Linux. | ||
+ | #O Epreuve de vérification de la fonction cpp_() avec ../../mkd | ||
+ | |||
+ | #O Copy Test_cpp_U.cc in target created file | ||
+ | cat Test_cpp_U.cc > Test_cpp_U.tstcpp | ||
+ | |||
+ | #O Test options -nstv with source "Test_cpp_U.cc" and target "*.tstcpp" | ||
+ | #O - and screen redirection to tstcpp.screen | ||
+ | |||
+ | #O 1: Test de l'option -s append target | ||
+ | echo "------------------------------------------------------------------" >> Test_cpp_U.tstcpp | ||
+ | echo "1: Test de l'option -s append target" >> Test_cpp_U.tstcpp | ||
+ | ../../mkd -savC T Test_cpp_U.cc *.tstcpp > tstcpp.screen | ||
+ | |||
+ | #O 1: Test option -t | ||
+ | echo "------------------------------------------------------------------" >> Test_cpp_U.tstcpp | ||
+ | echo "1: Test option -t" >> Test_cpp_U.tstcpp | ||
+ | ../../mkd -tavC T Test_cpp_U.cc *.tstcpp # >> tstcpp.screen | ||
+ | |||
+ | #O 1: Test option -n, with append files target and screen | ||
+ | echo "------------------------------------------------------------------" >> Test_cpp_U.tstcpp | ||
+ | echo "1: Test option -n, with append files target and screen" >> Test_cpp_U.tstcpp | ||
+ | ../../mkd -navC T Test_cpp_U.cc *.tstcpp # >> tstcpp.screen | ||
+ | |||
+ | #O 2: Test options -ns, with append files target and screen | ||
+ | echo "------------------------------------------------------------------" >> Test_cpp_U.tstcpp | ||
+ | echo "------------------------------------------------------------------" >> Test_cpp_U.tstcpp | ||
+ | echo "------------------------------------------------------------------" >> Test_cpp_U.tstcpp | ||
+ | echo "2: Test options -ns, with append files target and screen" >> Test_cpp_U.tstcpp | ||
+ | ../../mkd -nsavC T Test_cpp_U.cc *.tstcpp >> tstcpp.screen | ||
+ | |||
+ | #O 2: Test options -nt, with append files target and screen | ||
+ | echo "------------------------------------------------------------------" >> Test_cpp_U.tstcpp | ||
+ | echo "2: Test options -nt, with append files target and screen" >> Test_cpp_U.tstcpp | ||
+ | ../../mkd -ntavC T Test_cpp_U.cc *.tstcpp >> tstcpp.screen | ||
+ | |||
+ | #O 2: Test options -nst, with append files target and screen | ||
+ | echo "------------------------------------------------------------------" >> Test_cpp_U.tstcpp | ||
+ | echo "2: Test options -nst, with append files target and screen" >> Test_cpp_U.tstcpp | ||
+ | ../../mkd -nstavC T Test_cpp_U.cc *.tstcpp >> tstcpp.screen | ||
+ | |||
+ | #O 5: Independant test with -nstv "Test_cpp_U.cc" and target "*.tstcpplastline1" | ||
+ | ../../mkd -nstvwC S Test_cpp_U.cc *.tstcpplastline1 > tstcpplastline.screen1 | ||
+ | |||
+ | #O 5: Independant test with -nstv "Test_cpp_U.c2" and target file "*.tstcpplastline2" | ||
+ | ../../mkd -nstvwC T Test_cpp_U.c2 *.tstcpplastblock > tstcpplastblock.screen2 #w bug ? | ||
+ | |||
+ | #O 5: Independant test with -nstv "Test_cpp_U.c3" and target file "*.tstcpplastline2" | ||
+ | ../../mkd -nstvaC T Test_cpp_U.c3 *.tstcpplastblock >> tstcpplastblock.screen2 #w bug ? | ||
+ | |||
+ | #O 5: Independant test with -nstv "Test_cpp_U.c4" and target file "*.tstcpplastline2" | ||
+ | ../../mkd -nstvaC T Test_cpp_U.c4 *.tstcpplastblock >> tstcpplastblock.screen2 #w bug ? | ||
+ | |||
+ | |||
+ | #O Break with gedit "Test_cpp_U.tstcpp", "tstcpp.screen" | ||
+ | gedit Test_cpp_U.tstcpp tstcpp.screen Test_cpp_U.tstcpplastline1 tstcpplastline.screen1 Test_cpp_U.tstcpplastblock tstcpplastblock.screen2 | ||
+ | |||
+ | "#T chaîne " #T "#T" n'est pas reconnu comme un commentaire | ||
+ | \#T n'est pas interprété comme étant un commentaire par mkd | ||
+ | #TTest 2 tabs and lastline without NL | ||
+ | </pre> | ||
+ | {{Boîte déroulante/fin}} | ||
[[Catégorie:Générateurs de documentation]] | [[Catégorie:Générateurs de documentation]] |
Version actuelle en date du 11 mai 2013 à 13:48
Retour aux fichiers en développement →
Sommaire[masquer] |
Fichiers de la fonction shell_()
Ce programme copie les commentaires des lignes contenant le caractère # suivi par un des caractères 'Codes' entrés en paramètre. Si le caractère '#' est précédé de \ ou si il est intégré dans une chaîne, alors il n'est pas considéré comme début de commentaire.