libgit2/tests
Patrick Steinhardt ffd264d9eb tests: repo: fix repo discovery tests on overlayfs
Debian and Ubuntu often use schroot to build their DEB packages in a
controlled environment. Depending on how schroot is configured, our
tests regarding repository discovery break due to not being able to find
the repositories anymore. It turns out that these errors occur when the
schroot is configured to use an overlayfs on the directory structures.

The reason for this failure is that we usually refrain from discovering
repositories across devices. But unfortunately, overlayfs does not have
consistent device identifiers for all its files but will instead use the
device number of the filesystem the file stems from. So whenever we
cross boundaries between the upper and lower layer of the overlay, we
will fail to properly detect the repository and bail out.

This commit fixes the issue by enabling cross-device discovery in our
tests. While it would be preferable to have this turned off, it probably
won't do much harm anyway as we set up our tests in a temporary location
outside of the parent repository.
2017-05-03 15:04:46 +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 clone::nonetwork: don't use fixed size buffer 2015-09-14 13:58:38 -04: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 tests: provide better pass/failure error messages 2017-02-17 12:58:57 +00:00
threads tests: threads::diff: fix warning for unused variable 2017-04-21 07:49:08 +00: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.