Esiste un test di conformità per i compilatori C ++? [chiuso]

22

C'è, da qualche parte, uno script liberamente utilizzabile / accessibile, un file sorgente o qualsiasi altra cosa, che è in grado di misurare la conformità di un determinato compilatore C ++?

Ad esempio, il test Acid3 per i browser: link

I risultati che sogno sarebbero una nota percentuale globale (o più note, una per ogni standard, ad esempio c ++ 98, c ++ 11, c ++ 14, ecc.), e quindi test dettagliati con "successo" o "fallimento" per ognuno di essi.

Background: ho avuto una discussione sul lavoro su boost e alcuni compilatori sfidati. Il mio interlocutore ha parlato del potenziamento di un progetto accademico, perché non funzionerà con i principali compilatori C ++, e io rispondendo che i compilatori mentalmente sfidati non dovrebbero contare. Essere in grado di misurare con il codice l'effettiva conformità di un compilatore aiuterebbe sia nella valutazione del compilatore, sia nella scoperta dei "casi d'angolo" che dovrebbero essere evitati nel codice multipiattaforma compilato con essi.

Modifica: 2013-06-22

Non una risposta, ma a quanto pare, il comitato C ++ sta lavorando sull'argomento:

SG10, Feature Test: Clark Nelson (Intel). Investigation into whether and how to standardize a way for portable code to check whether a particular C++ product implements a feature yet, as we continue to extend the standard.

Fonte: link

    
posta paercebal 28.05.2013 - 23:39
fonte

3 risposte

5

Un modo per verificare la conformità di un determinato compilatore C ++ è eseguire una (grande) suite di test, cioè un mucchio di file C ++ che testano tutti gli aspetti della lingua.

I ben noti test sono i test di gcc e llvm. Questi test verificano tutti i tipi di aspetti del compilatore, compresa ovviamente la conformità. Tuttavia è difficile valutare in modo specifico la conformità in quanto (per quanto a mia conoscenza) non ci sono rapporti speciali generati sulla conformità.

In questo regno hai:

  • i test di GCC C-torture usati per testare il compilatore gcc
  • la suite di test LLVM: un mix di test diretti per il compilatore clang e il backend llvm più un set di applicazioni a tutti gli effetti per testare il compilatore.
  • il test libcxx LLVM (parte del repository libcxx) per testare il supporto per C ++ 11.

Ci sono alcuni test completi che testano la conformità C / C ++ disponibile. Purtroppo queste sono tutte licenze commerciali nell'ordine di 10k-40k.

  • SuperTest : il più esteso di questo elenco. Circa 3 milioni di test diretti verso la conformità C99, C ++, EmbeddedC, DSP-C.
  • Plum Hall . C e C ++, inclusa la libreria C ++. Include conformità ANSI C, generatore di programmi casuali, modelli di test e un interprete di scripting per controllare il processo di test complessivo.
  • Perenne . C e C ++.
  • Nullstone . Solo C.
risposta data 07.02.2014 - 12:23
fonte
4

La cosa più vicina a conoscenza di è nel contesto di una versione standard specifica . Allo stesso modo, ci sono post di blog che contengono contenuti analoghi. Tuttavia, non sono a conoscenza di un corpo, un test o una suite di test de facto o de jure che regoli su tali argomenti. Anche isocpp.org non sembra avere risorse di conformità al momento. Il più vicino che si può ottenere è probabilmente il grafico di conformità specifico di ciascun fornitore che è incoerente nella migliore delle ipotesi.

es. Clang , GCC , MSVC , Intel

Ci sono solo pochi compilatori competitivi (almeno nello spazio x86 / x64 - presumo che sia anche il caso per le piattaforme meno popolari), ma sono d'accordo che sarebbe molto bello avere un riferimento, specialmente ora che lo standard sta prendendo velocità.

    
risposta data 29.05.2013 - 00:05
fonte
0

Non sono a conoscenza di test sugli standard, sebbene il seguente URL sia il sito web ufficiale standard link .

Inoltre, molte cose che si trovano in Boost si fanno strada nello standard C ++. Secondo il dott. Kenneth Sundberg della Utah State University.

Inoltre non posso ancora verificarne l'accreditamento, sto ancora cercando di capire se è credibile, ma il Gruppo Google su link afferma che non esistono test ufficiali.

    
risposta data 29.05.2013 - 00:24
fonte

Leggi altre domande sui tag