Я хочу запустить регрессию с помощью сценария оболочки, который должен запускать каждый тест с помощью команды make
. Ниже приведена простая версия моего сценария:
#!/bin/sh
testlist="testlist.txt"
while read line;
do
test_name=$(echo $line | awk '{print $1}')
program_path=$(echo $line | awk '{print $2}')
make sim TEST_NAME=$test_name PROGRAM_PATH=$program_path
done < "$testlist"
Проблема с приведенным выше сценарием заключается в том, что когда команда make запускает программу, сценарий переходит на следующую итерацию, не ожидая завершения этой программы в предыдущей итерации и продолжает читать следующую строку из файла.
Есть ли какая-либо опция в утилите make, чтобы убедиться, что она ожидает завершения программы? Может быть, я упускаю что-то еще.
Это связанная часть Makefile:
sim:
vsim -i -novopt \
-L $(QUESTA_HOME)/uvm-1.1d \
-L questa_mvc_lib \
-do "add wave top/AL_0/*;log -r /*" \
-G/path=$(PROGRAM_PATH) \
+UVM_TESTNAME=$(TEST_NAME) +UVM_VERBOSITY=UVM_MEDIUM -sv_seed random