macOS Big SurでCUnitのmake

CUnitを利用したくてmakeしたのでメモ。

CUnitをダウンロードする。 sourceforge.net

$ bunzip2 CUnit-2.1-2-src.tar.bz2
$ tar -xvf CUnit-2.1-2-src.tar
$ CUnit-2.1-2
$ ./configure --prefix=/usr/local
$ make
$ sudo make install

test.c

#include "CUnit/Basic.h"

int maxi(int i1, int i2) {
    return (i1 > i2) ? i1 : i2;
}

int init_suite_success(void) {
    return 0;
}

int clean_suite_success(void) {
    return 0;
}

void test_maxi(void) {
    CU_ASSERT(maxi(0,2) == 2);
    CU_ASSERT(maxi(0,-2) == 0);
    CU_ASSERT(maxi(2,2) == 2);
}

int main() {
    CU_pSuite pSuite = NULL;

    if (CUE_SUCCESS != CU_initialize_registry()) {
        return CU_get_error();
    }

    pSuite = CU_add_suite("suite success", init_suite_success, clean_suite_success);
    if (pSuite == NULL) {
        CU_cleanup_registry();
        return CU_get_error();
    }

    if (CU_add_test(pSuite, "test maxi", test_maxi) == NULL) {
      CU_cleanup_registry();
      return CU_get_error();
   }

    CU_basic_set_mode(CU_BRM_VERBOSE);
    CU_basic_run_tests();
    CU_basic_show_failures(CU_get_failure_list());
    CU_cleanup_registry();

    return CU_get_error();
}
$ gcc -o test test.c -lcunit
$ ./test


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


Suite: suite success
  Test: test maxi ...passed

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

Elapsed time =    0.000 seconds