Skip to content
Snippets Groups Projects
Select Git revision
  • 2a9dea016d8375c34a14e1d80a4dc29733bcc61c
  • master default protected
  • squashed
  • history
  • tourney_patches
5 results

get_coverage.sh

Blame
  • Forked from Toby Murray / swen90006-a2-2019
    Source project has a limited visibility.
    get_coverage.sh 1.38 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..."
    rm -f passbook-cov
    CLANG=${CLANG} CFLAGS="-DNDEBUG ${CFLAGS}" make passbook-cov
    
    ./passbook-cov $*
    
    ${LLVM_PROFDATA} merge -sparse passbook*.profraw -o passbook.profdata
    ${LLVM_COV} show ./passbook-cov -instr-profile=passbook.profdata
    ${LLVM_COV} report ./passbook-cov -instr-profile=passbook.profdata