KUnit: یک چارچوب تست واحد جدید برای هسته لینوکس است

توکس

سه شنبه گذشته، مهندس گوگل ، برندان هیگینز ، مجموعه آزمایشی 31 وصله را هنگام معرفی KUnit اعلام کرد به عنوان یک چارچوب جدید تست واحد هسته لینوکس برای کمک به حفظ و بهبود کیفیت کد هسته.

این مجموعه از وصله ها پیشنهاد می کند که KUnit یک چارچوب آزمایش برای هسته لینوکس است.

بر خلاف Autotest و kselftest ، KUnit یک چارچوب آزمون واقعی است که نیازی به نصب هسته بر روی دستگاه آزمایش یا ماشین مجازی ندارد و همچنین نیازی به تست برای نوشتن در فضای کاربر در حال اجرا بر روی میزبان ندارد.

درباره KUnit

KUnit یک چارچوب شبیه سازی و آزمایش درایو سبک است که برای هسته لینوکس طراحی شده است. آزمون های واحد لزوماً دانه دانه تری دارند ، آنها می توانند تمام مسیرهای کد را به راحتی حل کنند که مشکل کلاسیک دشواری را برای استفاده از کد مدیریت خطا حل می کنند.

واحد این بسیار از JUnit ، unittest.mock پایتون و Googletest / Googlemock الهام گرفته شده است برای C ++. KUnit امکاناتی را برای تعریف موارد آزمون واحد ، گروه بندی موارد آزمایشی مرتبط به مجموعه های آزمایشی ، ایجاد زیرساخت مشترک برای اجرای تست ها ، ماکت ، جاسوسی و موارد دیگر فراهم می کند.

همانطور که برندان هیگینز آن را توصیف می کند:

یک آزمایش واحد قرار است یک واحد کد را به صورت جداگانه آزمایش کند ، از این رو نام آن است. هیچ وابستگی خارج از کنترل آزمون وجود ندارد. این بدان معنی است که هیچ وابستگی خارجی وجود ندارد ، که باعث می شود تست های سفارش برای اندازه ها سریعتر انجام شود.

همچنین ، از آنجا که هیچ وابستگی خارجی وجود ندارد ، هیچ حلقه حلقه ای برای انجام آزمایشات وجود ندارد. همچنین ، این آزمایشات واحد را تعیین کننده می کند - یک آزمون واحد ناموفق همیشه نشان دهنده یک مشکل است.

سرانجام ، از آنجا که آزمون های واحدی لزوماً دانه دانه ای دقیق تری دارند ، می توانند تمام مسیرهای کد را به راحتی حل کنند که مسئله کلاسیک را حل می کنند.

مشکل در اجرای کد مدیریت خطا.

هسته را امتحان کنید

برنده می نویسد:

"به علاوه ، KUnit سریع است: از فراخوانی تا تکمیل ، KUnit می تواند دهها آزمایش را در کمتر از یک ثانیه اجرا کند. در حال حاضر ، کل مجموعه آزمون KUnit برای KUnit در کمتر از یک ثانیه از فراخوانی اولیه اجرا می شود (به استثنای زمان کامپایل) «.

هنگامی که از او پرسیدند آیا KUnit جایگزین سایر چارچوبهای آزمایش هسته لینوکس می شود ، Brenden این موضوع را رد کرد و گفت:

"بیشتر آزمایشات موجود برای هسته لینوکس آزمایشات پایان به پایان است که جای خود را دارند. یک سیستم کاملاً تست شده دارای بسیاری از تست های واحد ، تعداد معقول تست های یکپارچه سازی و برخی تست های پایان به پایان است.

KUnit فقط در تلاش است تا فضای آزمایش درایو را که در حال حاضر به آن پرداخته نمی شود ، برطرف کند.

یک راه حل برای آزمایش لینوکس است 

KUnit مشکل را حل می کند تا بتوانید بدون نیاز به ماشین مجازی یا سخت افزار واقعی مانند ARM ، x86 ، X64 و غیره آزمایشات را انجام دهید.

با این حال ، برخلاف سایر معماری ها ، این برنامه در یک برنامه جداگانه گردآوری شده است که می تواند مانند هر برنامه دیگری مستقیماً در داخل سیستم عامل میزبان اجرا شود. برای اینکه واضح باشد ، به هیچ پشتیبانی مجازی سازی احتیاج ندارد. این فقط یک نمایش منظم است.

KUnit سریع است. به استثنای زمان کامپایل ، از اجرا تا اتمام ، KUnit می تواند دهها آزمایش را فقط در 10-20 ثانیه انجام دهد.

این ممکن است برای برخی از افراد مسئله بزرگی به نظر نرسد ، اما انجام تست های بسیار سریع و آسان باعث تغییر اساسی می شود که در آن ابتدا آزمایش و حتی نوشتن کد انجام می شود.

خارج از KUnit ، در حال حاضر هیچ چارچوب آزمایشی برای هسته موجود نیست که نیازی به نصب هسته روی دستگاه آزمایش یا ماشین مجازی نداشته باشد. و همه آنها نیاز به تست هایی دارند که باید در فضای کاربر در حال اجرا در هسته نوشته شوند. این برای Autotest صادق است ، و kselftest ، رد صلاحیت هر یک از آنها به عنوان چارچوب آزمون واحد در نظر گرفته می شود.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.