Hash :
d9b041e6
Author :
Date :
2022-02-27T09:20:58
Git HTTP | https://git.kmx.io/thodg/libgit2.git |
---|---|
Git SSH | git@git.kmx.io:thodg/libgit2.git |
Public access ? | public |
Description | |
Users |
|
Tags |
|
These are the unit and integration tests for the libgit2 projects.
clar
headertest
libgit2
resources
util
libgit2 uses the clar test framework, a C testing framework.
The best resources for learning clar are clar itself and the existing tests within libgit2. In general:
If you place a .c
file into a test directory, it is eligible to contain
test cases.
The function name for your test is important; test function names begin
with test_
, followed by the folder path (underscore separated), two
underscores as a delimiter, then the test name. For example, a file
merge/analysis.c
may contain a test uptodate
:
void test_merge_analysis__uptodate(void)
{
...
}
You can run an individual test by passing -s
to the test runner. Tests
are referred to by their function names; for example, the function
test_merge_analysis__uptodate
is referred to as merge::analysis::uptodate
.
To run only that function you can use the -s
option on the test runner:
libgit2_tests -smerge::analysis::uptodate
These are automatically run as part of CI, but if you want to check locally:
Uses valgrind
:
$ cmake -DBUILD_TESTS=ON -DVALGRIND=ON ..
$ cmake --build .
$ valgrind --leak-check=full --show-reachable=yes --num-callers=50 --suppressions=../libgit2_tests.supp \
./libgit2_tests
Uses leaks
, which requires XCode installed:
$ MallocStackLogging=1 MallocScribble=1 MallocLogFile=/dev/null CLAR_AT_EXIT="leaks -quiet \$PPID" \
./libgit2_tests
Build with the WIN32_LEAKCHECK
option:
$ cmake -DBUILD_TESTS=ON -DWIN32_LEAKCHECK=ON ..
$ cmake --build .
$ ./libgit2_tests