먼저 기본적으로 타깃에서는 빌드 스텁을 사용하지 못하는 것이 맞습니다.
하지만 실제로 호출되는 함수가 테스트 데이터로 인해 인터럽트를 발생시키는 경우는 테스트가 정상적으로 수행이 되어도 결과를 받을 수가 없습니다.
이런 경우 아래의 3가지 방법 중 하나로 빌드 스텁을 사용할 수 있도록 처리해주어야 합니다.

1. 타깃 빌드 시점에 처리하는 방법

이 방법은 실제 개발자한테 문의를 해야 하는 방법입니다.
타깃 테스트 내보내기 시 환경 설정에서 빌드 스텁 사용으로 체크하신 후 makefile 혹은 타깃 IDE에서 함수 정의가 있는 라이브러리나 소스 파일을 빌드시 제외시키는 방법입니다.

2. cs_replace_code 옵션을 사용해서 처리하는 방법

cs_replace_ code 옵션으로 강제로 함수 호출부 이름을 바꾸는 방법입니다. 실제 함수의 호출부를 바꾸는 방법이기 때문에 권장하는 방법은 아닙니다.

예제 코드

void function();
int main(){
   function();// stub 처리가 필요한 함수
   return 0;
}

툴체인.conf에 아래 옵션 추가
cs_replace_code=functionfunction_stub

3. —preinclude 혹은 -include 옵션을 통한 스텁 처리

시스템 스텁을 사용자 스텁으로 처리하여 사용하는 방법입니다.

예제코드

int main(){
   function();// stub 처리가 필요한 함수
   return 0;
}

임의의 헤더파일을 만든 후에 아래와 같이 함수 정의를 추가합니다.

#ifndef _STUB_HEADER_
#define _STUB_HEADER_
void function(){
}
#endif

Controller Tester 프로젝트에서 예제코드가 있는 소스파일 우클릭 > 특성 > 컴파일 플래그에 다음과 같이 매크로로 치환을 합니다.
-Dfunction=function_stub

Controller Tester 프로젝트 우클릭 후 [커버리지 측정 제외] > [함수 단위 제외 목록]에 function_stub 함수를 추가해주시면 됩니다.

Need more help with this?
Don’t hesitate to contact us here.

Thanks for your feedback.