2013-03-25 33 views
7

Używam gcov do testu zasięgu na platformie macosx. Kończę konfigurację do Xcode przez zestaw:Czy jest jeszcze połączenie dwóch plików gcov w jeden

1. Build Settings ==> Generate Test Coverage Files == Yes 
2. Build Settings ==> Instrument Progaram Flow == Yes 
3. Build Phases ==> Link Binary with library ==> add "libprofile_rt.dylib" 

Następnie generuje pliki „Test.d, Test.dia, Test.gcno, Test.gcda, Test.o” Następnie używam polecenia gcov-4.2 -b Test.gcno wygenerować plik Test.m.gcov (to jest to, co chcę), ale następnym razem gdy uruchamiam przypadków testowych ponownie pliki "Test.d, Test.dia, Test.gcno, Test.gcda, Test.o" zostaną wygenerowane ponownie, a dane zostaną zresetowane.

Mam więc dwa pytania:

  1. Czy jest jakiś sposób dla mnie, aby dane w tych plikach pokrycia zgromadzonych, aby można było uruchomić tyle razy mojego projektu, a następnie generowanie plików na końcu.
  2. Jeśli nr 1 jest beznadziejny, czy mógłbyś mi powiedzieć, jak pliki merge two Test.gcno (generowane przez dwa razy "działa") w jeden. Staram gcov w terminalu Poniżej znajdują się opcje polecenia gcov:

    gcov-4.2 -help 
    Usage: gcov [OPTION]... SOURCEFILE 
    
    Print code coverage information. 
    
        -h, --help      Print this help, then exit 
        -v, --version     Print version number, then exit 
        -a, --all-blocks    Show information for every basic block 
        -b, --branch-probabilities  Include branch probabilities in output 
        -c, --branch-counts    Given counts of branches taken 
                rather than percentages 
        -n, --no-output     Do not create an output file 
        -l, --long-file-names   Use long output file names for included 
                source files 
        -f, --function-summaries  Output summaries for each function 
        -o, --object-directory DIR|FILE Search for object files in DIR or called FILE 
        -p, --preserve-paths   Preserve all pathname components 
        -u, --unconditional-branches Show unconditional branch counts too 
    
    For bug reporting instructions, please see: 
    <URL:http://developer.apple.com/bugreporter>. 
    

Dzięki za pomoc z góry

Odpowiedz

15

Zazwyczaj workflow dla gcov jest

  1. kompilacji i konsolidacji z obsługą pokrycia (-fprofile-arcs -ftest-coverage)
  2. Uruchamiaj pliki wykonywalne, prawdopodobnie wiele razy, możliwe różne parametry/ustawienia tings. Spowoduje to utworzenie akumulacyjne informacje o użytkowaniu w .gcda plików
  3. Invoke gcov aby uzyskać statystyki pokrycia w formacie czytelnym dla człowieka (.gcov)

Więc w zasadzie, kolejne przebiegi wniosku spowoduje zgromadzonych statystyk zasięgu. Tyle, że te nagromadzenia będą miały miejsce w plikach .gcda, a nie w plikach .gcov, więc za każdym razem, gdy chcesz zobaczyć zaktualizowane statystyki, musisz ponownie uruchomić gcov.