libgit2/tests-clar
Russell Belfer d730d3f4f0 Major rename detection changes
After doing further profiling, I found that a lot of time was
being spent attempting to insert hashes into the file hash
signature when using the rolling hash because the rolling hash
approach generates a hash per byte of the file instead of one
per run/line of data.

To optimize this, I decided to convert back to a run-based file
signature algorithm which would be more like core Git.

After changing this, a number of the existing tests started to
fail.  In some cases, this appears to have been because the test
was coded to be too specific to the particular results of the file
similarity metric and in some cases there appear to have been bugs
in the core rename detection code where only by the coincidence
of the file similarity scoring were the expected results being
generated.

This renames all the variables in the core rename detection code
to be more consistent and hopefully easier to follow which made it
a bit easier to reason about the behavior of that code and fix the
problems that I was seeing.  I think it's in better shape now.

There are a couple of tests now that attempt to stress test the
rename detection code and they are quite slow.  Most of the time
is spent setting up the test data on disk and in the index.  When
we roll out performance improvements for index insertion, it
should also speed up these tests I hope.
2013-07-31 16:40:42 -07:00
..
attr allow (ignore) bare slash in gitignore 2013-05-29 16:26:25 -05:00
buf buf: introduce git_buf_splice() 2012-10-25 17:42:35 +02:00
checkout test: Fix memory leak 2013-06-29 13:38:27 +02:00
clar Fix compilation warnings 2013-06-29 13:27:55 +02:00
clone Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
commit signature: extend trimming to more whitespace 2013-06-11 11:01:45 +02:00
config Add more tests for git_config_get_multivar 2013-07-09 16:45:23 -07:00
core Major rename detection changes 2013-07-31 16:40:42 -07:00
date Omit failing test on 32-bit machines. 2012-06-06 12:39:29 -07:00
diff Major rename detection changes 2013-07-31 16:40:42 -07:00
fetchhead Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
index Add tests and fix use of freed memory 2013-06-19 15:54:19 -07:00
merge Fix compilation warnings 2013-06-29 13:27:55 +02:00
network Unbreak git_remote_ls on a local transport after disconnecting. 2013-06-25 09:04:04 +02:00
notes added missing free for git_note in clar tests 2013-03-06 22:51:20 +01:00
object Fix 2013-07-15 08:14:00 +09:00
odb Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
online Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
pack indexer: kill git_indexer 2013-03-03 15:19:21 +01:00
refs revparse: Don't return a reference when asked for a git object 2013-07-13 16:07:10 +02:00
repo Add BARE option to git_repository_open_ext 2013-07-10 12:14:13 -07:00
reset introduce git_conflict_iterator 2013-05-17 16:10:48 -05:00
resources Add more tests for git_config_get_multivar 2013-07-09 16:45:23 -07:00
revwalk Update init and clean for revwalk::basic tests 2013-07-22 11:41:23 -07:00
stash Plug a couple of leaks 2013-04-20 16:20:33 +02:00
status Untracked directories with .git should be ignored 2013-07-10 12:15:03 -07:00
submodule Untracked directories with .git should be ignored 2013-07-10 12:15:03 -07:00
threads tests: fix code style in threads/basic.c 2013-02-07 02:04:17 -08:00
trace Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
clar_libgit2.c Improve ignore handling in git_status_file 2013-05-10 07:50:53 -07:00
clar_libgit2.h Major rename detection changes 2013-07-31 16:40:42 -07:00
clar.c Update clar to latest version 2013-06-17 10:23:53 -07:00
clar.h Update to latest Clar 2013-03-22 14:23:18 -07:00
generate.py Update to latest Clar 2013-03-22 14:23:18 -07: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 memory leaks in diff rename tests 2013-06-17 10:03:50 -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.