C ++ 컴파일러에 대한 적합성 테스트가 있습니까? [닫은]


21

어딘가에 자유롭게 사용 가능하거나 액세스 가능한 스크립트, 소스 파일 또는 지정된 C ++ 컴파일러의 준수를 측정 할 수있는 것이 있습니까?

예를 들어 브라우저에 대한 Acid3 테스트 : http://acid3.acidtests.org/

내가 꿈꾸는 결과는 전역 백분율 메모 (또는 여러 표준, 예를 들어 c ++ 98, c ++ 11, c ++ 14 등) 및 "성공"을 사용한 자세한 테스트입니다. 또는 각각의 "실패".

배경 : 부스트 및 일부 문제가있는 컴파일러에 대해 직장에서 논의했습니다. 대담자는 주요 C ++ 컴파일러에서 작동하지 않기 때문에 학업 프로젝트의 부스트에 대해 이야기했으며 정신적으로 어려움을 겪은 컴파일러는 계산해서는 안된다고 대답했습니다. 코드를 사용하여 컴파일러의 실제 적합성을 측정 할 수 있으면 컴파일러를 평가하고 크로스 플랫폼 코드로 컴파일 할 필요가없는 "코너 사례"를 찾는 데 도움이됩니다.

편집 : 2013-06-22

답은 아니지만 C ++위원회는 다음과 같은 주제를 연구하고 있습니다.

SG10, 기능 테스트 : Clark Nelson (Intel). 표준을 계속 확장함에 따라 이식 가능한 코드가 특정 C ++ 제품이 아직 기능을 구현하는지 여부를 확인하는 방법을 표준화할지 여부와 방법에 대한 조사.

출처 : http://isocpp.org/std/the-committee


:이있다 peren.com/pages/products_set.htm은 . 나는 그것을 사용하지 않았기 때문에 대답을 시도하지 않으며 C ++ 커뮤니티의 상태가 확실하지 않습니다.
yannis

1
Boost는 주요 C ++ 컴파일러에서 작동합니다. 아마도 그 컴파일러의 고대 버전이 아니며 회사가 의존하는 비교적 모호한 컴파일러는 아니지만 릴리스 노트에서 테스트 된 컴파일러 의 거대한 목록을 살펴보십시오 . 그리고 그것은 Boost 사람들이 직접 테스트 한 것입니다! Boost는 학문이라는 단어와 관련이 없으며 컴파일러를 평가할 필요가 없습니다.

4
나는이 질문을 비 웃으며 의자에서 거의 떨어졌습니다. ... 매우 유효한 질문입니다. 답변에 관심이 있습니다 ..... 2013 년입니다-확실히 우리의 툴 체인이 TDD를 사용하는 것처럼 근본적인 것입니까? "내가하는 말이 아니라 내가하는 말을 ..."
mattnz

6
마감 투표가 왜 필요한가요? 나는 이것이 매우 유효하고 관련된 질문이라고 생각합니다. 대부분의 전문가가 사용하는 대부분의 도구에는 표준 준수 증명이 필수적입니다.
mattnz

1
나는 이것이 C ++위원회의 가장 큰 재발의 실수 / 실패라고 생각합니다. 정말 똑똑한 사람들이 계속 똑같은 바보 같은 일을 계속하고 있다는 사실에 놀랐습니다.

답변:


5

주어진 C ++ 컴파일러의 적합성을 테스트하는 한 가지 방법은 (대형) 테스트 스위트, 즉 언어의 모든 측면을 테스트하는 C ++ 파일을 실행하는 것입니다.

잘 알려진 테스트 슈트는 gcc 및 llvm 테스트 슈트입니다. 이것들은 분명히 적합성을 포함하여 컴파일러의 모든 종류의 측면을 테스트합니다. 그러나 (내가 아는 한) 적합성에 대해 특별히 작성된 보고서가없는 것처럼 구체적으로 적합성을 평가하는 것은 어렵다.

이 영역에서 당신은 :

  • gcc 컴파일러 테스트에 사용되는 GCC C- 고문 테스트
  • LLVM 테스트 스위트 : clang 컴파일러 및 llvm 백엔드에 대한 지시 된 테스트와 컴파일러 테스트를위한 본격적인 애플리케이션 세트의 혼합.
  • C ++ 11 지원을 테스트하기위한 LLVM libcxx 테스트 (libcxx 저장소의 일부)

사용 가능한 C / C ++ 적합성을 테스트하기위한 광범위한 테스트 슈트가 있습니다. 아아, 이것들은 모두 10k-40k의 순서로 모든 상용 라이센스입니다.

  • SuperTest :이 목록 중 가장 광범위한 목록입니다. C99, C ++, EmbeddedC, DSP-C 준수에 대한 약 3 백만 개의 직접 테스트.
  • 매실 . C ++ 라이브러리를 포함한 C 및 C ++ ANSI C 적합성, 랜덤 프로그램 생성기, 테스트 템플릿 및 전체 테스트 프로세스를 제어하는 ​​스크립팅 인터프리터가 포함되어 있습니다.
  • 다년생 . C와 C ++.
  • 널 스톤 . C 만.

4

내가 아는 가장 가까운 것은 특정 표준 버전과 관련이 있습니다. 마찬가지로, 유사한 내용을 포함 하는 블로그 게시물 이 있습니다. 그러나 나는 그러한 사안에 대해 판결을 내리는 사실상의 또는 법정 기관, 테스트 또는 테스트 스위트를 알지 못합니다. isocpp.org 조차도 현재 준수 리소스를 가지고 있지 않은 것으로 보입니다. 가장 근접한 것은 아마도 각 공급 업체의 특정 적합성 차트 일 것입니다.

예 : Clang , GCC , MSVC , Intel

경쟁력있는 컴파일러는 거의 없습니다 (적어도 x86 / x64 공간에는-덜 인기있는 플랫폼의 경우라고 가정합니다). 그러나 참조가 있으면 매우 좋을 것입니다. 특히 표준은 다음과 같습니다. 픽업 속도.


0

다음 URL은 공식 표준 웹 사이트 comitee http://www.open-std.org/jtc1/sc22/wg21/ 이지만 표준 테스트를 인식하지 못합니다 .

또한 Boost에서 발견되는 많은 것들이 C ++ 표준으로 향합니다. 유타 주립 대학의 케네스 순드 버그 박사에 따르면

또한 아직 인증을 확인할 수 없지만 신뢰할 수 있는지 확인하려고 노력하고 있지만 Google 그룹 ( https://groups.google.com/forum/?fromgroups#!forum/comp.std) .c ++ 는 공식 테스트가 없다고 주장합니다.


선드 버그 박사? Dr. No 또는 Dr. Guttenberg처럼?
ott--

4
@ott No. 박사 학위와 같이 컴퓨터 과학.
Travis Pessetto
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.