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 :

Des tests en Perl pour son prog en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Par défaut Des tests en Perl pour son prog en C
    Bonjour,
    Dans le cadre d'un projet d'univ on est oblige d'ecrire des tests en perl pour du code C.
    J'ai sais qu'il faut utiliser le module test::More ou Simple mais le probleme c'est je suis en manque de doc sachant aussi que j'ai deja visite auelaue site par exemple :
    http://articles.mongueurs.net/magazines/linuxmag88.html
    http://search.cpan.org/dist/Test-Sim...t/Tutorial.pod
    mais qui ne donne pas d'exemple d'interaction avec d'autres langages.
    bref, j'ai une fonction foo() qui prend en argument une chaine *str et qui me l'affiche a l'ecran (c'est qu'un exemple)
    comment dois je faire pour ecrire les tests de cette fonction en PERL?
    J'ai deja une idee c'est de sauver la sortie standard dans un fichier pour ensuite la comparer avec le resultat souhaite.

    franchement, si quelqu'un a un exemple sur ca je suis preneur merci beaucoup.

    Merci de votre aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    J'ai sous la main des tests de fonctions C justement écrits en Perl avec les modules que tu cites. Toutefois, pour des raisons de confidentialité, je ne peux pas te les passer mais je peux répondre à tes questions.

    Le problème n'est pas vraiment d'écrire les tests en Perl mais d'interfacer tes fonctions C avec le Perl. Vu le nombre de fonctions que nous avions à interfacer, nous avons utilisé SWIG. Oriente donc ta recherche sur SWIG http://www.swig.org/. En fait SWIG, s'appuie sur perlxs qui est le coeur de l'interfaçage Perl/C. SWIG ne fait qu'automatiser la génération du code.

    Brève description de la démarche avec swig.

    Ecriture d'un fichier swig interface interface.i
    Génération avec swig du code (swig -perl5 interface.i)
    Génération de la librairie d'interfaçage (perl Makefile.PL ; make)
    Installation de la librairie d'interfaçage - je n'ai jamais réussi à faire sans (make install)
    Ecriture du fichier de tests (tests.pl)
    Lancement des tests (perl tests.pl)

    Avec ceci, tu as les grandes étapes à suivre. Tu pourras toujours me redemander quand tu bloqueras sur un point.

  3. #3
    Membre confirmé Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Par défaut
    Bonjour,

    Je te remercie enormement pour le lien je savais pas que le swig existait.
    alors je t'explique en gros ce que je veux faire :
    j'ai mon executable qui est ./toto et que dans lequelle je tapp des command
    open <> as <> en gros mon prog charge des lib dynamique et les decharge et vous fait un listing des fonctions qui contiennent ... voici grossomodo mon exec.
    comment puis je faire mes test ?
    ce que j'envisage de faire c'est d'ecrire un script perl qui lance mon exec et qui lui balance des commandes puis dans un fichier je metterai les resultats attendus pour chaque commande ainsi il me restera plus qu'à faire une comparaison entre mon fichier "resultat" et le stdout.

    qu'est ce que vous en penser, c'est la premiere fois que j'ai à faire mes tests avec du perl (par obligation !).
    sinon vive junit :p

    merci beaucoup de ton aide que j'apprecie puisqu'il n'y a pas bcp d'exemple ladessus.

    ceci dit je vais regarder le swig si ça repond à mon besoin. merci.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Citation Envoyé par AliJava Voir le message
    ce que j'envisage de faire c'est d'ecrire un script perl qui lance mon exec et qui lui balance des commandes puis dans un fichier je metterai les resultats attendus pour chaque commande ainsi il me restera plus qu'à faire une comparaison entre mon fichier "resultat" et le stdout.
    Avec swig, je te propose de tester chacune des fonctions d'une éventuelle librairie sur laquelle s'appuierait ton exécutable... mais pas l'exécutable.
    Ce n'est donc peut-être pas ce que tu cherches...

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/03/2015, 17h39
  2. Twitter annonce des règles plus strictes pour son API
    Par Hinault Romaric dans le forum APIs Réseaux sociaux
    Réponses: 20
    Dernier message: 09/07/2012, 17h12
  3. Twitter annonce des règles plus strictes pour son API
    Par Hinault Romaric dans le forum Actualités
    Réponses: 20
    Dernier message: 09/07/2012, 17h12
  4. Réponses: 3
    Dernier message: 07/12/2007, 18h12
  5. Réponses: 3
    Dernier message: 02/09/2002, 18h49

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