Skip to content
Snippets Groups Projects
Select Git revision
  • 21a1d25eac9ce5197c2293f1d158032f643b0303
  • master default protected
  • 2020_gitignore_updates
  • squashed
  • history
  • tourney_patches
6 results

get_coverage.sh

Blame
  • get_coverage.sh 1.39 KiB
    #!/bin/sh
    
    if [ -z ${TOOL_SUFFIX+x} ]
    then
        # TOOL_SUFFIX not set
        # try to intelligently set TOOL_SUFFIX
        case $(uname) in
            Linux)
                TOOL_SUFFIX=-6.0
                ;;
            Darwin)
                TOOL_SUFFIX=
                ;;
            *)
                TOOL_SUFFIX=-6.0
        esac
    fi
    
    
    CLANG=clang${TOOL_SUFFIX}
    LLVM_PROFDATA=llvm-profdata${TOOL_SUFFIX}
    LLVM_COV=llvm-cov${TOOL_SUFFIX}
    
    if [ -z "$(which ${CLANG})" ]
    then
        echo "${CLANG} doesn't exist. Try setting TOOL_SUFFIX environment variable"
        exit 1
    fi
    
    if [ -z "$(which ${LLVM_PROFDATA})" ]
    then
        echo "${LLVM_PROFDATA} doesn't exist. Try setting TOOL_SUFFIX environment variable"
        exit 1
    fi
    
    if [ -z "$(which ${LLVM_COV})" ]
    then
        echo "${LLVM_COV} doesn't exist. Try setting TOOL_SUFFIX environment variable"
        exit 1
    fi
    
    echo "using ${CLANG}, ${LLVM_PROFDATA} and ${LLVM_COV}"
    
    export LLVM_PROFILE_FILE="passbook-%m.profraw"
    
    if [ $# -lt 1 ]
    then
        echo "Usage: $0 inputfile1 [inputfile2 ...]"
        exit 1
    fi
    
    
    rm -f passbook*.profraw passbook.profdata
    echo "First re-building to make sure -DNDEBUG is turned on..."
    BINARY=./bin/original/passbook-cov
    rm -f ${BINARY}
    CLANG=${CLANG} CFLAGS="-DNDEBUG ${CFLAGS}" make ${BINARY}
    
    ${BINARY} $*
    
    ${LLVM_PROFDATA} merge -sparse passbook*.profraw -o passbook.profdata
    ${LLVM_COV} show ${BINARY} -instr-profile=passbook.profdata
    ${LLVM_COV} report ${BINARY} -instr-profile=passbook.profdata