libgit2/tests-clar
Russell Belfer 0c46863384 Improved tree iterator internals
This updates the tree iterator internals to be more efficient.

The tree_iterator_entry objects are now kept as pointers that are
allocated from a git_pool, so that we may use git__tsort_r for
sorting (which is better than qsort, given that the tree is
likely mostly ordered already).

Those tree_iterator_entry objects now keep direct pointers to the
data they refer to instead of keeping indirect index values.  This
simplifies a lot of the data structure traversal code.

This also adds bsearch to find the start item position for range-
limited tree iterators, and is more explicit about using
git_path_cmp instead of reimplementing it.  The git_path_cmp
changed a bit to make it easier for tree_iterators to use it (but
it was barely being used previously, so not a big deal).

This adds a git_pool_free_array function that efficiently frees a
list of pool allocated pointers (which the tree_iterator keeps).
Also, added new tests for the git_pool free list functionality
that was not previously being tested (or used).
2013-03-14 13:40:15 -07:00
..
attr Do not fail if .gitignore is directory 2013-02-22 12:21:54 -08:00
buf buf: introduce git_buf_splice() 2012-10-25 17:42:35 +02:00
checkout don't dereference at the end of the workdir iterator 2013-02-27 15:35:52 -06:00
clar Update clar to a80e7f30 2013-01-21 13:39:53 -08:00
clone Clone should not delete directories it did not create 2013-03-01 14:56:09 -05:00
commit immutable references and a pluggable ref database 2013-03-07 11:01:52 -06:00
config Test config name validation 2013-01-29 12:16:59 -08:00
core Improved tree iterator internals 2013-03-14 13:40:15 -07:00
date Omit failing test on 32-bit machines. 2012-06-06 12:39:29 -07:00
diff Merge pull request #1408 from arrbee/refactor-iterators 2013-03-12 09:23:53 -07:00
fetchhead Fetchhead: don't expect a tag that isn't there 2013-02-06 13:25:43 -08:00
index clear REUC on checkout 2013-03-04 18:10:57 -06:00
merge clar: fix merge/setup.c 2013-01-04 17:47:52 +01:00
network remote push test fix 2013-03-05 22:45:26 -06:00
notes added missing free for git_note in clar tests 2013-03-06 22:51:20 +01:00
object immutable references and a pluggable ref database 2013-03-07 11:01:52 -06:00
odb Even more cleanups 2013-01-03 19:17:07 +01:00
online Merge pull request #1333 from phkelley/push_options 2013-02-12 10:50:55 -08:00
pack indexer: kill git_indexer 2013-03-03 15:19:21 +01:00
refdb immutable references and a pluggable ref database 2013-03-07 11:01:52 -06:00
refs immutable references and a pluggable ref database 2013-03-07 11:01:52 -06:00
repo Fix workdir iterator bugs 2013-03-13 14:59:51 -07:00
reset reset: Introduce git_reset_default() 2013-02-05 20:33:03 +01:00
resources Make iterator APIs consistent with standards 2013-03-06 16:52:01 -08:00
revwalk Simplify signature parsing 2013-02-20 17:03:18 +01:00
stash immutable references and a pluggable ref database 2013-03-07 11:01:52 -06:00
status Make iterator APIs consistent with standards 2013-03-06 16:52:01 -08:00
submodule Vector improvements and their fallout 2013-01-27 14:17:07 -05:00
threads tests: fix code style in threads/basic.c 2013-02-07 02:04:17 -08:00
trace optional tracing 2013-03-07 12:42:33 -06:00
clar_libgit2.c Clear up warnings from cppcheck 2013-02-15 16:02:45 -08:00
clar_libgit2.h Update cl_git_pass to return more info 2013-01-04 15:23:47 -08:00
clar.c Update clar to a80e7f30 2013-01-21 13:39:53 -08:00
clar.h Update clar to a80e7f30 2013-01-21 13:39:53 -08:00
generate.py Disable caching in Clar 2013-02-20 18:49:00 +01:00
main.c clar: haha 2013-01-04 20:02:01 +01:00
README.md Update README because vmg is @vmg. 2012-10-19 14:05:55 -07:00
valgrind-supp-mac.txt Fix valgrind issues and leaks 2012-08-24 11:00:27 -07:00

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.