2013-03-25 16 views
7

Tôi đang sử dụng gcov để kiểm tra mức độ phù hợp trong nền tảng macosx. Tôi hoàn thành cấu hình cho xcode bởi thiết lập:Có cách nào để hợp nhất hai tệp gcov vào một

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" 

Sau đó, tạo ra các tập tin "Test.d, Test.dia, Test.gcno, Test.gcda, Test.o" Sau đó, tôi sử dụng gcov-4.2 -b Test.gcno lệnh để tạo ra các tập tin Test.m.gcov (đây là những gì tôi muốn), nhưng lần sau khi tôi chạy trường hợp thử nghiệm một lần nữa, các tệp "Test.d, Test.dia, Test.gcno, Test.gcda, Test.o" sẽ được tạo lại và dữ liệu sẽ được đặt lại.

Vì vậy, tôi có hai câu hỏi:

  1. Có cách nào cho tôi để làm cho dữ liệu trong những tập tin bảo hiểm tích lũy để tôi có thể chạy rất nhiều lần các dự án của tôi và sau đó tạo ra các file ở cuối.
  2. Nếu số 1 là vô vọng, bạn có thể cho tôi biết làm cách nào để merge two Test.gcno tệp (được tạo bởi hai lần chạy) thành một. Tôi cố gắng gcov trong thiết bị đầu cuối, dưới đây là những lựa chọn cho lệnh 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>. 
    

Cảm ơn tất cả sự giúp đỡ của bạn trước

Trả lời

15

Các quy trình làm việc thông thường cho gcov được

  1. Compile và liên kết với hỗ trợ bảo hiểm (-fprofile-arcs -ftest-coverage)
  2. Chạy tệp thi hành của bạn, có thể nhiều lần, có thể với các tham số/bộ khác nhau tings. Điều này sẽ tạo ra thông tin sử dụng lũy ​​kế .gcda file
  3. Gọi gcov để có được thống kê bảo hiểm trong một định dạng con người có thể đọc được (.gcov)

Vì vậy, về cơ bản, chạy liên tiếp của ứng dụng sẽ cho kết quả thống kê bảo hiểm lũy kế. Chỉ là những tích lũy này sẽ diễn ra trong các tệp .gcda, không phải tệp .gcov, vì vậy bạn phải chạy lại gcov mỗi lần bạn muốn xem thống kê được cập nhật.

Các vấn đề liên quan