Cmocka 빠른 시작
기본 페이지는 API 문서 및 슬라이드쇼로 연결됩니다. 이들 중 어느 것도 Cmocka로 프로젝트를 구축하는 예를 제공하지 않습니다. 그냥 굴릴 수 있는 빠른 시작 스켈레톤 프로젝트가 있을 때 정말 감사합니다. 그래서 그들의 first example from the API을 가져와서 그렇게 했습니다.
여기를 따라가기 위해 가장 먼저 해야 할 일은 cmocka를 다운로드하는 것입니다. source release of 1.1.5 을 잡았습니다.
아카이브 압축 해제:
tar -xzvf cmocka-1.1.5.tar.gz
cmocka 라이브러리를 빌드합니다. 내 프로젝트에서는 cmocka 라이브러리를 정적으로 컴파일하기를 원하므로 그에 따라 cmake를 사용하여 cmocka를 구성합니다.
cd cmocka-1.1.5
mkdir build
cd build
cmake -DWITH_STATIC_LIB=ON ..
make
cmocka는
libcmocka-static.a
라이브러리를 build/src
디렉토리에 빌드합니다. 이것은 테스트를 빌드하기 위해 테스트를 연결해야 하는 것입니다. 정적 cmocka 라이브러리를 사용한다는 것은 라이브러리가 생성된 바이너리에 복사됨을 의미합니다. 이렇게 하면 C 인터프리터가 런타임에 libcmocka를 찾을 필요가 없습니다. 이는 시스템에 libcmocka 라이브러리를 설치하지 않으려는 경우 또는 개발 환경이 아닌 다른 환경에서 테스트를 실행하려는 경우에 유용합니다. 이렇게 하면 바이너리가 더 커지고 다른 이식성 문제가 첨부되므로 많은 (프로덕션) 경우에 정적 라이브러리를 사용할 수 없습니다.다음으로 다음 내용이 포함된
test.c
파일을 만듭니다.#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
/* A test case that does nothing and succeeds. */
static void null_test_success(void **state) {
(void) state; /* unused */
}
int main(void) {
const struct CMUnitTest tests[] = {
cmocka_unit_test(null_test_success),
};
return cmocka_run_group_tests(tests, NULL, NULL);
}
테스트 파일을 빌드합니다.
gcc -I cmocka-1.1.5/include/ -L cmocka-1.1.5/build/src/ test.c -l:libcmocka-static.a
그러면
a.out
바이너리가 생성됩니다. 실행!$ ./a.out
[==========] Running 1 test(s).
[ RUN ] null_test_success
[ OK ] null_test_success
[==========] 1 test(s) run.
[ PASSED ] 1 test(s).
그리고 당신은 간다. 실제 C 코드에 대한 단위 테스트를 작성하려는 경우 유일한 차이점은 테스트 중인 소스에 대한 헤더
#include
와 테스트와 함께 테스트 중인 소스 파일을 컴파일해야 한다는 것입니다.
Reference
이 문제에 관하여(Cmocka 빠른 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dizzyspi/cmocka-quick-start-3n1i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)