• Show log

    Commit

  • Hash : ebabb88f
    Author : Patrick Steinhardt
    Date : 2019-10-10T09:25:32

    cmake: update minimum CMake version to v3.5.1
    
    Back in commit cf9f34521 (cmake: bump minimum version to 2.8.11,
    2017-09-06), we have bumped the minimum CMake version to require at
    least v2.8.11. The main hold-backs back then were distributions like
    RHEL/CentOS as well as Ubuntu Trusty, which caused us to not target a
    more modern version. Nowadays, Ubuntu Trusty has been EOL'd and CentOS 6
    has CMake v3.6.1 available via the EPEL6 repository, and thus it seems
    fair to upgrade to a more recent version.
    
    Going through repology [1], one can see that all supported mainstream
    distributions do in fact have CMake 3 available. Going through the list,
    the minimum version that is supported by all mainstream distros is in
    fact v3.5.1:
    
    	- CentOS 6 via EPEL6: 3.6.1
    	- Debian Oldstable: 3.7.2
    	- Fedora 26: 3.8.2
    	- OpenMandriva 3.x: 3.5.1
    	- Slackware 14.2: 3.5.2
    	- Ubuntu 16.04: 3.5.1
    
    Consequentally, let's upgrade CMake to the minimum version of 3.5.1 and
    remove all the version CMake checks that aren't required anymore.
    
    [1]: https://repology.org/project/cmake/versions
    

  • README.md

  • 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_CLAR=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:

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

    macOS

    Uses leaks, which requires XCode installed:

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