2012-10-01 14 views
9

Sto provando a impostare la copertura del codice in Xcode 4.5. Per fare ciò, ho attivato Generate Test Coverage Files e Instrument Program Flow per l'impostazione di debug. Secondo http://meandmark.com/blog/2012/08/xcode-4-generating-code-coverage-files-with-llvm/ questo è tutto ciò che serve. Tuttavia, ora il linker si lamenta che non riesce a trovare:Copertura del codice iOS interrotta in Xcode 4.5?

  • _llvm_gcda_emit_arcs
  • _llvm_gcda_emit_function
  • _llvm_gcda_end_file
  • _llvm_gcda_increment_indirect_counter
  • _llvm_gcda_start_file

ho cercato di trovare libprofile_rt.dylib, ma non sembra più esistere. Cos'altro è necessario per generare file di copertura del codice?

+0

La copertura del codice LLVM è attualmente disponibile solo per Mac OS X, non per iOS. –

+1

È disponibile per iOS. Anche le istruzioni nel post di blog non sono complete. Manca creare un obiettivo di test. – Mateusz

risposta

4

Ho anche riscontrato errori di questo linker. Ho visto gli errori usando Xcode 4.2 e 4.3. Non sono sicuro che ci siano ancora in 4.5.

Per risolverlo ho aggiunto this file dal progetto llvm al mio progetto di codice di test dell'unità. Per farlo compilare sul mio Mac ho eliminato Win32 e sys include e sostituito lo #include "llvm/Support/DataTypes.h" incluso con #include "stdint.h".

+0

Che ha funzionato magnificamente in Xcode 4.5! Grazie! – Karl

+0

Sei l'uomo! Questo è stato molto utile! – rooftop

+0

Ciao, ho ancora questo problema .. E sto cercando di ripararlo. Non sono riuscito a trovare lo stesso file esattamente come hai fatto tu, ma ho chiamato questo file: GCOVProfiling.cpp. Penso che abbiano la stessa funzionalità.Il problema è che ha così tante importazioni di altri file nel progetto llvm. Cosa devo fare con tutte le importazioni? Qualsiasi aiuto sarebbe molto apprezzato, grazie! – gyan

8

Sotto l'impostazione accumulo di destinazione (accertarsi di selezionare tutti)

Set:

  • di Apple LLVM compilatore
    • Programma di flusso Strumento: SI
    • Genera copertura dei test Files: SI
+0

La mia domanda specificava che l'ho già fatto. – Karl

+0

Questa è una risposta perfettamente corretta. L'ho appena confermato su Xcode 4.5.1. Hai solo bisogno di impostare queste impostazioni per un obiettivo di test. È possibile creare un obiettivo per il test: File -> Nuovo -> Destinazione Quindi selezionare iOS | Altro | Pacchetto di test dell'unità Cocoa Touch Inoltre, potrebbe essere necessario impostare Genera codice di profilazione: SÌ per ottenere i file gcda generati. Questo era l'unico problema che ho incontrato di recente. Non ci dovrebbero essere errori di collegamento. – Mateusz

+2

Ho lo stesso problema. i file gcno ci sono ma non i file gcda. Li ho impostati per tutte le configurazioni di build e ho impostato Generate Profiling Code su YES ma ancora, nessun file gcda. – Flax

0

I test delle unità devono passare per generare i file gcda.