Gần đây, tôi cần thêm kiểm tra đơn vị vào một chương trình cũ.Kiểm tra đơn vị trên chương trình có nhiều macro
Nhưng trong đó, có rất nhiều macro, như
#ifdef CONFIG_XXX
do xxx
#endif
#ifdef CONFIG_YYY
do yyy
#endif
Hiện nay, đường dẫn chương trình chung được bao phủ bởi các unit test. Vì vậy, tôi muốn thêm các xét nghiệm để bao gồm các phần macro bên trong (đường dẫn chương trình khác nhau). Có vẻ như tôi cần biên dịch và chạy chương trình của mình với các macro nhất định mỗi lần, và cách thiết kế bố cục các macro để che đường dẫn chương trình và giảm thời gian biên dịch thực sự không dễ dàng. Vì vậy, tôi có kế hoạch di chuyển tất cả các mã liên quan đến phần cứng đến thư mục vòm, bây giờ, macro đã được chuyển từ tệp c sang makefile, nhưng vẫn cần phải biên dịch với các macro nhất định mỗi lần để có được công việc UT.
Có ai có kinh nghiệm về vấn đề này trước đây không?
Cảm ơn nhận xét của bạn.
Bạn có thể xem xét thay thế từng macro bằng 'if (config.XXX)' không? Bằng cách đó, bạn loại bỏ sự cần thiết phải biên dịch lại. –
Tôi không thể, vì sự khác biệt của macro và nếu tuyên bố. –
Ý của tôi là, hãy cấu trúc lại mã của bạn để lấy cấu trúc 'config' làm đầu vào. Cấu trúc này có thể có một tập hợp các biến cờ, mỗi biến tương ứng với một trong các macro của bạn. –