위키득계정 ↗
기술

Coyote 동시성 검사 도구

Coyote 동시성 검사 도구기술
분야
닷넷 동시성 검사
대상
C샵 동시 코드
실행 제어
IL 재작성과 검사 엔진
진단
오류 재현 추적
Coyote는 C샵 동시 코드를 검사하고 발견한 오류를 결정적으로 재현하는 라이브러리이자 도구다. 태스크나 액터 같은 동시 작업의 실행 경로를 검사 단위에서 탐색한다.

동시성 단위 검사

일반 단위 검사와 비슷한 형태로 동시 작업을 구성하되 검사 엔진이 실행 순서와 비결정적 선택을 탐색하도록 연결한다. 단순히 실행 시간이나 지연을 늘려 오류를 기다리는 방식과 다르다. 작업이 끝난 뒤 어떤 상태여야 하는지 기대 조건을 명확히 작성해야 한다.

빌드 산출물의 재작성

명령행의 rewrite 과정은 검사와 대상 바이너리의 IL에 실행 제어 훅을 넣는다. 이를 통해 검사 중 동시 실행을 조정한다. 소스에 라이브러리를 참조했다는 사실만으로 이 과정이 끝난 것은 아니다. 검사에 사용한 산출물과 원래 빌드의 대응을 관리하고 적용할 API의 지원 범위를 확인한다.

재현과 탐색의 한계

발견한 오류는 검사 보고의 추적 자료로 반복 재현해 조사할 수 있다. 이는 드물게 나타나는 경쟁 조건의 수정과 회귀 확인에 도움이 된다. 그러나 정한 반복 횟수와 검사 시나리오에서 오류가 없었다고 모든 입력과 환경에 대한 형식 증명이 되는 것은 아니다. 작업 범위와 탐색 설정 및 추적 자료를 함께 보존한다.

관련 문서

Lincheck / Jcstress / TUnit / Loom 동시성 테스트