summaryrefslogtreecommitdiff
path: root/tests/README.md
blob: 7684a6e64eb70326a15b49b48c99f88aab9c4e0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Writing Clar tests for libgit2
==============================

For information on the Clar testing framework and a detailed introduction
please visit:

https://github.com/vmg/clar


* Write your modules and tests. Use good, meaningful names.

* Make sure you actually build the tests by setting:

        cmake -DBUILD_TESTS=ON build/

* Test:

        ./build/libgit2_clar

* Make sure everything is fine.

* Send your pull request. That's it.


Memory leak checks
------------------

These are automatically run as part of CI, but if you want to check locally:

#### Linux

Uses [`valgrind`](http://www.valgrind.org/):

```console
$ cmake -DBUILD_TESTS=ON -DVALGRIND=ON ..
$ cmake --build .
$ valgrind --leak-check=full --show-reachable=yes --num-callers=50 --suppressions=../libgit2_clar.supp \
  ./libgit2_clar
```

#### macOS

Uses [`leaks`](https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/FindingLeaks.html), which requires XCode installed:

```console
$ MallocStackLogging=1 MallocScribble=1 MallocLogFile=/dev/null CLAR_AT_EXIT="leaks -quiet \$PPID" \
  ./libgit2_clar
```