2010-07-11 11 views
5

Estoy tratando de usar gcov en el proyecto de iPhone y seguí las instrucciones de Apple descritas here, pero no funciona.iPhone: ¿Cómo puedo usar gcov?

Cuando construyo e inicio el proyecto configurado, se crea el archivo .gcda para cada archivo de objeto. Pero no se graban líneas ejecutadas en archivos .gcda. (CoverStory muestra todas las coberturas son 0%)

Acabo de agregar una clase simple al proyecto de plantilla de la siguiente manera.

@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 

me asignaron esta clase y llamar func1 de aplicación: didFinishLaunchingWithOptions, y espera que la cobertura de SomeClass se mostró (50% o menos).

Estoy usando OSX 10.6.4, iPhone SDK 4.0 y Xcode 3.2.3. ¿Se necesitan algunas configuraciones más? Por favor guía.

ACTUALIZACIÓN 15/07/2010:

he probado todas estas sugerencias en el link @tonclon me dio, pero no funciona todavía. En la siguiente descripción, es lo que probé.

  1. Cacao aplicación compilada por GCC 4.0 En la configuración del proyecto de aplicación "Cacao",

    • GCC_INSTRUMENT_PROGRAM_FLOW_ARCS establece en Sí
    • GCC_GENERATE_TEST_COVERAGE_FILES establece en Sí
    • establecen Flag Otros enlazador para -lgcov
    • conjunto Versión del compilador C/C++ a 4.0

    Funcionó, los archivos .gcda se generaron con información de cobertura como se esperaba. En proyecto con iPhone SDK 4.0, sin embargo, no puedo utilizar la misma configuración debido gcc 4.0 no puede compilar algunas de sintaxis en SDK 4.0 (ex Bloques)

  2. usando la biblioteca gcov costumbre en google-caja de herramientas En lugar de configurar -lgcov en Other Linker Flag, Intenté custom gcov library included in google-toolbox-for-mac, pero los archivos .gcda generados muestran que la cobertura es 0%. (mismo resultado)

¿Puede decirme qué debo hacer a continuación? Cualquier sugerencia es apreciada

+0

¿Ha seguido todas las sugerencias dadas aquí: http: // stackoverflow.com/questions/1385568/why-doesnt-gcov-report-any-lines-being-covered-by-my-unit-tests – tonklon

+0

@tonclon Muchas gracias por su información, probé estas sugerencias en ese enlace, pero no funcionó aún ... estoy actualizando mi pregunta. ¿Puede darme más consejos sobre este tema? – taichino

+0

Algo inútil, pero gcov ya no es compatible; dejamos de usarlo. –

Respuesta

0

un par de cosas:

  1. Apagar cabeceras prefijo
  2. Asegúrese de que salga "correctamente"

Por favor, echa un vistazo a las páginas gcov aquí (http://code.google .com/p/google-toolbox-for-mac/w/list) y ver si ayudan en absoluto. Tengo gcov trabajando con Xcode 3.2.5 e iOS4.2.

Cuestiones relacionadas