Ожидаемый инструмент для тестирования двоичного протокола - PullRequest
2 голосов
/ 17 января 2010

Я бы хотел написать тесты для простого байтово-ориентированного протокола, используя что-то вроде Expect .Тестовые сценарии будут выглядеть как простой поток:

send "data"
expect "data"

(где отправлять записи в стандартный вывод и ожидать чтения достаточно от стандартного ввода, выход, если он не совпадает.)

Iне может использовать сам ожидание, потому что он предназначен для буферизованных, линейно-ориентированных взаимодействий.Сопоставление с шаблоном с помощью grep или awk отсутствует по той же причине.

Есть ли инструмент или библиотека UNIX, которые я могу использовать?Еще лучше, если он стандартный и переносимый, поскольку его необходимо интегрировать с существующей программой.

Ответы [ 2 ]

1 голос
/ 17 января 2010

Несколько уродливым решением было бы написать небольшой скрипт на perl или python, который преобразует двоичный поток в текстовые шестнадцатеричные числа, а затем использует Expect для работы с ним.

0 голосов
/ 18 января 2010

pexpect должно позволить вам без проблем использовать бинарный файл (строки байтов), если вы согласны с Python для логики - и он чистый Python и переносим на все достаточно unix-y платформы ( в основном один с pty's ;-). Точно так же регулярные выражения Python и другие манипуляции с байтовыми строками не имеют проблем ни с какой двоичной строкой; и модули стандартной библиотеки Python, такие как struct и array, упрощают манипулирование такими двоичными байтовыми строками и их преобразование назад и вперед в другой тип значимых представлений для данных.

...