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를 참조하십시오.

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.