libgit2/tests-clar
Russell Belfer e40f1c2d23 Make tree iterator handle icase equivalence
There is a serious bug in the previous tree iterator implementation.
If case insensitivity resulted in member elements being equivalent
to one another, and those member elements were trees, then the
children of the colliding elements would be processed in sequence
instead of in a single flattened list.  This meant that the tree
iterator was not truly acting like a case-insensitive list.

This completely reworks the tree iterator to manage lists with
case insensitive equivalence classes and advance through the items
in a unified manner in a single sorted frame.

It is possible that at a future date we might want to update this
to separate the case insensitive and case sensitive tree iterators
so that the case sensitive one could be a minimal amount of code
and the insensitive one would always know what it needed to do
without checking flags.

But there would be so much shared code between the two, that I'm
not sure it that's a win.  For now, this gets what we need.

More tests are needed, though.
2013-03-08 16:39:57 -08: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 Simplify signature parsing 2013-02-20 17:03:18 +01:00
config Test config name validation 2013-01-29 12:16:59 -08:00
core Refine pluggable similarity API 2013-02-20 15:09:41 -08:00
date Omit failing test on 32-bit machines. 2012-06-06 12:39:29 -07:00
diff Add INCLUDE_TREES, DONT_AUTOEXPAND iterator flags 2013-03-06 16:52:01 -08: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 Revert "hash: remove git_hash_init from internal api" 2013-02-26 01:08:34 +01: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
refs Fix portability issues on Windows 2013-02-26 13:15:06 -08:00
repo Make tree iterator handle icase equivalence 2013-03-08 16:39:57 -08: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 Fix a few leaks 2013-03-04 00:21:56 +01: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
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.