2010-07-11 18 views
5

Sto provando a utilizzare gcov su iPhone Project e ho seguito le istruzioni di Apple descritte here, ma non funziona.iPhone: come posso usare gcov?

Quando costruisco e vado progetto configurato, il file .gcda viene creato per ogni file oggetto. Ma nessuna riga eseguita viene registrata nei file .gcda. (CoverStory mostra tutte le coperture sono 0%)

Ho appena aggiunto una semplice classe al modello di progetto come segue.

@interface SomeClass : NSObject 
- (void)func1:(BOOL)flag; 
@end 

@implementation SomeClass 
- (void)func1:(BOOL)flag { 
    if (flag) { 
    NSLog(@"flag is YES"); 
    } 
    else { 
    NSLog(@"flag is NO"); 
    } 
} 
@end 

ho assegnato questa classe e chiamare func1 in applicazione: didFinishLaunchingWithOptions, e mi aspettavo che la copertura di SomeClass è mostrato (50% o giù di lì).

Utilizzo OSX 10.6.4, iPhone SDK 4.0 e Xcode 3.2.3. Sono necessarie altre configurazioni? Per favore guida.

UPDATE 2010/07/15:

ho provato questi suggerimenti nella link @tonclon mi ha dato, ma non ha ancora funzionato. Nella seguente descrizione è quello che ho provato.

  1. cacao applicazione compilata da GCC 4.0 Nelle impostazioni di progetto di applicazione "Cacao",

    • set GCC_INSTRUMENT_PROGRAM_FLOW_ARCS a SI
    • GCC_GENERATE_TEST_COVERAGE_FILES impostata su YES
    • impostare altre Linker Flag a -lgcov
    • imposta la versione del compilatore C/C++ su 4.0

    Ha funzionato, i file .gcda sono stati generati con le informazioni sulla copertura come previsto. Nel progetto di iPhone con SDK 4.0, tuttavia, non può usare la stessa configurazione a causa gcc 4.0 non può compilare alcune sintassi nel SDK 4.0 (ex Blocchi)

  2. utilizzando la libreria gcov personalizzato in google-tool-box Invece di impostare -lgcov in Altro Linker Flag, ho provato custom gcov library included in google-toolbox-for-mac, ma i file .gcda generati mostrano una copertura dello 0%. (stesso risultato)

Potete dirmi per favore cosa devo fare dopo? Qualsiasi suggerimento è apprezzato.

+0

Avete seguito tutti i suggerimenti qui forniti: http: // StackOverflow.it/questions/1385568/why-doesnt-gcov-report-any-lines-being-covered-by-my-unit-tests – tonklon

+0

@tonclon Grazie mille per le tue informazioni, ho provato questi suggerimenti in quel link, ma non ha funzionato ancora .. Sto aggiornando la mia domanda. Puoi dirmi altri suggerimenti su questo problema? – taichino

+0

Un po 'inutile, ma gcov non è più supportato; abbiamo rinunciato a usarlo. –

risposta

0

un paio di cose:

  1. Spegnere intestazioni prefisso
  2. Assicurati di smettere "correttamente"

Si prega di controllare le pagine gcov qui (http://code.google .com/p/google-toolbox-per-mac/w/list) e vedere se aiutano affatto. Ho gcov a lavorare con Xcode 3.2.5 e iOS4.2.

Problemi correlati