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

C Discussion :

creation de "bouchons"


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Par défaut creation de "bouchons"
    Bonjour,

    j'ai un code à 90% en C et le reste en C++.
    Je suis en train de regarder pour des framework pour faire des tests unitaires.

    Je dois pouvoir creer des "bouchons" pour éviter des appels de fonctions ou librairies qui prendraient trop de temps.

    Cependant, je veux pouvoir tester l'ensemble de mon code à savoir si les fonctions sont bien appelées mais sans pour autant les executer.

    Pour resumer, je veux tester les fonctionnalités de mon code sans faire une veritable execution car c'est un produit qu'il ne faut pas utiliser en periode de tests normalement.

    Merci d'avance.

    Ludovic

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par kanonji
    Je dois pouvoir creer des "bouchons" pour éviter des appels de fonctions ou librairies qui prendraient trop de temps.
    Ben oui, pratique courante. Quelle est la question ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Par défaut
    La question est : comment faire ces bouchons ?
    Faire de fausses libs qui seraient appellées avec un minimum d'infos dedans ?

    Mon questionnement principal est surtout : comment faire ces bouchons sans que cela empeche de voir si les fonctions sont bien appelées sans pour autant etre executées ?

    Je m'exprime mal peut etre mais ce que je veux c'est verifier si mon programme effectue bien ce qu'on attend de lui dans les divers cas possibles.
    Et pour se faire, je compte utiliser une framework normalement et je souhaite egalement mettre des bouchons pour limiter "les activités" du code.

    Je suis loin d'etre un professionnel des tests unitaires et de leurs travers donc j'espere avoir mieux clarifier mon probleme.

    Merci d'avance.

    Ludovic

  4. #4
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Avec python et swig

    www.python.org

    http://www.swig.org

    http://wikipython.flibuste.net/moin....358eaec0f177f3

    Quand on y a gouté, les tests U en C sont devenus un plaisir.

    Bon week-end

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par kanonji
    La question est : comment faire ces bouchons ?
    Faire de fausses libs qui seraient appellées avec un minimum d'infos dedans ?
    C'est un peu ça, mais c'est pas 'faux', c'est 'simulé'.
    Mon questionnement principal est surtout : comment faire ces bouchons sans que cela empeche de voir si les fonctions sont bien appelées sans pour autant etre executées ?
    Si le code est modulaire, on remplace un des modules à simuler par un module de simulation (ce que tu appelle 'bouchon'). Si le code n'est pas modulaire, ... tu ouvres la fenêtre et tu sautes ... (C'est du 2ème degré, OK ?)
    Je m'exprime mal peut etre mais ce que je veux c'est verifier si mon programme effectue bien ce qu'on attend de lui dans les divers cas possibles.
    Et pour se faire, je compte utiliser une framework normalement et je souhaite egalement mettre des bouchons pour limiter "les activités" du code.

    Je suis loin d'etre un professionnel des tests unitaires et de leurs travers donc j'espere avoir mieux clarifier mon probleme.
    En général, dans un 'bouchon', on met un printf() qui montre :
    • le nom de la fonction
    • la valeur (et éventuellement le nom) des paramètres

    on retourne une valeur cohérente 'normale', ou on met du code un peu plus élaboré qui simule tout ou partie de la fonction.

    on peut aussi compter des choses, enregistrer dans de la mémoire, dans un flux...

    C'est difficile d'être plus précis sans donner un cas réel. C'est un sujet intéressant que je connais bien (on m'appelait 'simulator', car tout le code embarqué que j'écrivais était à 95% testé sur PC avant déscente sur la cible réelle), et j'aimerais bien avancer dessus, il il faut du concret.

  6. #6
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    swig crée automatiquement les bouchons.

    python permet via un langage de script d'appeler les fonctions en C.

    Aprésn il suffit, par exemple, pour la fonction unsigned char toto(unsigned char param) de créer le fichier test.py

    toto(0)
    toto(1)
    toto(255)
    bref de se consacrer aux tests.
    Je pense que l'on doit pouvoir utiliser swig sans python, mais je ne l'ai pas fait et je trouverais cela dommage.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Par défaut
    Merci bien pour toutes ces reponses.

    Je comprends maintenant ce que ce sont les bouchons et leur utilités.
    Dans mon cas, je compte inserer des bouchons pour limiter l'utilisation de données confidentielles pour mes tests et pour limiter la durée de ces tests (le code premier pouvant etre assez long au niveau de l'execution).

    Ludovic

    PS : je ne coche pas encore le Résolu pour pouvoir avoir encore des informations le moment venu.

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

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