Estou escrevendo um teste JUnit para testar meu aplicativo. O aplicativo é escrito em Java e usa a biblioteca purejavacomm. Para testar o analisador serial, quero configurar uma porta serial virtual para que o teste possa se comunicar com o analisador. Além de simplesmente analisar, ele também se conecta dinamicamente à porta serial quando ela fica disponível, então eu não quero usá-la, digamos, um PipedInputStream
.
Esta biblioteca procura apenas arquivos de dispositivos que começam com ttyS
, ttyUSB
ou ttyACM
. Por causa disso, não consigo fazer o regular (o que produziria portas seriais em /dev/pts/x
):
socat -d -d pty,raw,echo=0 pty,raw,echo=0
Eu tentei fazer:
socat /dev/ttyS20 /dev/ttyS21
mas não funciona. Não sai ou imprime um erro. Eu tentei conectar-me a /dev/ttyS20
com a tela, mas diz apenas, [screen is terminating]
.
Eu olhei para as permissões de usuário para ttyS20
(e 21), e ambos têm o grupo, dialout
(user: root), no qual meu usuário está (chris).
Eu não quero usar nada com sudo
, porque quero que o teste crie as ligações em série. Então, não quero executar o teste como root.
Estou negligenciando algo com as permissões? Existe uma maneira melhor de fazer isso tudo junto?
Tags socat