我对TCL很新,但是我正在编写一个脚本,它将在文件中搜索测试用例并过滤掉具有特定关键字的脚本,并使用exec
运行这些测试。它运行第一次测试正常,但一旦完成它开始再次运行相同的测试并立即失败导致我的脚本结束。这是运行测试的脚本的样子
exec make clean
exec make depends
set runtests [exec bsub -I -q lin_i make test_run_test_here SEED=1 VPDDUMP=on]
set test [lsearch -all -inline $runtest "TEST COMPLETED SUCCESSFULLY: test_run_test_here"]
puts $test
它在测试中运行正常,但在我收到此消息之后
<<Waiting for dispatch ...>>
<<Starting on testserver01>>
while executing
"exec bsub -I -q lin_i make test_run_test_here SEED=1 VPDDUMP=on"
invoked from within
"set runtests [exec bsub -I -q lin_i make test_run_test_here SEED=1 VPDDUMP=on]"
(file "./test.tcl" line 71)
答案 0 :(得分:1)
如果被调用的命令向stderr输出任何内容,exec
命令认为它是失败的,即使它具有成功的退出状态:
如果任何命令写入其标准错误文件并且未重定向标准错误并且未指定-ignorestderr,则exec将返回错误;
您想使用-ignorestderr
选项。
set runtests [exec -ignorestderr bsub ...