Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 18 sur 18
  1. #1
    Membre actif
    Inscrit en
    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

  2. #2
    Expert Confirmé Sénior
    Avatar de Luc Hermitte
    Profil pro
    Inscrit en
    août 2003
    Messages
    4 638
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : août 2003
    Messages : 4 638
    Points : 5 865
    Points
    5 865

    Par défaut

    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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    décembre 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : décembre 2003
    Messages : 88
    Points : 90
    Points
    90

    Par défaut

    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

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    décembre 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : décembre 2003
    Messages : 88
    Points : 90
    Points
    90

    Par défaut

    Dans le tutoriel gcc on parle d un analyseur de couverture de code, ça ne repond pas a ton besoin ?

  5. #5
    Membre éprouvé Avatar de Bayard
    Inscrit en
    juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 673
    Points : 421
    Points
    421

    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

  6. #6
    Membre expérimenté
    Inscrit en
    février 2007
    Messages
    572
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 572
    Points : 576
    Points
    576

    Par défaut

    gcc et gcov, ca ne te convient pas ?

  7. #7
    Membre éprouvé Avatar de Bayard
    Inscrit en
    juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 673
    Points : 421
    Points
    421

    Par défaut

    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...).

  8. #8
    Expert Confirmé Sénior Avatar de Thierry Chappuis
    Homme Profil pro Thierry Chappuis
    Enseignant Chercheur
    Inscrit en
    mai 2005
    Messages
    3 481
    Détails du profil
    Informations personnelles :
    Nom : Homme Thierry Chappuis
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : mai 2005
    Messages : 3 481
    Points : 4 737
    Points
    4 737

    Par défaut

    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++

    +

  9. #9
    Rédacteur
    Avatar de Emmanuel Delahaye
    Profil pro
    Inscrit en
    décembre 2003
    Messages
    14 505
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2003
    Messages : 14 505
    Points : 18 069
    Points
    18 069

    Par défaut

    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

  10. #10
    Rédacteur
    Avatar de gege2061
    Inscrit en
    juin 2004
    Messages
    5 845
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations forums :
    Inscription : juin 2004
    Messages : 5 845
    Points : 9 971
    Points
    9 971

    Par défaut

    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'

  11. #11
    Rédacteur
    Avatar de Emmanuel Delahaye
    Profil pro
    Inscrit en
    décembre 2003
    Messages
    14 505
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2003
    Messages : 14 505
    Points : 18 069
    Points
    18 069

    Par défaut

    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

  12. #12
    Rédacteur
    Avatar de gege2061
    Inscrit en
    juin 2004
    Messages
    5 845
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations forums :
    Inscription : juin 2004
    Messages : 5 845
    Points : 9 971
    Points
    9 971

    Par défaut

    Citation Envoyé par Emmanuel Delahaye
    hé hé (bis)
    ça marche super

  13. #13
    Membre éprouvé Avatar de Bayard
    Inscrit en
    juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 673
    Points : 421
    Points
    421

    Par défaut

    Juste une question... comment s'en servir ?

    Est-ce utilisable depuis l'interface homme machine codeblocks ?

  14. #14
    Rédacteur
    Avatar de Emmanuel Delahaye
    Profil pro
    Inscrit en
    décembre 2003
    Messages
    14 505
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2003
    Messages : 14 505
    Points : 18 069
    Points
    18 069

    Par défaut

    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

  15. #15
    Rédacteur
    Avatar de gege2061
    Inscrit en
    juin 2004
    Messages
    5 845
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations forums :
    Inscription : juin 2004
    Messages : 5 845
    Points : 9 971
    Points
    9 971

    Par défaut

    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)

  16. #16
    Membre éprouvé Avatar de Bayard
    Inscrit en
    juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 673
    Points : 421
    Points
    421

    Par défaut

    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

    function XXX called 1 returned 100% blocks executed 100%
    jusqu'à trouver une ligne
    function XXX called 1 returned 100% blocks executed 2%

  17. #17
    Membre actif
    Inscrit en
    mai 2005
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 346
    Points : 184
    Points
    184

    Par défaut

    depuis, j'ai utilisé gcov et lcov aussi.
    Merci pour les réponses.

  18. #18
    Membre à l'essai
    Femme Profil pro Chloé Garcia
    Étudiant
    Inscrit en
    avril 2012
    Messages
    59
    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 : 59
    Points : 24
    Points
    24

    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.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •