mirror of
https://github.com/ceph/ceph
synced 2024-12-25 12:54:16 +00:00
52 lines
1.5 KiB
Bash
Executable File
52 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
usage () {
|
|
printf '%s: usage: %s -d WORKING_DIR -o OUT_BASENAME -t TEST_DIR\n' "$(basename "$0")" "$(basename "$0")" 1>&2
|
|
echo <<EOF
|
|
WORKING_DIR should contain the source, .gcno, and initial lcov files (as created by cov-init.sh)
|
|
TEST_DIR should contain the data archived from a teuthology test.
|
|
|
|
Example:
|
|
mkdir coverage
|
|
./cov-init.sh ~/teuthology_output/foo coverage
|
|
$0 -t ~/teuthology_output/foo -d coverage -o foo
|
|
EOF
|
|
exit 1
|
|
}
|
|
|
|
OUTPUT_BASENAME=
|
|
TEST_DIR=
|
|
COV_DIR=
|
|
|
|
while getopts "d:o:t:" flag
|
|
do
|
|
case $flag in
|
|
d) COV_DIR=$OPTARG;;
|
|
o) OUTPUT_BASENAME=$OPTARG;;
|
|
t) TEST_DIR=$OPTARG;;
|
|
*) usage;;
|
|
esac
|
|
done
|
|
|
|
shift $(($OPTIND - 1))
|
|
|
|
echo $OUTPUT_BASENAME
|
|
if [ -z "$OUTPUT_BASENAME" ] || [ -z "$TEST_DIR" ] || [ -z "$COV_DIR" ]; then
|
|
usage
|
|
fi
|
|
|
|
cp $COV_DIR/base.lcov "$COV_DIR/${OUTPUT_BASENAME}.lcov"
|
|
|
|
for remote in `ls $TEST_DIR/remote`; do
|
|
echo "processing coverage for $remote..."
|
|
cp $TEST_DIR/remote/$remote/coverage/*.gcda $COV_DIR/ceph/src
|
|
cp $TEST_DIR/remote/$remote/coverage/_libs/*.gcda $COV_DIR/ceph/src/.libs
|
|
lcov -d $COV_DIR/ceph/src -c -o "$COV_DIR/${remote}_full.lcov"
|
|
lcov -r "$COV_DIR/${remote}_full.lcov" /usr/include\* -o "$COV_DIR/${remote}.lcov"
|
|
lcov -a "$COV_DIR/${remote}.lcov" -a "$COV_DIR/${OUTPUT_BASENAME}.lcov" -o "$COV_DIR/${OUTPUT_BASENAME}_tmp.lcov"
|
|
mv "$COV_DIR/${OUTPUT_BASENAME}_tmp.lcov" "$COV_DIR/${OUTPUT_BASENAME}.lcov"
|
|
rm "$COV_DIR/${remote}_full.lcov"
|
|
find $COV_DIR/ceph/src -name '*.gcda' -type f -delete
|
|
done
|