KUnit: một khung kiểm tra đơn vị mới cho nhân Linux

Tux

Thứ Ba tuần trước, Kỹ sư của Google, Brendan Higgins đã công bố một bộ thử nghiệm gồm 31 bản vá khi giới thiệu KUnit như một khung kiểm tra đơn vị nhân Linux mới để giúp bảo tồn và cải thiện chất lượng của mã nhân.

Tập hợp các bản vá lỗi này đề xuất rằng KUnit là một khung thử nghiệm cho nhân Linux.

Không giống như Autotest và kselftest, KUnit là một khung thử nghiệm thực sự không yêu cầu cài đặt hạt nhân trên máy thử nghiệm hoặc máy ảo và nó cũng không yêu cầu các bài kiểm tra được ghi vào không gian người dùng đang chạy trên máy chủ.

Về KUnit

KUnit là một khung công tác mô phỏng và thử nghiệm ổ đĩa nhẹ được thiết kế cho Nhân Linux. Các bài kiểm tra đơn vị nhất thiết phải có độ chi tiết tốt hơn, chúng có thể kiểm tra tất cả các đường dẫn mã dễ dàng giải quyết vấn đề khó khăn cổ điển để thực hiện mã xử lý lỗi.

KUđơn vị nó rất lấy cảm hứng từ JUnit, unittest.mock của Python và Googletest / Googlemock cho C ++. KUnit cung cấp các phương tiện để xác định các trường hợp thử nghiệm đơn vị, nhóm các trường hợp thử nghiệm có liên quan thành các bộ thử nghiệm, cung cấp cơ sở hạ tầng chung để chạy thử nghiệm, mô hình, gián điệp và hơn thế nữa.

Như Brendan Higgins mô tả nó:

Một thử nghiệm đơn vị được cho là để kiểm tra một đơn vị mã riêng lẻ, do đó có tên. Không được có sự phụ thuộc nào ngoài tầm kiểm soát của thử nghiệm; điều này có nghĩa là không có phụ thuộc bên ngoài, điều này làm cho việc đặt hàng các bài kiểm tra độ lớn nhanh hơn.

Ngoài ra, vì không có phụ thuộc bên ngoài, nên không có vòng lặp nào để chạy thử nghiệm. Ngoài ra, nó làm cho các bài kiểm tra đơn vị trở nên xác định - một bài kiểm tra đơn vị thất bại luôn chỉ ra một vấn đề.

Cuối cùng, bởi vì các bài kiểm tra đơn vị nhất thiết phải có độ chi tiết tốt hơn, chúng có thể kiểm tra tất cả các đường dẫn mã dễ dàng giải quyết vấn đề cổ điển.

Khó thực hiện mã xử lý lỗi.

Kiểm tra Kernel

Brende viết:

“Thêm vào đó, KUnit rất nhanh: từ khi gọi đến khi hoàn thành, KUnit có thể chạy vài chục bài kiểm tra trong vòng chưa đầy một giây. Hiện tại, toàn bộ bộ thử nghiệm KUnit cho KUnit chạy trong vòng chưa đầy một giây kể từ lần gọi ban đầu (không bao gồm thời gian biên dịch) «.

Khi được hỏi liệu KUnit có thay thế các khung thử nghiệm khác cho nhân Linux hay không, Brenden đã phủ nhận điều đó và nói:

“Hầu hết các bài kiểm tra hiện có cho nhân Linux là các bài kiểm tra end-to-end, có vị trí của chúng. Một hệ thống được kiểm tra tốt có rất nhiều bài kiểm tra đơn vị, số lượng bài kiểm tra tích hợp hợp lý và một số bài kiểm tra đầu cuối.

KUnit chỉ đang cố gắng giải quyết không gian thử nghiệm ổ đĩa hiện không được giải quyết.

KUnit một giải pháp cho thử nghiệm Linux 

KUnit giải quyết vấn đề để có thể chạy các bài kiểm tra mà không cần máy ảo hoặc phần cứng thực như ARM, x86, X64 và các loại khác.

Tuy nhiên, không giống như các kiến ​​trúc khác, nó được biên dịch thành một chương trình riêng biệt có thể chạy giống như bất kỳ chương trình nào khác trực tiếp trong hệ điều hành chủ; Để rõ ràng, nó không yêu cầu bất kỳ hỗ trợ ảo hóa nào; Nó chỉ là một buổi biểu diễn thông thường.

KUnit là nhanh chóng. Không tính thời gian biên dịch, từ khi thực thi đến khi hoàn thành, KUnit có thể chạy hàng chục bài kiểm tra chỉ trong vòng 10-20 giây.

Điều này có vẻ không phải là vấn đề lớn đối với một số người, nhưng việc có các thử nghiệm nhanh và dễ chạy như vậy về cơ bản sẽ thay đổi cách nơi kiểm tra và thậm chí viết mã được thực hiện đầu tiên.

Bên ngoài KUnit, hiện không có khuôn khổ thử nghiệm nào có sẵn cho nhân không yêu cầu nhân phải được cài đặt trên máy thử nghiệm hoặc máy ảo và tất cả chúng đều yêu cầu các bài kiểm tra được ghi vào không gian người dùng đang chạy trong hạt nhân; Điều này đúng với Autotest và kselftest, khiến một trong số chúng không đủ điều kiện được coi là các khung thử nghiệm đơn vị.


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.