검사용 실행 환경
원자적 연산을 사용한 코드라도 메모리 순서가 의도와 다르면 결과가 달라질 수 있다. Relacy는 이런 동기화 알고리즘을 별도 검사 환경에 놓고 살펴보는 데 쓰인다. 실제 서비스 전체보다 공유 상태와 스레드 동작을 좁힌 테스트가 출발점이 된다.
기존 코드와 연결
기본적으로 Relacy가 정의한 자료형을 사용해 테스트를 작성한다. 표준 헤더를 가로채 std 이름으로 작성된 코드를 다루는 방식도 제공한다. 이 방식은 포함 경로와 첫 헤더 등 요구 조건이 있으므로 단순한 링크 옵션 변경으로 취급하면 안 된다.
이식성과 유지 관리
표준 라이브러리를 대신하는 구성은 컴파일러와 라이브러리 구현이 바뀌면 동작하지 않을 수 있다. 검증 도구 자체의 지원 환경과 검사 대상의 컴파일 조건을 함께 기록해야 한다. 헤더 전용이라는 배포 방식이 환경 차이를 모두 없애 주는 것은 아니다.
관련 문서
CDSChecker / GenMC / Nidhugg / Jcstress