위키득계정 ↗
기술

Serial_test

Serial_test기술
분야
Rust 검사 실행 조정
주요 속성
serial과 parallel
묶음 구분
선택적 잠금 키
프로세스 간 방식
file serial 계열
Serial_test는 Rust 검사들이 동시에 실행되지 않도록 조정하는 속성 매크로 라이브러리다. 공유 자원을 사용하는 검사 묶음을 직렬화하며 프로세스 사이에는 별도의 파일 잠금 방식을 제공한다.

동시 실행과 실행 순서

serial 속성을 사용한 검사들은 서로 겹치지 않게 실행되지만 어떤 검사가 먼저 실행될지는 보장하지 않는다. 이전 검사가 만든 상태를 다음 검사가 사용하도록 순서를 가정하면 직렬화 후에도 불안정할 수 있다. 각 검사가 필요한 자료를 준비하고 끝난 뒤 상태를 정리하도록 구성한다.

보호받는 대상의 범위

parallel 속성의 검사들은 서로 함께 실행할 수 있지만 대응하는 직렬 검사와는 겹치지 않도록 조정한다. 아무 속성도 없는 검사는 이 규칙의 보호를 받지 않는다. 잠금 키로 자원별 묶음을 나눌 수 있어 모든 검사를 하나로 직렬화하는 비용을 줄일 수 있다. 같은 자원을 다루는 검사들이 같은 규칙에 참여해야 한다.

별도 프로세스의 검사

문서 검사나 통합 검사처럼 프로세스가 나뉘면 파일 잠금 기반 속성을 선택할 수 있다. 일반 serial과 file serial은 다른 잠금 방식을 사용하므로 서로 자동으로 동기화된다고 가정하지 않는다. 실행 조정은 공유 상태를 안전하게 설계하는 일을 대신하지 않으며 필요한 자원의 범위와 검사 프로세스의 경계를 함께 검토한다.

관련 문서

Dhat Rust / Rstest / Nextest / Loom 동시성 테스트