libgit2/tests
Patrick Steinhardt 95fa38802f pqueue: resolve possible NULL pointer dereference
The `git_pqueue` struct allows being fixed in its total number of
entries. In this case, we simply throw away items that are
inserted into the priority queue by examining wether the new item
to be inserted has a higher priority than the previous smallest
one.

This feature somewhat contradicts our pqueue implementation in
that it is allowed to not have a comparison function. In fact, we
also fail to check if the comparison function is actually set in
the case where we add a new item into a fully filled fixed-size
pqueue.

As we cannot determine which item is the smallest item in absence
of a comparison function, we fix the `NULL` pointer dereference
by simply dropping all new items which are about to be inserted
into a full fixed-size pqueue.
2016-10-28 16:19:24 +02:00
..
apply git_patch_parse_ctx: refcount the context 2016-05-26 13:01:08 -05:00
attr ignore: fix directory limits when searching for star-star 2016-04-19 19:39:05 +02: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 git_checkout_tree options fix 2016-08-30 08:04:28 +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 Fix initial commit test 2016-05-04 11:15:56 -07:00
config leaks: fix some leaks in the tests 2016-03-31 10:41:33 -04:00
core pqueue: resolve possible NULL pointer dereference 2016-10-28 16:19:24 +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 Merge branch 'pr/3809' 2016-10-09 16:05:48 +01: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 tests: index: do not re-allocate index 2016-08-29 13:29:01 +02:00
iterator tests: use a size_t 2016-07-24 15:49:19 -04:00
merge git_diff_generated: abstract generated diffs 2016-05-26 13:01:08 -05: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 tests: blob: remove unused callback function 2016-08-09 10:09:23 +02:00
odb revwalk: introduce tests that hide old commits 2016-10-06 11:04:55 +02:00
online tests: fetchhead: fix memory leak 2016-10-27 11:29:15 +02:00
pack Silence unused return value warning 2014-09-26 12:12:09 +02: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: test rebasing a new commit with subfolder 2016-06-02 02:38:18 -05:00
refs Allow creating copies of git_reference objects. 2016-04-22 10:34:17 -07:00
remote remote: test insteadOf for anonymous remotes 2015-05-31 13:26:05 +02:00
repo repo::open: remove dead code, free buffers 2016-07-24 15:49:19 -04:00
reset odb: actually insert the empty blob in tests 2016-08-05 20:34:19 -04:00
resources Merge branch 'pr/3809' 2016-10-09 16:05:48 +01:00
revert merge: rename git_merge_tree_flags_t -> git_merge_flags_t 2015-11-25 15:37:05 -05:00
revwalk revwalk: port over the topological sorting 2016-10-06 11:04:55 +02:00
stash stash: const up conflict params 2015-06-29 21:23:09 +00:00
status ignore: allow unignoring basenames in subdirectories 2016-08-12 14:47:54 +02:00
stress diff: introduce binary diff callbacks 2015-06-12 09:39:20 -04:00
submodule status: test submodules with mixed case 2016-03-31 17:58:43 -04:00
threads threads: split up OS-dependent thread code 2016-06-20 19:32:59 +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
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: 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.