CT 2024.12는 여러 가지 매크로를 제공하여 사용자가 테스트 코드를 보다 쉽게 작성할 수 있도록 도와줍니다. 제공되는 매크로는 편집기에서 단축키(Ctrl
+ Spacebar
)를 사용하여 확인 및 작성할 수 있습니다.
ASSERT 매크로
조건식을 검사하여 성공/실패 여부를 [테스트 케이스 탭]에 출력합니다.
매크로 형태 | 매개 변수 | 예제 |
---|---|---|
CS_ASSERT(_b) | _b: 조건식 | CS_ASSERT(val!=1); |
CS_ASSERT_MSG(_B, _msg) | _B: 조건식 _msg: 조건식이 거짓일 경우 출력할 메시지 |
CS_ASSERT_MSG(val==1, "val is not 1!"); |
출력 매크로
특정 변수의 값을 [테스트 케이스 탭]에 출력합니다.
매크로 형태 | 매개 변수 | 예제 |
---|---|---|
CS_INT_OUTPUT(_v, _s) CS_UINT_OUTPUT(_v, _s) CS_FLT_OUTPUT(_v, _s) CS_STR_OUTPUT(_v, _s) |
_v: 값을 출력할 변수 _s: [테스트 케이스 탭]에 표시할 이름 |
CS_INT_OUTPUT(int_var, "int_var_name"); CS_UINT_OUTPUT(unsigned_int_var, "unsigned_int_var_name"); CS_FLT_OUTPUT(float_var, "float_var_name"); CS_STR_OUTPUT(string_var, "string_var_name"); |
입력 매크로
테스트 수행 함수에 테스트 데이터를 전달하는 매크로입니다.
매크로 형태 | 매개 변수 | 예제 |
---|---|---|
CS_INT_INPUT(_t, _s) CS_UINT_INPUT(_t, _s) CS_FLT_INPUT(_t, _s) CS_STR_INPUT(_t, _s) |
_t: 변수의 타입 _s: [테스트 케이스 탭]에 표시할 이름 |
CS_INT_INPUT(int, "int_var_name"); CS_UINT_INPUT(unsigned int, "unsigned_int_var_name"); CS_FLT_INPUT(float, "float_var_name"); CS_STR_INPUT(char*, "string_var_name"); |
주소 관련 매크로
변환된 소스 코드에서 임베디드 상의 주소에 직접 값을 입력하거나 가져오는 부분이 있는 경우 로컬 컴퓨터에서 수행 시 정상 동작을 하지 않을 수 있습니다. 이런 경우 주소 관련 매크로를 사용하여 가상의 주소에 값을 입력하고 출력할 수 있습니다.
매크로 형태 | 설명 |
---|---|
CS_VIRTUAL_ADDR(_b,_e) | 주소(_b)부터 주소(_e)까지의 공간을 생성합니다. |
CS_ADDR_ASSIGN(_t,_a,_v) CS_ADDR_SET(_t,_a,_v) |
주소(_a)에 타입(_t)의 값(_v)을 지정합니다. |
CS_ADDR_GET(_t,_a) | 주소(_a)에서 타입(_t)의 값을 가져옵니다. |
CS_ADDR_PTR(_a) | 주소(_a)를 포인터 타입으로 반환합니다. |
CS_VIRTUAL_ADDR_CLEAR() | 생성한 메모리 공간을 제거합니다. |
주소 관련 매크로 예제
// 0xFFE40000U에서부터 100만큼의 가상 메모리 공간 생성
CS_VIRTUAL_ADDR(0xFFE40000U, 0xFFE40000U+100);
// 0xFFE40000U에 int 타입의 값 10을 할당
CS_ADDR_ASSIGN(int ,0xFFE40000U, 10);
CS_ADDR_SET(int ,0xFFE40000U, 10);
// 변수 a에 0xFFE40000U의 값을 할당
int a = CS_ADDR_GET(int ,0xFFE40000U);
// 변수 ptr에 0xFFE40000U의 주소를 할당
int* ptr = CS_ADDR_PTR(0xFFE40000U);
// 생성한 가상 메모리 공간 삭제
CS_VIRTUAL_ADDR_CLEAR();
기타 매크로
매크로 형태 | 매개 변수 | 설명 | 예제 |
---|---|---|---|
CS_LOG(_msg) | _msg: 로그 메시지 | 사용자 로그 출력 | CS_LOG("User Log"); |
CS_LOG_FORMAT(_msg, …) | _msg: 형식 지정자가 사용된 로그 메시지 …: 형식 지정자가 참조하는 인수 |
지정된 형식으로 사용자 로그를 출력 | CS_LOG_FORMAT("Message: %s", "example"); CS_LOG_FORMAT("Message: %d", 10); |
CS_TESTCASENO() | 현재 수행중인 테스트 케이스의 번호 반환 | long long testCaseNum = CS_TESTCASENO(); |
Need more help with this?
Don’t hesitate to contact us here.