mirror of
https://github.com/mapbox/node-fontnik.git
synced 2025-12-08 20:16:18 +00:00
30 lines
1.0 KiB
Bash
Executable File
30 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
# http://clang.llvm.org/docs/UsersManual.html#profiling-with-instrumentation
|
|
# https://www.bignerdranch.com/blog/weve-got-you-covered/
|
|
|
|
# automatically setup environment
|
|
|
|
./scripts/setup.sh --config local.env
|
|
source local.env
|
|
|
|
make clean
|
|
export CXXFLAGS="-fprofile-instr-generate -fcoverage-mapping"
|
|
export LDFLAGS="-fprofile-instr-generate"
|
|
mason install llvm-cov ${MASON_LLVM_RELEASE}
|
|
mason link llvm-cov ${MASON_LLVM_RELEASE}
|
|
make debug
|
|
rm -f *profraw
|
|
rm -f *gcov
|
|
rm -f *profdata
|
|
LLVM_PROFILE_FILE="code-%p.profraw" npm test
|
|
CXX_MODULE="./lib/binding/fontnik.node"
|
|
llvm-profdata merge -output=code.profdata code-*.profraw
|
|
llvm-cov report ${CXX_MODULE} -instr-profile=code.profdata -use-color
|
|
llvm-cov show ${CXX_MODULE} -instr-profile=code.profdata src/*.cpp -filename-equivalence -use-color
|
|
llvm-cov show ${CXX_MODULE} -instr-profile=code.profdata src/*.cpp -filename-equivalence -use-color --format html > /tmp/coverage.html
|
|
echo "open /tmp/coverage.html for HTML version of this report"
|