Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在expect脚本中嵌入gcc和gcov命令_Gcc_Expect - Fatal编程技术网

如何在expect脚本中嵌入gcc和gcov命令

如何在expect脚本中嵌入gcc和gcov命令,gcc,expect,Gcc,Expect,我想在expect脚本中嵌入gcc和gcov命令 我试着 #!/usr/bin/expect -f send ":gcc -fprofile-arcs -ftest-coverage c.c\r" send ":gcov c.c\r" 但是它不运行和执行命令 对此有什么见解吗?谢谢 我的问题是我不确定如何将命令嵌入到正确的位置。我只知道有一个给定的测试用例,如下所示:- #!/usr/bin/expect -f spawn $env(SUBJECTS_SRC_DIR)/vim -u $en

我想在expect脚本中嵌入gcc和gcov命令

我试着

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

send ":gcov c.c\r"
但是它不运行和执行命令

对此有什么见解吗?谢谢


我的问题是我不确定如何将命令嵌入到正确的位置。我只知道有一个给定的测试用例,如下所示:-

#!/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
}
这包含在一个名为testfile的特定文件中。在Perl脚本中执行此测试文件后,将生成一个输出

如下所示:

$IN_DIR/$SCRIPT_FILE;

$outfile = "$OUT_DIR/t$scriptCounter";
我尝试将您先前建议的expect命令放在一个名为的单独文件中,并将其传递给名为…
$MY\u file
的新变量in
$in\u DIR

然后,我通过了
$IN_DIR/$MY_FILE

但它什么也没做。.gcno文件也不会执行,因此.gcov.

Expect对交互式程序有用,而不是命令行实用程序。如果您只想在expect脚本中执行
gcc
gcov
,请执行以下操作:

exec gcc -fprofile-arcs -ftest-coverage c.c
exec gcov c.c
顺便说一句,在不运行可执行文件的情况下运行
gcov
是徒劳的:您需要生成运行时覆盖率数据,然后才能对其进行分析