libgit2/tests
Patrick Steinhardt 85addddf4c refspec: do not set empty rhs for fetch refspecs
According to git-fetch(1), "[t]he colon can be omitted when <dst>
is empty." So according to git, the refspec "refs/heads/master"
is the same as the refspec "refs/heads/master:" when fetching
changes. When trying to fetch from a remote with a trailing
colon with libgit2, though, the fetch actually fails while it
works when the trailing colon is left out. So obviously, libgit2
does _not_ treat these two refspec formats the same for fetches.

The problem results from parsing refspecs, where the resulting
refspec has its destination set to an empty string in the case of
a trailing colon and to a `NULL` pointer in the case of no
trailing colon. When passing this to our DWIM machinery, the
empty string gets translated to "refs/heads/", which is simply
wrong.

Fix the problem by having the parsing machinery treat both cases
the same for fetch refspecs.
2016-10-01 17:40:41 +02:00
..
attr ignore: don't use realpath to canonicalize path 2016-04-11 15:58:58 -04:00
blame blame: use size_t for line counts in git_blame_hunk 2015-12-01 09:02:47 +01:00
buf buf test: cleanup memory leak 2015-02-13 09:28:12 -05:00
checkout checkout: use empty baseline when no index 2016-10-01 17:40:38 +02: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 commit: fix extraction of single-line signatures 2016-04-11 15:58:57 -04:00
config leaks: fix some leaks in the tests 2016-04-11 16:16:55 -04:00
core Fixed bug while parsing INT64_MIN 2016-10-01 17:40:40 +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 tree: re-use the id and filename in the odb object 2016-04-11 15:58:58 -04:00
fetchhead index, iterator, fetchhead: plug leaks 2015-06-26 19:00:33 +02:00
filter wildcard filters: move CHANGELOG message to 0.23+1 2015-07-10 09:53:30 -05:00
graph Added a no path test for git_graph_descendant_of 2014-04-08 16:32:06 +02:00
index test: ensure we can round-trip a written tree 2016-10-01 17:40:37 +02:00
merge win32: introduce p_timeval that isn't stupid 2016-02-12 10:34:15 -08:00
network Tell the git_transport about the custom_headers 2015-09-08 14:02:33 -04:00
notes note: use a git_buf to return the default namespace 2015-03-17 20:50:02 +01:00
object threads: split up OS-dependent thread code 2016-10-01 17:40:38 +02:00
odb odb: Prioritize alternate backends 2015-10-14 20:53:01 +02:00
online refspec: do not set empty rhs for fetch refspecs 2016-10-01 17:40:41 +02:00
pack Silence unused return value warning 2014-09-26 12:12:09 +02: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: persist a single in-memory index 2016-02-15 19:27:06 +00:00
refs refs::create: strict object creation on by default 2016-04-11 15:58:58 -04:00
remote remote: test insteadOf for anonymous remotes 2015-05-31 13:26:05 +02:00
repo Fix repository discovery with ceiling_dirs at current directory 2016-10-01 17:40:40 +02:00
reset reset: use real ids for the tests 2016-04-11 15:58:58 -04:00
resources tests: use legitimate object ids 2016-02-28 18:54:56 -05:00
revert merge: rename git_merge_tree_flags_t -> git_merge_flags_t 2015-11-25 15:37:05 -05:00
revwalk merge: Fix memory leak in test 2015-11-02 13:47:04 +01:00
stash stash: const up conflict params 2015-06-29 21:23:09 +00:00
status tests: skip the unreadable file tests as root 2016-04-11 16:05:51 -04:00
stress diff: introduce binary diff callbacks 2015-06-12 09:39:20 -04:00
submodule typos in comments 2015-12-21 22:18:07 +03:00
threads threads: split up OS-dependent thread code 2016-10-01 17:40:38 +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-04-11 14:15:28 -04:00
win32 Merge pull request #3613 from ethomson/fixups 2016-02-18 12:31:56 +01: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: use out-of-the-way config dir in sandbox 2015-11-17 11:22:01 -05:00
clar_libgit2.h git__getenv: utf-8 aware env reader 2015-07-02 16:35:43 +00:00
clar.c clar: update to 08f434d 2015-03-17 19:04:48 -04: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.