이의이 최소한의 작업 예제를 시작하자 범위 보고서에서 자동으로 생성 된 예외 코드를 제거
MAIN.CPP :는
[g++/clang++] -std=c++11 -g -Og --coverage -Wall -o main main.cpp
: 나는 다음과 같은 플래그를 사용하여이 코드를 컴파일
#include <iostream>
#include <string>
int main() {
std::cout << "hello " + std::to_string(42);
return 0;
}
clang 4.0.1
gcc 4.8.5.
컴파일러는 in another stackoverflow question과 같이 실행되지 않는 예외 코드를 생성하기 때문에 코드 적용 범위가 50 % 밖에되지 않습니다.
-fno-exceptions
을 통해 예외를 비활성화하는 것은 나를위한 옵션이 아닙니다. 내가 사용하는 단위 테스트를 작성하는 코드는 예외를 사용하므로 모든 옵션을 사용할 수 없습니다.
리포트를 생성하기 위해 나는 gcovr
을 사용하고 있습니다. clang ++의 경우에는 변환하려면 llvm-cov gcov
이 필요합니다. 그러나 나는 이러한 도구에 구속되지 않습니다. 따라서이 동작을 보여주지 않는 다른 도구가 있다면 제안하십시오!
기본적으로이 코드의 단위 테스트를 컴파일/작성하고 예외가 활성화 된 상태에서 100 % 분기/조건부 적용 범위를 얻는 방법이 필요합니다. 방법이 있습니까? 당신이 기억이 없을 때 bad_alloc
가 발생 -