$ cmake -DGCOV=ON -DENABLE_UT=ON ../
$ make -j
$ ctest 
Test project /root/work/openeuler/clibcni/build
    Start 1: api_testcase
1/1 Test #1: api_testcase .....................   Passed    0.02 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.02 sec
$ make coverage
Scanning dependencies of target coverage
[100%] generating report...
Deleting all .da files in ./src and subdirectories
Done.
Capturing coverage data from .
Found gcov version: 8.3.0
Scanning . for .gcno files ...
Found 9 graph files in .
Processing clibcni.dir/conf.c.gcno
Processing clibcni.dir/version/version.c.gcno
Processing clibcni.dir/types/types.c.gcno
Processing clibcni.dir/types/current.c.gcno
Processing clibcni.dir/api.c.gcno
Processing clibcni.dir/utils.c.gcno
Processing clibcni.dir/invoke/exec.c.gcno
Processing clibcni.dir/invoke/args.c.gcno
Processing clibcni.dir/invoke/tools.c.gcno
Finished .info-file creation
Test project /root/work/openeuler/clibcni/build
    Start 1: api_testcase
1/1 Test #1: api_testcase .....................   Passed    0.01 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.02 sec
Capturing coverage data from ./src
Found gcov version: 8.3.0
Scanning ./src for .gcda files ...
Found 9 data files in ./src
Processing clibcni.dir/utils.c.gcda
Processing clibcni.dir/conf.c.gcda
Processing clibcni.dir/version/version.c.gcda
Processing clibcni.dir/types/types.c.gcda
Processing clibcni.dir/types/current.c.gcda
Processing clibcni.dir/api.c.gcda
Processing clibcni.dir/invoke/exec.c.gcda
Processing clibcni.dir/invoke/args.c.gcda
Processing clibcni.dir/invoke/tools.c.gcda
Finished .info-file creation
Combining tracefiles.
Reading tracefile coverage.base
Reading tracefile coverage.info
Writing data to coverage.total
Summary coverage rate:
  lines......: 8.4% (249 of 2950 lines)
  functions..: 11.8% (25 of 211 functions)
  branches...: no data found
Reading tracefile coverage.total
Removing /usr/include/aarch64-linux-gnu/bits/byteswap.h
Removing /usr/include/aarch64-linux-gnu/bits/fcntl2.h
Removing /usr/include/aarch64-linux-gnu/bits/stdio2.h
Removing /usr/include/aarch64-linux-gnu/bits/string_fortified.h
Removing /usr/include/aarch64-linux-gnu/bits/uintn-identity.h
Removing /usr/include/aarch64-linux-gnu/bits/unistd.h
Removing /usr/include/aarch64-linux-gnu/sys/stat.h
Removing /usr/local/include/isula_libutils/log.h
Deleted 8 files
Writing data to coverage.total
Summary coverage rate:
  lines......: 8.1% (229 of 2843 lines)
  functions..: 12.0% (23 of 191 functions)
  branches...: no data found
Reading tracefile coverage.total
Deleted 0 files
Writing data to /root/work/openeuler/clibcni/build/coverage.info.cleaned
Summary coverage rate:
  lines......: 8.1% (229 of 2843 lines)
  functions..: 12.0% (23 of 191 functions)
  branches...: no data found
Reading data file /root/work/openeuler/clibcni/build/coverage.info.cleaned
Found 10 entries.
Found common filename prefix "/root/work/openeuler/clibcni"
Writing .css and .png files.
Generating output.
Processing file src/conf.c
Processing file src/api.c
Processing file src/utils.c
Processing file src/invoke/tools.c
Processing file src/invoke/args.c
Processing file src/invoke/exec.c
Processing file src/types/types.c
Processing file src/types/current.c
Processing file src/version/version.h
Processing file src/version/version.c
Writing directory view page.
Overall coverage rate:
  lines......: 8.1% (229 of 2843 lines)
  functions..: 12.0% (23 of 191 functions)
open coverage/index.html in browser to view the coverage analysis report.
[100%] Built target coverage