2013-01-24 15 views
5
#include <mpi.h> 
double f() { 
    double timer = MPI_Wtime(); 
    return timer; 
} 

Điều tôi đang tìm kiếm là một số chức năng MPI giả, vì vậy tôi có thể #include <mpi_mocks.h> thay vì mpi.h và làm cho nó được biên dịch mà không cần liên kết với thư viện MPI. Nó cũng có thể giống như #define MOCK sẽ kích hoạt hành vi này trong mpi.h.Làm thế nào để có thể kiểm tra mã C C++ sử dụng các cuộc gọi MPI: có bất kỳ tập hợp các chức năng mô phỏng nào, mà tôi có thể sử dụng không?

Trả lời

1

Theo như tôi thấy, không có mocks bạn chỉ có thể # bao gồm và được thực hiện. Tuy nhiên, nó không phải là vấn đề lớn để tự viết các hàm cần thiết và cho bất kỳ khung mocking nào bạn đã chọn để sử dụng. Chỉ cần bắt đầu với một tiêu đề rỗng và tìm kiếm các hàm mà trình biên dịch của bạn phàn nàn.

+0

Ý của bạn là "#inlcude và được thực hiện"? Hơn tôi phải liên kết nó với một thư viện, có thực hiện MPI_Wtime và đó là cái gì tôi đang cố gắng tránh (như đã đề cập trong câu hỏi). Tôi có nhớ điều gì không? –

+0

Tôi đồng ý nó không phải là một việc lớn ít nhất cho MPI_Wtime, nhưng sau đó tôi có thể cần cái gì khác, và sau đó cái gì khác, và sau đó bạn có một bánh xe tái phát minh. –

+0

Với "#include and be done", tôi có nghĩa là không có 'mpi_mocks.h' ở đó, đó là thư viện nhại chỉ tiêu đề cho mpi. Ít nhất tôi nghi ngờ rằng có một, amon những thứ khác bởi vì thông thường bạn muốn có mocks như vậy trong phong cách của khuôn khổ mocking bạn sử dụng, và những người có API khác nhau (ví dụ như google mocks, rùa mocks, vv). Để làm một điều như vậy tôi có thể tưởng tượng trước tiên #include một mpi_mocks.h rỗng, chạy trình biên dịch, thu thập tất cả các khiếu nại của nó về các hàm MPI_something chưa biết và sử dụng một số ngôn ngữ kịch bản để tạo mpi_mocks.h với tất cả các chức năng cần thiết. –

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