내 애플리케이션을 테스트하기 위해 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]
.
(및 21)에 대한 사용자 권한을 살펴본 ttyS20
결과 모두 내 사용자(chris)가 속한 그룹 dialout
(user:root)이 있습니다.
sudo
테스트에서 직렬 바인딩을 생성하기를 원하기 때문에 아무것도 사용하고 싶지 않습니다 . 그래서 루트로 테스트를 실행하고 싶지 않습니다.
권한에 대해 제가 간과한 부분이 있나요? 이 모든 것을 동시에 수행할 수 있는 더 좋은 방법이 있습니까?