mirror of
https://github.com/ultrajson/ultrajson.git
synced 2024-04-20 05:03:48 +02:00
Add gcov coverage collecting of C code (#387)
This commit is contained in:
parent
a1182b8ced
commit
adb7bac0ae
|
@ -141,3 +141,9 @@ python/version.h
|
|||
# Docker wheel build
|
||||
pip-cache/
|
||||
temp-wheels/
|
||||
|
||||
# gcov coverage files
|
||||
cov
|
||||
*.gcov
|
||||
*.gcda
|
||||
*.gcno
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Coverage for ultrajson's C code.
|
||||
# Usage:
|
||||
# CFLAGS="--coverage -O0" python setup.py -q build_ext --inplace -f
|
||||
# pytest
|
||||
# ./scripts/coverage.sh
|
||||
# Then inspect the files in the `cov` folder.
|
||||
|
||||
# The exact arguments depend on whether we're using LLVM's gcov or GNU's.
|
||||
unameOut="$(uname -s)"
|
||||
case "${unameOut}" in
|
||||
Linux*) gcov_options=(--relative-only -k);;
|
||||
Darwin*) gcov_options=(--color);;
|
||||
*) echo "Unsupported OS ${unameOut}"; exit 1;;
|
||||
esac
|
||||
|
||||
# The actual gcov instructions:
|
||||
gcov "${gcov_options[@]}" python/**.c -o build/temp.*/python
|
||||
gcov "${gcov_options[@]}" lib/**.c -o build/temp.*/lib
|
||||
|
||||
# gcov dumps everything in the cwd without any option to change this.
|
||||
# Manually move the .gcov files to a `cov` folder.
|
||||
mkdir -p cov
|
||||
rm -rf cov/*
|
||||
mv ./**.gcov cov || exit 1
|
||||
|
||||
echo Written gcov files to ./cov
|
Loading…
Reference in New Issue