2009-11-01 7 views
0

Je voulais intégrer gcc et commande gcov dans le cadre du script expect ..Comment intégrer gcc et commande gcov en expect scénario

J'ai essayé comme ..

#!/usr/bin/expect -f 
send ":gcc -fprofile-arcs -ftest-coverage c.c\r" 

send ":gcov c.c\r" 

Mais il ne marche pas courir et execute les commandes.

Avez-vous un aperçu de cela? Merci.


Le problème que j'ai, c'est que je ne suis pas sûr de savoir comment intégrer la commande au bon endroit. Tout ce que je sais était il y a un cas de test donnés comme suit: -

#!/usr/bin/expect -f 
spawn $env(SUBJECTS_SRC_DIR)/vim -u $env(HOME)/.vimrc $env(TESTS_SRC)/copy1 
expect "copy1" 
sleep 1 
send ":se lines=24\r" 
send ":se columns=80\r" 
send ":redir >> move_2.1.1.out\r" 
send "$" 
send "\007" 
send "5h" 

send "\007" 
send ":redir END\r" 

send ":wq\r" 
expect 
exit -onexit { 
interact 
} 

Ceci est contenu dans un fichier spécifique nommé fichier_test. Une fois ce fichier de test exécuté en script Perl, une sortie est générée.

Quelque chose comme ci-dessous:

$IN_DIR/$SCRIPT_FILE; 

$outfile = "$OUT_DIR/t$scriptCounter"; 

j'ai essayé de mettre la commande attendre que vous avez suggéré plus tôt dans un fichier séparé nommé et passé à une nouvelle variable nommée ... $MY_FILE dans $IN_DIR. Puis j'ai passé le $IN_DIR/$MY_FILE;

mais il ne fait rien. Les fichiers .gcno ne sont pas exécutés, donc ainsi .gcov.

Répondre

1

Expect est utile pour interactif programmes, pas pour les utilitaires de ligne de commande. Si vous voulez simplement exécuter gcc et gcov dans le cadre du script expect, faites ceci:

exec gcc -fprofile-arcs -ftest-coverage c.c 
exec gcov c.c 

BTW, en cours d'exécution gcov sans exécuter l'exécutable est inutile: vous devez produire les données de couverture d'exécution avant de pouvoir l'analyser.