위키득계정 ↗
기술

Tokio-test

Tokio-test기술
분야
Rust 비동기 검사 보조
관련 환경
Tokio와 Future
입출력 대역
AsyncRead 및 AsyncWrite
관찰 대상
폴링 상태와 깨우기 동작
Tokio-test는 Rust의 Tokio와 Future 기반 코드를 검사하는 보조 도구 모음이다. 비동기 입출력 대역과 태스크 관찰 기능 및 폴링 결과를 확인하는 매크로를 제공한다.

완료 전의 상태 검사

비동기 함수의 최종 결과만 기다리면 중간에 대기 상태로 전환되는 동작을 놓칠 수 있다. Tokio-test는 폴링 결과가 준비되었는지 아직 대기 중인지 확인하는 보조 기능을 제공한다. 어떤 입력과 준비 상태에서 어떤 결과가 나와야 하는지 단계별로 검사하면 비동기 제어 흐름을 좁혀 살필 수 있다.

입출력을 대역으로 구성하기

미리 정한 읽기와 쓰기 순서를 따르는 모의 입출력 객체로 네트워크 처리를 검사할 수 있다. 기대하지 않은 데이터를 쓰면 패닉으로 드러난다. 실제 네트워크의 변동성을 줄일 수 있지만 연결과 운영체제의 모든 특성까지 그대로 재현하는 것은 아니다. 대역 검사와 실제 통신 검사를 목적에 맞게 나눈다.

태스크와 런타임 경계

태스크 보조 객체는 Future나 Stream을 폴링하고 깨우기 횟수를 관찰할 수 있게 한다. Tokio 실행 문맥을 요구하는 Future라면 해당 문맥 안에서 검사해야 한다. 폴링 편의를 제공한다고 필요한 런타임까지 항상 자동으로 준비되는 것은 아니다. 완료 여부와 깨우기 동작 및 반환값을 필요한 수준으로 각각 확인한다.

관련 문서

Tokio / Rstest / Mockall / Loom 동시성 테스트