Как возвратиться, порожденный код выхода процесса в Ожидают сценарий?

Я использую, ожидают для выполнения сценариев тестирования. Тесты возвращают успех/отказ через код выхода. Но ожидайте возврат эквивалентный код выхода. Как сделать, ожидают возврат надлежащий статус выхода?

Мои тесты являются sql скриптами, запущенными с psql (postgresql командный процессор). Так как psql не позволяет указывать пароль базы данных как параметр командной строки, ожидать, что сценарии делают это.

Так, мой ожидать сценарий похож:

spawn $SPAWN_CMD
expect {
        -re "Enter password for new role:" {
                send "$PWPROMPT\n"
                exp_continue
        } -re "Enter it again:" {
                send "$PWPROMPT\n"
                exp_continue
        } -re "Password(.*)" {
                send "$PASSWORD\n"
                exp_continue
        } -re "Password(.*):" {
                send "$PASSWORD\n"
                exp_continue
        } eof
}
22
задан seas 21 July 2010 в 13:05
поделиться

1 ответ

Вы уже ожидаете eof в конце цикла, вам просто нужно использовать wait и catch Результат:

spawn true
expect eof
catch wait result
exit [lindex $result 3]

Выход с 0.

spawn false
expect eof
catch wait result
exit [lindex $result 3]

Выход с 1.

31
ответ дан 29 November 2019 в 05:15
поделиться