FreeSWITCH unit tests should be kept as shallow unit tests and micro benchmarks testing functionality exposed through libfreeswitch. Requirements for a new unit tests: 1. Tests must use TAP(Test Anything Protocol) output format, and must print to stderr the summary statistics of the test before exiting. 2. Each test must return 0 on successful completion, or a non-zero result in case of a failure. 3. Benchmarking stats should be output as a TAP note at the end of the test in a human and machine(regex) parsable format Use libtap from https://github.com/zorgnax/libtap cd /usr/local/src/ git clone https://github.com/zorgnax/libtap.git make PREFIX=/usr install To run a benchmark version of a unit test, update the loops count, and make sure to uncomment the 'BENCHMARK' define line. Then you can run the benchmark with: perf record ./.libs/switch_hash Once that is completed you can view the results with: perf report