IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse C & C++ Discussion :

Utilisation de gcov


Sujet :

Eclipse C & C++

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 59
    Points : 50
    Points
    50
    Par défaut Utilisation de gcov
    Bonjour,

    Je cherche à faire une couverture de tests sur cette fonction-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #include "GsbMemory.hpp"
     
    GsbAccessError::GsbAccessErrorEnum GsbMemory::copy(void *destination, const void *source, unsigned int size) {
     
    	GsbAccessError::GsbAccessErrorEnum res = GsbAccessError::ACCESS_SUCCESSFUL;
     
    	if (destination == 0 || source == 0) {
    		res = GsbAccessError::NULL_POINTER;
    	}
     
    	else {
     
    		// Size is not a multiple of 4 and source and destination addresses are not aligned with 32 bits
    		// -> copy byte by byte
     
    		if (((unsigned int) source | (unsigned int) destination | size) & (sizeof(unsigned int) - 1)){
     
    			unsigned char * pS = (unsigned char *) source;
    			unsigned char * pD = (unsigned char *) destination;
    			unsigned char * pE = (unsigned char *) (((unsigned char *) source) + size);
     
    			while (pS != pE) {
    				*(pD++) = *(pS++);
    			}
    		}
     
    		// Size is a multiple of 4 and source and destination addresses are aligned with 32 bits
    		// -> copy 4 bytes by 4 bytes
     
    		else {
     
    			if ((size >> 2) & 1) {
     
    				unsigned int *pS = (unsigned int *) source;
    				unsigned int *pD = (unsigned int *) destination;
    				unsigned int *pE = (unsigned int *) (unsigned char *) (((unsigned char *)source) + size);
     
    				while (pS != pE) {
    					*(pD++) = *(pS++);
    				}
     
    			}
     
    			// Size is a multiple of 8 and source and destination addresses are aligned with 32 bits
    			// -> copy 8 bytes by 8 bytes
     
    			else {
     
    				long long * pS = (long long *) source;
    				long long * pD = (long long *) destination;
    				long long * pE = (long long *) (unsigned char *) (((unsigned char *)source) + size);
     
    				while (pS != pE) {
    					*(pD++) = *(pS++);
    				}
    			}
    		}
    	}
     
    	return res;
    }
    Sachant que j'ai déjà effectué des tests unitaires avec CxxTest (et qu'ils fonctionnent), je voulais optimiser la chose en utilisant gcov.

    J'ai créé un .bat dans mon projet dans lequel j'ai mis ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    echo script_genGcov.bat
     
    sparc-threadx-gcov.exe -fprofile-arcs -ftest-coverage 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.cpp
     
    pause
    Je suis allée voir dans la documentation et j'ai recopié les mêmes options mais apparemment cela ne fonctionne pas très bien -.-

    Voici ce que j'obtiens lorsque je lance le .bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\block
    s\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.cpp
    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...
    Ces lignes là me font douter :
    - invalid option -- r (je n'en ai pas mis, si ?)
    - GsbMemoryTest.gcno:cannot open graph file (je ne vois pas le fichier .gcno, même après actualisation dans mon projet et je ne vois pas ce qui ne va pas quant à l'ouverture du fichier)

    Peut-être ai-je mal compris une étape dans la mise en place ?

    Merci par avance pour votre aide

  2. #2
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 59
    Points : 50
    Points
    50
    Par défaut Re :
    Quelqu'un aurait-il déjà utilisé cet outil ?

    Je bloque totalement et ne peux avancer dans mes autres tâches =/

    Merci par avance pour votre aide

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo