socat два последовательных порта вместе

Я пишу тест 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 (user: root), с которой мой пользователь находится (chris).

Я не хочу ничего использовать с sudo , потому что я хочу, чтобы тест создавал последовательные привязки. Поэтому я не хочу запускать тест как root.

Я что-то пропускаю с разрешениями? Есть ли лучший способ сделать это все вместе?