libgit2/tests-clar
Russell Belfer ccfa68055c Fix some diff ignores and submodule dirty workdir
This started out trying to look at the problems from issue #1425
and gradually grew to a broader set of fixes.  There are two core
things fixed here:

1. When you had an ignore like "/bin" which is rooted at the top
   of your tree, instead of immediately adding the "bin/" entry
   as an ignored item in the diff, we were returning all of the
   direct descendants of the directory as ignored items.  This
   changes things to immediately ignore the directory.  Note that
   this effects the behavior in test_status_ignore__subdirectories
   so that we no longer exactly match core gits ignore behavior,
   but the new behavior probably makes more sense (i.e. we now
   will include an ignored directory inside an untracked directory
   that we previously would have left off).
2. When a submodule only contained working directory changes, the
   diff code was always considering it unmodified which was just
   an outright bug. The HEAD SHA of the submodule matches the SHA
   in the parent repo index, and since the SHAs matches, the diff
   code was overwriting the actual status with UNMODIFIED.

These fixes broke existing tests test_diff_workdir__submodules and
test_status_ignore__subdirectories but looking it over, I actually
think the new results are correct and the old results were wrong.
@nulltoken had actually commented on the subdirectory ignore issue
previously.

I also included in the tests some debugging versions of the
shared iteration callback routines that print status or diff
information.  These aren't used actively in the tests, but can be
quickly swapped in to test code to give a better picture of what
is being scanned in some of the complex test scenarios.
2013-03-25 23:58:40 -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 Fix up checkout file contents checks 2013-03-25 14:13:53 -07: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 Fix various build warnings 2013-03-14 15:09:29 -07:00
config config: don't allow passing NULL as a value to set 2013-03-09 15:45:18 +01:00
core Move crlf conversion into buf_text 2013-03-25 14:20:07 -07:00
date Omit failing test on 32-bit machines. 2012-06-06 12:39:29 -07:00
diff Fix some diff ignores and submodule dirty workdir 2013-03-25 23:58:40 -07:00
fetchhead Fetchhead: don't expect a tag that isn't there 2013-02-06 13:25:43 -08:00
index Test fixes and cleanup 2013-03-25 14:03:16 -07:00
merge clar: fix merge/setup.c 2013-01-04 17:47:52 +01:00
network Update cl_assert_equal_sz to be nicer 2013-03-22 14:23:38 -07:00
notes added missing free for git_note in clar tests 2013-03-06 22:51:20 +01:00
object Move crlf conversion into buf_text 2013-03-25 14:20:07 -07:00
odb Even more cleanups 2013-01-03 19:17:07 +01:00
online config: don't allow passing NULL as a value to set 2013-03-09 15:45:18 +01: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 Fix various build warnings 2013-03-14 15:09:29 -07:00
repo Add cl_repo_set_bool and cleanup tests 2013-03-22 14:27:56 -07:00
reset reset: Introduce git_reset_default() 2013-02-05 20:33:03 +01:00
resources Added some tests for issue #1397 2013-03-25 14:03:16 -07: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 Fix some diff ignores and submodule dirty workdir 2013-03-25 23:58:40 -07:00
submodule Three submodule status bug fixes 2013-03-18 17:24:13 -07:00
threads tests: fix code style in threads/basic.c 2013-02-07 02:04:17 -08:00
trace Fix various build warnings 2013-03-14 15:09:29 -07:00
clar_libgit2.c Add cl_repo_set_bool and cleanup tests 2013-03-22 14:27:56 -07:00
clar_libgit2.h Add cl_repo_set_bool and cleanup tests 2013-03-22 14:27:56 -07:00
clar.c Update to latest Clar 2013-03-22 14:23:18 -07:00
clar.h Update to latest Clar 2013-03-22 14:23:18 -07:00
generate.py Update to latest Clar 2013-03-22 14:23:18 -07: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.