문제

현재 우리는 Linux C++ 응용 프로그램용 테스트 제품군과 함께 gcov를 사용하고 있으며 라인 범위를 측정하는 데 효과적입니다.

gcov는 라인 적용 범위 외에 함수/메서드 적용 범위 보고서를 생성할 수 있습니까?

gcov가 허용하는 매개변수를 보면 가능하지 않을 것 같지만 뭔가 빠졌을 수도 있습니다.아니면 gcc에서 생성된 통계에서 함수/메소드 적용 범위 보고서를 생성할 수 있는 다른 도구가 있습니까?

업데이트: 함수/메서드 적용 범위란 테스트 중에 실행되는 함수의 비율을 의미합니다.

도움이 되었습니까?

해결책

당신이 의미하는 것은 -f 옵션으로, 기능별로 처리되는 행의 백분율을 제공합니다.gcov에 관한 흥미로운 기사가 ​​있습니다. 박사.돕스 도움이 될 수도 있습니다."man gcov"가 -f 플래그를 표시하지 않으면 gcc 제품군의 최신 버전이 있는지 확인하십시오.

편집하다: 실행되지 않은 함수의 비율을 얻으려면 함수 적용 범위 출력을 통해 간단히 구문 분석하면 됩니다. 0.00% 적용 범위는 호출되지 않은 것과 거의 동일해야 하기 때문입니다.이 작은 스크립트는 실행되지 않은 함수의 비율을 인쇄합니다.

#!/bin/bash

if test -z "$1"
then
    echo "First argument must be function coverage file"
else
    notExecuted=`cat $1 | grep "^0.00%" | wc -l`
    executed=`cat $1 | grep -v "^0.00%" | wc -l`

    percentage=$(echo "scale=2; $notExecuted / ($notExecuted + $executed) * 100" |bc)

    echo $percentage
fi

다른 팁

우리는 GCOV를 사용하기 시작했습니다 LCOV 함께. LCOV의 결과에는보고있는 "모듈"에 대해 실행되는 기능의 백분율이 포함됩니다.

편집하다: 그만큼 기준 치수 디렉토리에서 파일로 이동할 수 있습니다.

또한 GNU 컴파일러 도구를 이미 사용하고 있다면 GCOV/LCOV가 실행하기에는 너무 어렵지 않으며 생성 된 결과는 매우 인상적이라고 덧붙입니다.

LCOV 유틸리티는 훌륭하고 우리는 그것을 사용합니다. 그러나 당신이 원하는 것에 필요한 것이 필요한지 확실하지 않습니다.

우리

  1. CTAGS 사용 (위키 백과; Sourceforge) 관련 헤더 파일에서 선언 된 모든 기능을 찾기 위해.

  2. 바이너리의 모든 기능에 대한 라인 커버리지를 얻으려면 GCOV를 실행하십시오.

  3. 1 & 2의 함수 목록을 비교하여 " /"기능을 사용하는 "기능"을 생성하십시오.

우리는 그것을 공개 API 헤더에만 적용하기 때문에 "API 적용 범위"라고 부릅니다. 그러나 선택한 모든 헤더 또는 하위 집합에서만 수행 할 수 있습니다. 우리가 이런 식으로 생산하는 비율은 당신이 찾고있는 비율이라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top