我正在编写一个 JUnit 测试来测试我的应用程序。该应用程序是用 Java 编写的,并使用 purejavacomm 库。为了测试串行解析器,我想设置一个虚拟串行端口,以便测试可以与解析器通信。除了简单解析之外,它还会在可用时动态连接到串行端口,所以我不想使用,比如说PipedInputStream
.
ttyS
此库仅查找以、ttyUSB
或.开头的设备文件ttyACM
。正因为如此,我不能做常规(这会产生串行端口/dev/pts/x
):
socat -d -d pty,raw,echo=0 pty,raw,echo=0
我试着做:
socat /dev/ttyS20 /dev/ttyS21
但它不起作用。它不会退出,也不会打印错误。我尝试/dev/ttyS20
用屏幕连接,但它只是说,[screen is terminating]
.
我查看了ttyS20
(和 21)的用户权限,他们都有组dialout
(用户:root),我的用户在(克里斯)中。
我是否忽略了具有权限的东西?有没有更好的方法可以一起完成这一切?