IAR C-SPY 커맨드 라인 유틸리티를 사용하여 테스트 자동화
IAR Embedded Workbench는 C-SPY를 포함하는 최신기능의 디버거입니다. C-SPY는 프로그램의 코드를 디버깅할 수 있는 풍부한 사용자 인터페이스를 제공합니다. 특정한 경우를 가정하겠습니다. 자동화 개발 환경에서 자동화된 테스트를 수행할 필요가 있는 경우, IAR C-SPY 커맨드 라인 유틸리티 ( cspybat )이 커맨드 라인으로 부터 임베디드 프로그램을 실행할 수 있습니다.
본 문서에서는 예제 프로젝트에서 cspybat를 사용하여 런타임 테스트를 수행할 때 표준 I/O 인터페이스를 사용하여 입력 파라미터 데이터를 자동으로 공급하는 방법을 소개합니다.
테스트 프로젝트 생성
첫 번째 단계는 IAR Embedded Workbench에 새 C 프로젝트를 생성하는 것입니다. 그런 다음 main.c 파일의 내용을 다음 코드 조각으로 바꿉니다.
#include <stdio.h>
typedef struct {
int r;
int g;
int b;
} rgb_t;
/* ITU BT.601 */
int rgb_to_luminance(const rgb_t *color) {
int luminance;
luminance = (int)(0.299f * color->r + 0.587f * color->g + 0.114f * color->b);
return luminance;
}
int main(void) {
int luminance;
rgb_t input;
printf("R:"); scanf("%d", &input.r); printf("%d\n", input.r);
printf("G:"); scanf("%d", &input.g); printf("%d\n", input.g);
printf("B:"); scanf("%d", &input.b); printf("%d\n", input.b);
luminance = rgb_to_luminance(&input);
printf("---\nLuminance:%d\n", luminance);
return 0;
}
project.ewp
로 프로젝트를 저장합니다.
이 가벼운 프로그램은 표준 I/O에서 r, g, b의 세 가지 색상 파라미터를 수신하여 ITU B.601 규격에 따라 이 값을 해당 휘도 값으로 변환합니다. 변환은 컬러 영상을 흑백 버전으로 축소하는 과정에서 종종 사용됩니다.
참고
- 이때
Target device
,Debugger driver
등과 같은 다른 옵션을 설정할 수 있습니다. - 시뮬레이터를 사용할 때 IAR Embedded Workbench for Arm: General Options 카테고리에 있는 프로젝트의 Library Configuration을 설정하여 다음과 같이 표준 I/O 로우 레벨 인터페이스에 대한
Semihosted
구현을 사용하도록 합니다.
프로젝트 설정이 완료되면 Make (F7)
를 누른 다음 다운로드 및 디버그(CTRL+D)를 누르십시오.
디버그 도구 모음에서 Go (F5)
을 클릭하면 Terminal I/O 창이 나타나고 사용자의 입력을 기다립니다.
입력란에 50, 100, 150을 입력합니다.
Terminal I/O 창에 결과가 표시됩니다.
디버그 세션을 종료합니다.
배치 파일 생성
IAR Embedded Workbench는 <project-name>.<build-configuration>.cspy.bat
이라는 이름의 배치 파일을 프로젝트 설정 폴더에 생성합니다. 이 배치 스크립트는 동일한 <build-configuration>
을 사용하여 애플리케이션을 실행할 수 있습니다.
명령 프롬프트를 실행한 뒤 프로젝트 폴더로 이동합니다:
C:\>cd <path-to>\project
명령줄에서 자동으로 생성된 배치 스크립트를 호출하여 cspybat를 사용하여 응용 프로그램을 실행합니다.
C:\<path-to>\project>settings\project.Debug.cspy.bat
일단 시작되면, 애플리케이션은 사용자 파라미터가 입력될 때까지 기다립니다:
C:\project>"C:\IAR_Systems\EWARM\9.10.1\common\bin\cspybat" -f "C:\project\settings\project.Debug.general.xcl" --backend -f "C:\project\settings\project.Debug.driver.xcl"
IAR C-SPY Command Line Utility V9.0.4.7242
Copyright 2000-2021 IAR Systems AB.
R:
50, 100 및 150을 입력하여 해당 luminance 값을 계산합니다.
IAR C-SPY Command Line Utility V9.0.4.7242
Copyright 2000-2021 IAR Systems AB.
R:50
50
G:100
100
B:150
150
---
Luminance:90
CSpyBat terminating.
표준 입력으로 텍스트 파일 리다이렉션
명령 프롬프트를 사용하면 리디렉터를 사용할 수 있습니다. 즉, 입력할 매개 변수가 포함된 텍스트 파일을 배치 스크립트에서 피드할 수 있습니다.
매개 변수를 사용하여 데이터 파일을 생성하려면 다음 명령을 사용합니다.
C:\<path-to>\project>copy con data.txt
그런 다음 50을 입력하고 ENTER를 입력한 다음 100을 입력하고 마지막으로 150을 입력합니다. 완료되면 CTRL+Z를 눌러 파일을 저장합니다.
C:\<path-to>\project>copy con data.txt
50
100
150
^Z
1 file(s) copied.
이제 < 리다이렉터의 도움을 받아 데이터 파일을 배치 스크립트에 공급하여 자동화를 테스트해 보겠습니다.
C:\<path-to>\project>settings\project.Debug.cspy.bat < data.txt
예상 출력은 다음과 비슷해야 합니다:
C:\<path-to>\project>"C:\IAR_Systems\EWARM\9.10.1\common\bin\cspybat" -f "C:\project\settings\project.Debug.general.xcl" --backend -f "C:\project\settings\project.Debug.driver.xcl"
IAR C-SPY Command Line Utility V9.0.4.7242
Copyright 2000-2021 IAR Systems AB.
R:50
G:100
B:150
---
Luminance:90
CSpyBat terminating.
결론
편안한 GUI에서 내장 애플리케이션을 디버깅하는 것이 가장 편리한 방법이지만 C-SPY 명령줄 유틸리티를 사용하면 반복 테스트 작업을 쉽게 자동화할 수 있습니다.
이는 자동화된 테스트 목적으로 cspybat를 사용하는 방법을 설명하기 위한 간단한 예입니다. 장치 테스트를 실행하기 위해 유사하거나 더 복잡한 설정을 사용하여 애플리케이션에 외부 파라미터 데이터를 제공할 수 있습니다. 그런 다음 생성된 출력을 사용하여 다른 기준 모델에 대한 결과를 확인할 수 있습니다.
이 기법은 경계값 테스트 실행, 계산의 필수 정확성 검증 또는 형식 캐스트의 부작용 확인과 같은 작업을 수행할 때 사용할 수 있습니다. 단, 여러 가지 가능성은 언급할 수 있습니다.
cspybat에 대한 자세한 내용은 IAR Embedded Workbench의 도움말 메뉴에서 확인할 수 있는 C-SPY Debugging Guide를 참조하십시오.