ncurses - ожидайте: сон выполняется не вовремя - PullRequest
0 голосов
/ 08 февраля 2010

У меня есть несколько приложений ncurses, которые мне нужно автоматизировать для повторного тестирования. Я помещаю команду "sleep" между командами "send". Тем не менее, я вижу, что все спящие выполняются в начале до загрузки экрана. ожидаем объединяет посылки (я вижу, что в нижней части экрана во время сна) затем выдает их вместе.

Я попытался отправить все ключи с помощью «send -s» или «send -h». Это незначительно помогает. Я заменил «-f» в строке 1 на «-b» - опять же небольшая разница.

Почему "сон" не останавливается в нужное время. Кстати, в моих программах есть цикл getc (), поэтому я не могу использовать команду «ожидать». Я тоже это попробовал.

#!/usr/bin/expect -f
spawn ruby testsplit.rb
#expect
set send_human {3 3 5 5 7}
set send_slow {10 1}
exp_send -s -- "--"
exec sleep 3
send -s "+"
send -s "="
sleep 1
send -h -- "-"
send -h -- "-"
sleep 1
send -h  -- "v"
interact

1 Ответ

0 голосов
/ 09 февраля 2010

Я полагаю, что вам нужно подождать, пока ваша программа ruby ​​запустится, прежде чем продолжить посылку и сон. Есть ли какая-нибудь строка, которую выводит программа ruby ​​после запуска (например, «готово»)? Если это так, то в том месте, где вы ожидали закомментировать, я бы попробовал expect "ready", чтобы Expect дождался запуска программы ruby, прежде чем продолжить.

...