<commit_before>MooCoverage
=========================

MooCoverage is a simple source-code instrumentation tool for C/C++, primarily targeting measurement of test coverage. It has been developed as my Bachelor's thesis.

	 __________________________________
	< Our official test coverage tool! >
	 ----------------------------------
	        \   ^__^
	         \  (oo)\_______
	            (__)\       )\/\
	                ||----w |
	                ||     ||

**Warning**: This is a very alpha-version tool, with numerous known bugs and limitations. It is (currently) not recommended to be used in its current form as a serious test-coverage solution.

MooCoverage is based on [LLVM](http://llvm.org) and [Clang](http://clang.llvm.org) version 3.7 (note that Clang 3.6 needs to be patched with *clang36_patch.diff*). It uses Clang to parse the source code to be instrumented and build an AST - then it performs the instrumentation based on the AST. It also uses some LLVM libraries, most notably for command line handling.

If you read Hungarian, the best resource for getting acquainted with the project is reading my [BSc thesis](http://gaborkozar.me/szakdolgozat.pdf).

The project uses the MIT license: you can do whatever you wish with it, so long as you don't hold me liable and you give credit where credit is due.

Configuration and building
--------------------------------------------------------------

Configuration is done simply using CMake. Make sure that the LLVM binaries are in your PATH: `llvm-config` is invoked during the configuration. Use GCC 4.8 or later to compile.

	mkdir build
	cd build
	cmake ..
	make<commit_msg>Fixed link to the BSc thesis.<commit_after>MooCoverage
=========================

MooCoverage is a simple source-code instrumentation tool for C/C++, primarily targeting measurement of test coverage. It has been developed as my Bachelor's thesis.

	 __________________________________
	< Our official test coverage tool! >
	 ----------------------------------
	        \   ^__^
	         \  (oo)\_______
	            (__)\       )\/\
	                ||----w |
	                ||     ||

**Warning**: This is a very alpha-version tool, with numerous known bugs and limitations. It is (currently) not recommended to be used in its current form as a serious test-coverage solution.

MooCoverage is based on [LLVM](http://llvm.org) and [Clang](http://clang.llvm.org) version 3.7 (note that Clang 3.6 needs to be patched with *clang36_patch.diff*). It uses Clang to parse the source code to be instrumented and build an AST - then it performs the instrumentation based on the AST. It also uses some LLVM libraries, most notably for command line handling.

If you read Hungarian, the best resource for getting acquainted with the project is reading my [BSc thesis](https://dl.dropboxusercontent.com/u/17147594/szakdolgozat.pdf).

The project uses the MIT license: you can do whatever you wish with it, so long as you don't hold me liable and you give credit where credit is due.

Configuration and building
--------------------------------------------------------------

Configuration is done simply using CMake. Make sure that the LLVM binaries are in your PATH: `llvm-config` is invoked during the configuration. Use GCC 4.8 or later to compile.

	mkdir build
	cd build
	cmake ..
	make
{'fraction_non_alphanumeric': 0.13770294648226097, 'fraction_numerical': 0.0072158749248346366, 'mean_word_length': 2.6006493506493507, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4363793', 'n_tokens_mistral': 875, 'n_tokens_neox': 796, 'n_words': 408}