Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History

README.md

Outline

Unit Tests

To build the unit tests, execute:

cd ../mapcodelib
gcc -DDEBUG -O -c mapcoder.c
cd ../test
gcc -DDEBUG -O -DDEBUG unittest.c -lm -lpthread -o unittest ../mapcodelib/mapcoder.o

To execute the tests, simply execute:

./unittest

Using valgrind to Detect Memory Leaks

Compile and run as follows to use valgrind (http://valgrind.org) to detect memory leaks:

cd ../mapcodelib
gcc -g -O0 -c mapcoder.c
cd ../test
gcc -g -O0 unittest.c -lm -lpthread -o unittest ../mapcodelib/mapcoder.o
valgrind --leak-check=yes ./unittest 

Using the Address Sanitizer (from CLang) to Detect Memory Errors

Or, add -fsanitize=address to run the address sanitizer:

cd ../mapcodelib
gcc -O -c mapcoder.c
cd ../test
gcc -O unittest.c -lm -lpthread -fsanitize=address -o unittest ../mapcodelib/mapcoder.o

And add the environment variable ASAN_OPTIONS to your shell:

ASAN_OPTIONS=debug=true:strict_string_checks=1:detect_stack_use_after_return=true:
    detect_invalid_pointer_pairs=99999:detect_container_overflow=true:
    detect_odr_violation=2:check_initialization_order=true:strict_init_order=true

Using gprof to Profile the Library

Compile and run as follows to use gprof to profile the library:

cd ../mapcodelib
gcc -g -O0 -c mapcoder.c -pg
cd ../test
gcc -g -O0 unittest.c -lm -lpthread -o unittest ../mapcodelib/mapcoder.o -pg

Using gcov to Show Test Coverage

Compile and run as follows to use gcov to show test coverage for the libray:

cd ../mapcodelib
gcc -fprofile-arcs -ftest-coverage -O0 -c mapcoder.c 
cd ../test
gcc  -fprofile-arcs -ftest-coverage -O0 unittest.c -lm -lpthread -o unittest ../mapcodelib/mapcoder.o -pg
./unittest
cd ../mapcodelib
gcov mapcoder.c
cd ../test
gcov unittest.c

The test coverage reports are the *.gcov text files.

Using Microsoft Visual C++

If you use Microsoft Visual C++, you may need to add the following defines to your preprocessor settings:

NO_POSIX_THREADS
_CRT_SECURE_NO_WARNINGS
_CRT_NONSTDC_NO_DEPRECATE
Morty Proxy This is a proxified and sanitized view of the page, visit original site.