libgit2/tests-clar
Russell Belfer 3c42e4ef74 Fix initialization of repo directories
When PR #1359 removed the hooks from the test resources/template
directory, it made me realize that the tests for
git_repository_init_ext using templates must be pretty shabby
because we could not have been testing if the hooks were getting
created correctly.

So, this started with me recreating a couple of hooks, including
a sample and symlink, and adding tests that they got created
correctly in the various circumstances, including with the SHARED
modes, etc.  Unfortunately this uncovered some issues with how
directories and symlinks were copied and chmod'ed.  Also, there
was a FIXME in the code related to the chmod behavior as well.

Going back over the directory creation logic for setting up a
repository, I found it was a little difficult to read and could
result in creating and/or chmod'ing directories that the user
almost certainly didn't intend.

So that let to this work which makes repo initialization much
more careful (and hopefully easier to follow).  It required a
couple of extensions / changes to core fileops utilities, but I
also think those are for the better, at least for git_futils_cp_r
in terms of being careful about what actions it takes.
2013-02-26 11:43:14 -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 tests: Remove useless code 2013-02-05 20:33:16 +01:00
clar Update clar to a80e7f30 2013-01-21 13:39:53 -08:00
clone branch: Make git_branch_remote_name() cope with orphaned heads 2013-02-22 17:04:23 +01: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 Clear up warnings from cppcheck 2013-02-15 16:02:45 -08:00
date Omit failing test on 32-bit machines. 2012-06-06 12:39:29 -07:00
diff Rename 'exp' so it doesn't conflict with exp() 2013-02-22 14:03:44 -05:00
fetchhead Fetchhead: don't expect a tag that isn't there 2013-02-06 13:25:43 -08:00
index Vector improvements and their fallout 2013-01-27 14:17:07 -05:00
merge clar: fix merge/setup.c 2013-01-04 17:47:52 +01:00
network Merge pull request #1316 from ben/clone-cancel 2013-02-12 10:13:56 -08:00
notes Use cl_assert_equal_s() instead of strcmp(). 2013-01-25 06:55:56 +01:00
object Add more treebuilder tests 2013-02-20 11:58:21 -08: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 Even more cleanups 2013-01-03 19:17:07 +01:00
refs branch: refactor git_branch_remote_name() tests 2013-02-22 17:04:25 +01:00
repo Fix initialization of repo directories 2013-02-26 11:43:14 -08:00
reset reset: Introduce git_reset_default() 2013-02-05 20:33:03 +01:00
resources Fix initialization of repo directories 2013-02-26 11:43:14 -08:00
revwalk Simplify signature parsing 2013-02-20 17:03:18 +01:00
stash stash: Update the reference when dropping the topmost stash 2013-02-22 15:25:59 +01:00
status Fix linking error caused by ddcb28a41f. 2013-01-18 13:22:55 +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.