2013-11-15

[CUnit] CUnit 설치 방법

2013-11-14 최초 작성
2014-11-27 configure 파일 미존재시 automake로  configure 파일 생성 방법 추가
                   라이브러리 제거 방법 추가

1. CUnit 이란?
c로 작성된 소스에 대해서 unit 테스트를 지원해주는 라이브러리이다.

아래 경로는 CUnit 홈페이지다.
http://cunit.sourceforge.net/

2. CUnit 소스 설치

2-1. 준비
OS : Ubuntu 12.04.3 LTS 64bit
CUnit 소스 : 아래 경로에서 CUnit 소스 코드를 다운로드 받을 수 있다.
2013-11-14 기준으로 최신 버전인 CUnit-2.1-2-src.tar.bz2를 다운로드 했다.
http://sourceforge.net/projects/cunit/

** 2014-11-27 기준으로 최신 버전인 CUnit-2.1-3.tar.bz2 까지 설치 됨을 확인 했다.

2-2. 압축 해제
# tar -nxvf CUnit-2.1-2-src.tar.bz2

2-3. configure 파일 존재 여부 확인
# cd CUnit-2.1-2
# ls -l configure

>> 다음 에러 발생시 configure 파일이 미존재. 2-4를 진행한다. <<
ls: configure에 접근할 수 없습니다: 그런 파일이나 디렉터리가 없습니다

>> 다음과 같이 출력되면 configure 파일이 존재. 2-5를 진행한다. <<
-rwxrwxr-x 1 core core 429635 11월 27 00:03 configure

2-4. configure 파일이 없는 경우. automake 로 configure 파일을 생성
# cd CUnit-2.1-2
# aclocal
# autoconf
# autoreconf --install    (2-8 에러 발생시 사용)
# automake                   (2-7 에러 발생 시 automake --add-missing를 사용)
# chmod u+x configure   (실행 권한이 없는 경우 사용한다)

2-5. 빌드 및 설치
# cd CUnit-2.1-2
# ./configure
# make
# sudo make install

2-6. 만약 2-4 진행 중 다음과 같은 에러가 발생한 경우. libtool를 설치 한다.
에러> possibly undefined macro: AC_PROG_LIBTOOL
         If this token and others are legitimate, please use m4_pattern_allow.
         See the Autoconf documentation.

해결> 아래 명령 실행 후 2-4 다시 수행
# sudo apt-get install libtool

2-7. 만약 2-4 진행 중 다음과 같은 에러가 발생한 경우.
에러> required file `./install-sh' not found
          `automake --add-missing' can install `./install-sh`

해결> 2-4에서 "automake" 대신 "automake --add-missing"를 사용한다.
        # automake --add-missing

2-8. 만약, automake 시 `config.h.in' not found 에러가 발생하는 경우.
에러> required file `config.h.in' not found

해결> automake 전에 autoreconf를 사용한다.
        # autoreconf --install
        # automake           (2-7 에러 발생 시 automake --add-missing를 사용)

3. 설치 확인
3.1 라이브러리 확인
# ls -l /usr/local/lib/libcunit*
-rw-r--r-- 1 root root 117126 11월 15 11:18 /usr/local/lib/libcunit.a
-rwxr-xr-x 1 root root   1003 11월 15 11:18 /usr/local/lib/libcunit.la
lrwxrwxrwx 1 root root     17 11월 15 11:18 /usr/local/lib/libcunit.so -> libcunit.so.1.0.1
lrwxrwxrwx 1 root root     17 11월 15 11:18 /usr/local/lib/libcunit.so.1 -> libcunit.so.1.0.1
-rwxr-xr-x 1 root root  78529 11월 15 11:18 /usr/local/lib/libcunit.so.1.0.1

3-2. CUnit 홈페이지에 있는 예제 소스를 이용하여 테스트를 한다.
아래 경로에서 소스를 복사 붙이기 하여 example.c 파일을 만든다.
http://cunit.sourceforge.net/example.html

3-3. example.c를 빌드를 한다.
# gcc -o test example.c -lcunit

3-4. 빌드한 파일을 실행한다.
# ./test

결과 ***************************************
     CUnit - A unit testing framework for C - Version 2.1-2
     http://cunit.sourceforge.net/


Suite: Suite_1
  Test: test of fprintf() ...passed
  Test: test of fread() ...passed

Run Summary:    Type  Total    Ran Passed Failed Inactive
              suites      1      1    n/a      0        0
               tests      2      2      2      0        0
             asserts      5      5      5      0      n/a

Elapsed time =    0.000 seconds
********************************************

3-5. 만약 아래와 같은 오류 발생시 ldconfig 명령을 사용하여 동적 라이브러리를 등록한다.
에러> ./test: error while loading shared libraries: libcunit.so.1: cannot open shared object file: No such file or directory

해결> 아래 명령어 실행 후 3-3, 3-4 다시 수행
          # sudo ldconfig

4. 라이브러리 제거
1~3 과정으로 설치된 라이브러리를 제거한다.
# cd CUnit-2.1-2
# sudo make uninstall

댓글 없음:

댓글 쓰기