2015-12-14 14 views
9

Tôi quan tâm đến các chức năng mô phỏng và biến toàn cục để đơn vị kiểm tra mô-đun hạt nhân.Kiểm tra mô-đun hạt nhân

Ban đầu đã thử với https://github.com/ThrowTheSwitch/CMock nhưng gặp sự cố. Bất kỳ bài viết nào liên kết về cách thực hiện điều này cũng sẽ rất tuyệt. (cho các mô-đun hạt nhân). Để cung cấp thêm chi tiết ở đây: biên dịch như là một mô-đun hạt nhân sẽ lỗi vì stdio sẽ không có sẵn, biên dịch cho không gian người dùng sẽ lỗi vì nó sẽ không tìm thấy những thứ như printk.

Lý tưởng nhất là tôi sẽ thực thi cấp độ người dùng hoặc mô-đun hạt nhân để chạy thử nghiệm đơn vị trên các chức năng của tôi. Các bộ phận tôi gặp rắc rối với việc chế nhạo các phụ thuộc toàn cầu như các cấu trúc mà các hàm dựa vào để viết một bài kiểm tra phong nha.

Tôi đã trải qua một vài questionsarticlesaboutthis nhưng đã không tìm thấy một câu trả lời, hoặc một lý do dứt khoát về lý do tại sao điều này sẽ không thực hiện được.

Trả lời

4

tôi sẽ tiến hành như sau:

  • Thực hiện mô-đun hạt nhân của bạn
  • Xác định một API để cho một chương trình sử dụng mức độ kiểm tra mô-đun của bạn, có thể được dựa trên các:
    • một thiết bị ký tự trong /dev/ (nơi bạn có thể xác định ioctls thích hợp);
    • một tệp trong /proc/ (không khuyến khích);
    • cuộc gọi hệ thống cụ thể (không khuyến khích);
    • một mục trong /sys/
  • Thực hiện tại người dùng cấp một chương trình (trong trường hợp, sử dụng một khuôn khổ thích hợp như CUnit hoặc googletest), trong đó tương tác với các mô-đun hạt nhân thử nghiệm các chức năng khác nhau
+0

tôi như ý tưởng nhưng rất khó để đưa vào thực hành cho mã đã được viết. – andrei

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