Как реализовать stdin, stdout обертку?

У меня есть интерактивная программа, которая запускает stdin и stdout. Мне нужно создать оболочку, которая будет отправлять X 's stdin, проверьте, что он печатает Y, а затем перенаправляет оберткуs stdin и stdout для программирования 's stdin и stdout так же, как программа будет выполняться напрямую.

Как это реализовать? X и Y могут быть жестко закодированы. Bash? Python?

Редактировать: Я могу'запустить программу дважды. Это должен быть один экземпляр. Вот псевдокод:

def wrap(cmd, in, expected_out):
  p = exec(cmd)
  p.writeToStdin(in)
  out = p.readBytes (expected_out.size())
  if (out != expected_out) return fail;
  # if the above 4 lines would be absent or (in == "" and out == "")
  # then this wrapper would be exactly like direct execution of cmd
  connectpipe (p.stdout, stdout)
  connectpipe (stdin, p.stdin)
  p.continueExecution() 

Ответы на вопрос(4)

Ваш ответ на вопрос