Мне нужно вызвать сценарий Perl из теста E, который я написал. Мне нужно создать скрипт C для вызова ini-файла, который создаст файл конфигурации, который мне нужен для теста, который я пишу. Я хочу, чтобы тест вызывал Perl, который будет обрабатывать процесс ini->C->config, а затем продолжил тест. Любые идеи?
выполнить perl из specman
Ответы (1)
Вы можете выполнять системные вызовы или команды оболочки с помощью функций system
или output_from
. Это можно использовать для выполнения произвольных команд, включая вызовы Perl. Функция system
возвращает возвращаемое значение вызова оболочки, тогда как output_from
возвращает стандартный вывод (и, возможно, стандартную ошибку... проверьте свои документы...).
Примеры:
var ret := system("echo hello world");
печатает на экран/файл журнала Specman
hello world
Принимая во внимание, что output_from
используется как:
var std_out := output_from("echo hello world");
print std_out;
и печатает:
std_out = "hello world"
Функции принимают строку, поэтому вы можете создать аргументы, используя функции append()
и appendf()
.
Небольшое замечание: вы можете напрямую обращаться к интерфейсу командной строки симулятора, используя simulator_command(cmd_str)
. Я использовал это раньше для разговора с VCS Synopsys.
simulator_command("quit");
output_from_check()
— работает так же, как output_from()
, за исключением того, что если команда возвращает не ноль, она выдает ошибку. Если вам нужно иметь возможность обрабатывать состояние ошибки, вам нужно обернуть его обработчиком исключений try { } else { }
. Это не позволит вам получить точное возвращаемое значение, но позволит вам обнаруживать и обрабатывать неудачные системные вызовы.
- person Ross Rogers; 17.11.2010
E
? Вам действительно нужен E для вызова Perl и Perl для вызова C (что такое сценарий C?) для создания файла конфигурации? Упрощение — мое предложение. - person pmg   schedule 14.11.2010