libgit2/tests
Patrick Steinhardt 2696c5c3ec repository: make check if repo is a worktree more strict
To determine if a repository is a worktree or not, we currently check
for the existence of a "gitdir" file inside of the repository's gitdir.
While this is sufficient for non-broken repositories, we have at least
one case of a subtly broken repository where there exists a gitdir file
inside of a gitmodule. This will cause us to misidentify the submodule
as a worktree.

While this is not really a fault of ours, we can do better here by
observing that a repository can only ever be a worktree iff its common
directory and dotgit directory are different. This allows us to make our
check whether a repo is a worktree or not more strict by doing a simple
string comparison of these two directories. This will also allow us to
do the right thing in the above case of a broken repository, as for
submodules these directories will be the same. At the same time, this
allows us to skip the `stat` check for the "gitdir" file for most
repositories.
2017-05-19 09:44:44 +02:00
..
apply git_patch_parse_ctx: refcount the context 2016-05-26 13:01:08 -05:00
attr cl_git_exec -> cl_git_expect 2017-02-17 13:01:49 +00:00
blame blame: use size_t for line counts in git_blame_hunk 2015-12-01 09:02:47 +01:00
buf git_buf_quote/unquote: handle > \177 2016-05-26 13:01:07 -05:00
checkout checkout::tree test: cleanup memory leak 2017-01-23 17:32:13 -06:00
cherrypick merge: rename git_merge_tree_flags_t -> git_merge_flags_t 2015-11-25 15:37:05 -05:00
clar clar: test chdir 2015-06-29 22:13:40 +00:00
clone tests: clone::local: compile UNC functions for Windows only 2017-05-15 07:34:04 +02:00
commit Fix initial commit test 2016-05-04 11:15:56 -07:00
config tests: config: verify functionality with read-only backends 2017-04-26 09:35:11 +02:00
core tests: core::features: only check for HTTPS if it is supported 2017-04-25 10:15:59 +02:00
date Added RFC2822 date format test cases 2014-04-11 21:55:36 +02:00
describe describe: only abort without tags if fallback is not allowed. 2015-04-07 17:32:56 +02:00
diff diff_parse: correctly set options for parsed diffs 2017-03-14 13:09:35 +01:00
fetchhead tests: update error message checking 2016-12-29 12:55:49 +00:00
filter filter: only close filter if it's been initialized correctly 2017-04-07 16:34:47 +02:00
graph Added a no path test for git_graph_descendant_of 2014-04-08 16:32:06 +02:00
index tests: index: do not re-allocate index 2016-08-29 13:29:01 +02:00
iterator tests: add merge-conflict branch for testrepo 2017-02-13 10:13:02 +01:00
merge merge_trees: introduce test for submodule renames 2017-02-09 18:13:06 +00:00
network Remove unused static functions 2016-06-21 07:58:33 +02:00
notes note: use a git_buf to return the default namespace 2015-03-17 20:50:02 +01:00
object object validation: free some memleaks 2017-05-01 22:55:12 +01:00
odb odb: verify object hashes 2017-04-28 14:05:45 +02:00
online cmake: define GIT_HTTPS when HTTPS is supported 2017-04-25 10:15:59 +02:00
pack Honor core.fsyncObjectFiles 2017-03-02 09:11:33 +00:00
patch diff: treat binary patches with no data special 2016-09-05 12:26:47 -05:00
path index: allow read of index w/ illegal entries 2016-02-17 13:10:33 +00:00
perf repository: remove log message override for switching the active branch 2015-03-03 14:40:50 +01:00
rebase rebase: ignore untracked files in submodules 2017-03-03 15:07:54 -05:00
refs Merge pull request #4030 from libgit2/ethomson/fsync 2017-03-22 20:29:22 +00:00
remote remote: test insteadOf for anonymous remotes 2015-05-31 13:26:05 +02:00
repo tests: repo: fix repo discovery tests on overlayfs 2017-05-03 15:04:46 +02:00
reset odb: actually insert the empty blob in tests 2016-08-05 20:34:19 -04:00
resources submodule: resolve URLs relative to main worktree 2017-03-17 09:27:56 +01:00
revert merge: rename git_merge_tree_flags_t -> git_merge_flags_t 2015-11-25 15:37:05 -05:00
revwalk Skip uninteresting commits in revwalk timesort iterator 2017-03-09 14:01:10 +01:00
stash stash: const up conflict params 2015-06-29 21:23:09 +00:00
status cl_git_exec -> cl_git_expect 2017-02-17 13:01:49 +00:00
stress diff: introduce binary diff callbacks 2015-06-12 09:39:20 -04:00
submodule repository: make check if repo is a worktree more strict 2017-05-19 09:44:44 +02:00
threads tests: threads::basic: remove unused function exit_abruptly 2017-05-15 07:34:04 +02:00
trace Include stacktrace summary in memory leak output. 2015-06-29 16:39:11 -04:00
transport tests: transport: fix memory leaks with registering transports 2016-03-11 11:06:42 +01:00
win32 Merge pull request #3613 from ethomson/fixups 2016-02-18 12:31:56 +01:00
worktree refs: update worktree HEADs when renaming branches 2017-04-05 13:50:38 +02:00
clar_libgit2_timer.c Converted cl_perf_timer to use git__timer internally. 2015-03-03 09:57:50 -05:00
clar_libgit2_timer.h Converted cl_perf_timer to use git__timer internally. 2015-03-03 09:57:50 -05:00
clar_libgit2_trace.c Include stacktrace summary in memory leak output. 2015-06-29 16:39:11 -04:00
clar_libgit2_trace.h Provide mechanism to let CLAR globally setup git_trace() 2015-03-02 08:20:27 -05:00
clar_libgit2.c tests: provide better pass/failure error messages 2017-02-17 12:58:57 +00:00
clar_libgit2.h cl_git_exec -> cl_git_expect 2017-02-17 13:01:49 +00:00
clar.c clar: fix parsing of test suite prefixes 2016-08-04 11:49:39 +02:00
clar.h Update to clar 2b73f5e 2015-02-27 00:30:50 -05:00
generate_crlf.sh crlf: script to generate expected crlf data 2015-06-22 11:59:58 -04:00
generate.py Update clar to e3985dd 2014-12-07 22:09:00 +08:00
main.c Include stacktrace summary in memory leak output. 2015-06-29 16:39:11 -04:00
README.md Rename tests-clar to tests 2013-11-14 14:05:52 -08:00
valgrind-supp-mac.txt Test cancel from indexer progress callback 2013-12-11 15:02:20 -08: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.