위키득계정 ↗
기술

Cvise

Cvise기술
표기
C-Vise
분류
프로그램 축소 도구
계보
C-Reduce의 Python 이식
변환 기반
Clang Delta
Cvise는 C-Reduce를 Python으로 이식하고 병렬 실행을 활용하는 테스트 입력 축소 도구다. 문제를 재현하는 C와 C플러스플러스, OpenCL 프로그램을 더 작은 형태로 줄인다.

같은 현상을 보존하기

재현 프로그램과 현상을 판정하는 테스트를 받아 코드를 단순화한다. 컴파일러 충돌이나 잘못된 코드 생성처럼 조사하려는 속성을 유지하는 것이 핵심이다. 줄 수만 줄이고 다른 오류로 바뀌었다면 유용한 축소 결과가 아니다.

병렬 판정의 의미

여러 축소 후보에 대한 검사를 병렬로 수행해 탐색에 활용한다. 실제 속도는 판정 테스트의 실행 시간과 자원 사용, 입력에 따라 달라진다. 특정 사례에서의 개선 수치를 모든 프로젝트의 고정 배율로 해석해서는 안 된다.

여러 파일과 조건

여러 파일이나 디렉터리 형태의 재현 입력을 다룰 수 있다. 판정은 별도 임시 디렉터리에서 수행되므로 외부 파일과 도구 경로를 점검해야 한다. 축소 뒤에는 필요한 컴파일 옵션과 실행 조건을 포함해 같은 현상이 남았는지 재확인한다.

관련 문서

C-Reduce / Yarpgen / Csmith / Clang