如何模拟特定进程的实际输入(Linux / OSX)

时间:2016-08-28 02:26:47

标签: linux macos shell unit-testing

所以标题单独说话,但让我们更具体一点。

我们说我有一个"互动"程序谁读取STDIN每个用户输入"非正统"模式。 这个程序没有任何参数,你不能给他命令,直到你进入它。

tig命令为例或像csh这样的shell(好的csh可以接受参数,但让他们说他不是这个例子)。

假设我想在一些特定输入之后将行为单元测试到程序中。

什么是在Linux和OSX上工作最干净的方式,谁不需要sudo ,将数据发送到程序并将结果输入我的单元测试程序?

到目前为止,我尝试了什么:

linux

printf "\E[B" (key arrow down) > /proc/$(pid)/fd/0

OSX

printf "\E[B" > /dev/$(tty)
printf "\E[B" > /dev/ustdin

但是当我执行这种命令时,我可以看到字符串进入我的进程的tty。但这个过程并不像他在STDIN上收到这些数据那样。

ex for csh:

printf "ls\x10\n" > /proc/$(pid)/fd/0

结果:

csh: ls

即使我试图让"返回"通过手动输入,csh没有收到ls命令。

0 个答案:

没有答案