Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++
Outils pour C & C++ Forum d'entraide sur les outils de développement pour C & C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/01/2007, 18h17   #1
Sunsawe
Membre actif
 
Inscription : mai 2005
Messages : 346
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 346
Points : 184
Points : 184
Par défaut Test unitaire : mesure de recouvrement de code

Salut à tous,

Voilà je me demandais si un tel outil existait pour le c++?
Un "quelque chose" qui permettrait de voir le code qui est réellement testé.
En fait fait comme Clover pour le java.

Merci
Sunsawe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 23h18   #2
Luc Hermitte
Expert Confirmé Sénior

 
Avatar de Luc Hermitte
 
Inscription : août 2003
Messages : 4 521
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 4 521
Points : 5 732
Points : 5 732
Il n'y a rien pour le C++ à ma connaissance. Des trucs pour GCC, des trucs pour SunWSPro, probablement pour VC aussi.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média.
Luc Hermitte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2007, 09h15   #3
quicky2000
Membre régulier
 
Inscription : décembre 2003
Messages : 86
Détails du profil
Informations personnelles :
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : décembre 2003
Messages : 86
Points : 89
Points : 89
Au boulot j ai deja utilise BullsEye: http://www.bullseye.com/

Ca marche assez bien. Si je me souviens bien c est base sur un front end g++ qui itnercepte les appels aux compilos pour instrumenter le code.
Les resultats sous formes graphiques sont assez faciles a lire et peuvent etre concatenes...
par contre c est une solution proprietaire payante

Petite precision : je l ai utilise en envirnoment Solaris ou Linux
quicky2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2007, 16h50   #4
quicky2000
Membre régulier
 
Inscription : décembre 2003
Messages : 86
Détails du profil
Informations personnelles :
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : décembre 2003
Messages : 86
Points : 89
Points : 89
Dans le tutoriel gcc on parle d un analyseur de couverture de code, ça ne repond pas a ton besoin ?
quicky2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 12h49   #5
Bayard
Membre éprouvé
 
Avatar de Bayard
 
Inscription : juin 2002
Messages : 667
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 667
Points : 415
Points : 415
Par défaut Test unitaire: mesure de recouvrement de code

Bonjour,

J'ai le même besoin, mis à part que je cherche plutôt pour du langage C. En gratuit bien sur...

Il me parait étonnant qu'en 2007, rien n'existe.

Merci
Bayard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 13h09   #6
Sanguko
Membre expérimenté
 
Inscription : février 2007
Messages : 572
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 572
Points : 576
Points : 576
gcc et gcov, ca ne te convient pas ?
Sanguko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 13h26   #7
Bayard
Membre éprouvé
 
Avatar de Bayard
 
Inscription : juin 2002
Messages : 667
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 667
Points : 415
Points : 415
Je suis sous Windows (autant pour moi j'aurais du le préciser).

L'idéal étant quelque chose qui fonctionne avec un IDE (Visual, C++Builder ou CodeBlocks...).
Bayard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 13h37   #8
Thierry Chappuis
Expert Confirmé Sénior
 
Avatar de Thierry Chappuis
 
Homme Thierry Chappuis
Enseignant Chercheur
Inscription : mai 2005
Messages : 3 481
Détails du profil
Informations personnelles :
Nom : Homme Thierry Chappuis
Âge : 36
Localisation : Suisse

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2005
Messages : 3 481
Points : 5 303
Points : 5 303
Citation:
Envoyé par Bayard
Je suis sous Windows (autant pour moi j'aurais du le préciser).

L'idéal étant quelque chose qui fonctionne avec un IDE (Visual, C++Builder ou CodeBlocks...).
Je n'ai pas vérifié, mais je crois que gcov fait partie de la distribution MinGW. Je me trompe? Je n'ai pas de Windows tout de suite sous la main pour confirmer...

Thierry
__________________
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

FAQ-Python FAQ-C FAQ-C++

+
Thierry Chappuis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 13h47   #9
Emmanuel Delahaye
Rédacteur
 
Avatar de Emmanuel Delahaye
 
Inscription : décembre 2003
Messages : 14 505
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2003
Messages : 14 505
Points : 19 321
Points : 19 321
Citation:
Envoyé par mujigka
Je n'ai pas vérifié, mais je crois que gcov fait partie de la distribution MinGW. Je me trompe? Je n'ai pas de Windows tout de suite sous la main pour confirmer...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
 
C:\>dir /s gcov.*
 Le volume dans le lecteur C s'appelle BOOT
 Le numéro de série du volume est 4C05-16D3
 
 Répertoire de C:\CodeBlocks\bin
 
24/05/2005  11:17            26 112 gcov.exe
               1 fichier(s)           26 112 octets
 
 Répertoire de C:\CodeBlocks\man\man1
 
23/05/2005  22:31            23 683 gcov.1
               1 fichier(s)           23 683 octets
 
 Répertoire de C:\Dev-Cpp\bin
 
30/01/2005  00:35            26 112 gcov.exe
               1 fichier(s)           26 112 octets
hé hé ...
__________________
Pas de Wi-Fi à la maison : CPL

Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://www.bien-programmer.fr/
http://bien-programmer.forum-actif.net/forum.htm
Emmanuel Delahaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 14h03   #10
gege2061
Rédacteur
 
Avatar de gege2061
 
Inscription : juin 2004
Messages : 5 850
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : juin 2004
Messages : 5 850
Points : 10 535
Points : 10 535
Citation:
Envoyé par Emmanuel Delahaye
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
 
C:\>dir /s gcov.*
 Le volume dans le lecteur C s'appelle BOOT
 Le numéro de série du volume est 4C05-16D3
 
 Répertoire de C:\CodeBlocks\bin
 
24/05/2005  11:17            26 112 gcov.exe
               1 fichier(s)           26 112 octets
 
 Répertoire de C:\CodeBlocks\man\man1
 
23/05/2005  22:31            23 683 gcov.1
               1 fichier(s)           23 683 octets
 
 Répertoire de C:\Dev-Cpp\bin
 
30/01/2005  00:35            26 112 gcov.exe
               1 fichier(s)           26 112 octets
hé hé ...
Sauf que ça génère des erreurs :
Code x :
1
2
3
4
5
6
7
8
9
10
convert.c:51: undefined reference to `__gcov_init'
convert.c:27: undefined reference to `__gcov_merge_add'
convert2.c:60: undefined reference to `__gcov_init'
convert2.c:19: undefined reference to `__gcov_merge_add'
erreurs.c:106: undefined reference to `__gcov_init'
erreurs.c:109: undefined reference to `__gcov_merge_add'
str.c:181: undefined reference to `__gcov_init'
str.c:22: undefined reference to `__gcov_merge_add'
main.c:339: undefined reference to `__gcov_init'
main.c:252: undefined reference to `__gcov_merge_add'
__________________
gege2061's blog
gege2061 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 14h18   #11
Emmanuel Delahaye
Rédacteur
 
Avatar de Emmanuel Delahaye
 
Inscription : décembre 2003
Messages : 14 505
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2003
Messages : 14 505
Points : 19 321
Points : 19 321
Citation:
Envoyé par gege2061
Sauf que ça génère des erreurs :
[code=x]convert.c:51: undefined reference to `__gcov_init'
convert.c:27: undefined reference to `__gcov_merge_add'
<...>
Il faut peut être ajouter une bibliothèque au projet. Au pif :
libgcov.a ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
 
C:\dev\rieu\server>cd \codeblocks
 
C:\CodeBlocks>dir /s *gcov*.*
 Le volume dans le lecteur C s'appelle BOOT
 Le numéro de série du volume est 4C05-16D3
 
 Répertoire de C:\CodeBlocks\bin
 
24/05/2005  11:17            26 112 gcov.exe
               1 fichier(s)           26 112 octets
 
 Répertoire de C:\CodeBlocks\lib\gcc\mingw32\3.4.4
 
23/05/2005  22:31             9 772 libgcov.a
               1 fichier(s)            9 772 octets
 
 Répertoire de C:\CodeBlocks\man\man1
 
23/05/2005  22:31            23 683 gcov.1
               1 fichier(s)           23 683 octets
 
     Total des fichiers listés :
               3 fichier(s)           59 567 octets
               0 Rép(s)   4 205 621 248 octets libres
 
C:\CodeBlocks>
hé hé (bis)
__________________
Pas de Wi-Fi à la maison : CPL

Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://www.bien-programmer.fr/
http://bien-programmer.forum-actif.net/forum.htm
Emmanuel Delahaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 17h33   #12
gege2061
Rédacteur
 
Avatar de gege2061
 
Inscription : juin 2004
Messages : 5 850
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : juin 2004
Messages : 5 850
Points : 10 535
Points : 10 535
Citation:
Envoyé par Emmanuel Delahaye
hé hé (bis)
ça marche super
__________________
gege2061's blog
gege2061 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 19h36   #13
Bayard
Membre éprouvé
 
Avatar de Bayard
 
Inscription : juin 2002
Messages : 667
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 667
Points : 415
Points : 415
Juste une question... comment s'en servir ?

Est-ce utilisable depuis l'interface homme machine codeblocks ?
Bayard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 19h47   #14
Emmanuel Delahaye
Rédacteur
 
Avatar de Emmanuel Delahaye
 
Inscription : décembre 2003
Messages : 14 505
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2003
Messages : 14 505
Points : 19 321
Points : 19 321
Citation:
Envoyé par Bayard
Juste une question... comment s'en servir ?

Est-ce utilisable depuis l'interface homme machine codeblocks ?
Peut être (outils externes), mais il faut commencer par apprendre à l'utiliser en mode ligne de commande, ce que je ne sais pas faire pour le moment.

Je commencerais par lire ceci :

http://c.developpez.com/tutgcc/c1580.php
__________________
Pas de Wi-Fi à la maison : CPL

Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://www.bien-programmer.fr/
http://bien-programmer.forum-actif.net/forum.htm
Emmanuel Delahaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 20h13   #15
gege2061
Rédacteur
 
Avatar de gege2061
 
Inscription : juin 2004
Messages : 5 850
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : juin 2004
Messages : 5 850
Points : 10 535
Points : 10 535
Citation:
Envoyé par Bayard
Juste une question... comment s'en servir ?
  • Suffit d'ajouter les options -fprofile-arcs et -ftest-coverage à la compilation et -lgcov (sûrement associé à -L puisque la bibliothèque est dans le répertoire de gcc) pour l'édition des liens.
  • Une fois compilé, tu exécute ton programme
  • Tu obtiens deux nouveaux fichiers par fichier sources (extension gcov et gcda)
  • Exécute la commande gcov dans ce répertoire suivie du nom du fichier source à analyser (sans extension)
__________________
gege2061's blog
gege2061 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 21h36   #16
Bayard
Membre éprouvé
 
Avatar de Bayard
 
Inscription : juin 2002
Messages : 667
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 667
Points : 415
Points : 415
Bon, ben j'ai enfin pris 5 mn pour essayer: cela fonctionne.

Est-ce que quelqu'un sais comment obtenir un résutat OK(100%)/KO plutôt
que d'avoir à tester "visuellement" toutes les lignes

Citation:
function XXX called 1 returned 100% blocks executed 100%
jusqu'à trouver une ligne
Citation:
function XXX called 1 returned 100% blocks executed 2%
Bayard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2010, 11h42   #17
Sunsawe
Membre actif
 
Inscription : mai 2005
Messages : 346
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 346
Points : 184
Points : 184
depuis, j'ai utilisé gcov et lcov aussi.
Merci pour les réponses.
Sunsawe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2012, 10h41   #18
Lyadrielle
Futur Membre du Club
 
Femme Chloé Garcia
Étudiant
Inscription : avril 2012
Messages : 36
Détails du profil
Informations personnelles :
Nom : Femme Chloé Garcia
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : avril 2012
Messages : 36
Points : 17
Points : 17
Par défaut Re :

j'en profite pour vous poser quelques questions sur gcov également ...

J'ai créé un .bat dans lequel j'ai écrit ceci :

Code :
1
2
3
4
5
6
7
8
 
echo script_genGcov.bat
 
sparc-threadx-gcov.exe -fprofile-arcs -ftest-coverage -lgcov C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\blocks\memory\GsbMemoryTest.cpp
 
sparc-threadx-gcov.exe C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\blocks\memory\GsbMemoryTest
 
pause
Voici ce que j'obtiens à la compilation et après ajout de libgcov.a dans mon projet

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
C:\opt\eclipse>echo script_genGcov.bat
script_genGcov.bat
 
C:\opt\eclipse>sparc-threadx-gcov.exe -fprofile-arcs -ftest-coverage -lgcov C:\home\cgarcia\workspace\GericosBlocks\sources\gerico
s\blocks\memory\GsbMemoryTest.cpp
sparc-threadx-gcov.exe: invalid option -- r
Usage: gcov [OPTION]... SOURCEFILE
 
Print code coverage information.
 
  -h, --help                      Print this help, then exit
  -v, --version                   Print version number, then exit
  -a, --all-blocks                Show information for every basic block
  -b, --branch-probabilities      Include branch probabilities in output
  -c, --branch-counts             Given counts of branches taken
                                    rather than percentages
  -n, --no-output                 Do not create an output file
  -l, --long-file-names           Use long output file names for included
                                    source files
  -f, --function-summaries        Output summaries for each function
  -o, --object-directory DIR|FILE Search for object files in DIR or called FILE
  -p, --preserve-paths            Preserve all pathname components
  -u, --unconditional-branches    Show unconditional branch counts too
 
For bug reporting instructions, please see:
<URL:http://gcc.gnu.org/bugs.html>.
 
C:\opt\eclipse>sparc-threadx-gcov.exe C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\blocks\memory\GsbMemoryTest
C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\blocks\memory\GsbMemoryTest.gcno:cannot open graph file
 
C:\opt\eclipse>pause
Appuyez sur une touche pour continuer...
Je n'ai la création d'aucun fichier et donc il est impossible de les ouvrir pour les exécuter.

De plus, j'ai l'erreur 'invalid option -- r' que je comprends pas.

J'ai pourtant suivi les phases d'utilisation, il me semble.
J'ai du oublier quelque chose ou avoir mal compris.

Merci d'avance pour votre aide.
Lyadrielle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h42.


 
 
 
 
Partenaires

Hébergement Web