KUnit: нова рамка за модулно тестване за ядрото на Linux

смокинг

Миналия вторник, Инженерът на Google Брендън Хигинс обяви експериментален набор от 31 кръпки при въвеждането на KUnit като нова рамка за тестване на ядрото на Linux, която помага да се запази и подобри качеството на кода на ядрото.

Този набор от лепенки предлага KUnit да бъде тестова рамка за ядрото на Linux.

За разлика от Autotest и kselftest, KUnit е истинска тестова рамка, която не изисква инсталирането на ядрото на тестова машина или виртуална машина и също така не изисква тестовете да се записват в потребителско пространство, изпълнявано на хост.

Относно KUnit

KUnit е лека рамка за симулация и тестване на устройство, предназначена за ядрото на Linux. Единичните тестове задължително имат по-фина детайлност, те са в състояние да тестват всички кодови пътища, лесно решавайки класическия проблем за трудност при упражняване на код за обработка на грешки.

KUnit той е много вдъхновен от JUnit, Python unittest.mock и Googletest / Googlemock за C ++. KUnit предоставя съоръжения за дефиниране на тестови случаи, групиране на тестови случаи в тестови пакети, осигуряване на обща инфраструктура за провеждане на тестове, макети, шпиониране и много други.

Както го описва Брендън Хигинс:

Единичен тест трябва да тества отделна единица код изолирано, откъдето идва и името. Не трябва да има зависимости извън контрола на теста; това означава, че няма външни зависимости, което прави тестовете за поръчки за величини по-бързи.

Освен това, тъй като няма външни зависимости, няма обръчи, към които да скочите, за да стартирате тестовете. Освен това прави детерминирани модулни тестове - неуспешен модулен тест винаги показва проблем.

И накрая, тъй като модулните тестове непременно имат по-фина детайлност, те са в състояние да тестват всички кодови пътища, лесно решавайки класическия проблем.

Трудности при упражняване на кода за обработка на грешки.

Тествайте ядрото

Бренде пише:

„Освен това KUnit е бърз: от извикване до завършване, KUnit може да изпълни няколко десетки теста за по-малко от секунда. Понастоящем целият тестов пакет на KUnit за KUnit работи за по-малко от секунда от първоначалното извикване (с изключение на времето за компилиране) «.

На въпрос дали KUnit ще замени другите тестови рамки за ядрото на Linux, Бренден го отрече, като каза:

„Повечето от съществуващите тестове за ядрото на Linux са тестове от край до край, които имат своето място. Добре тестваната система има много модулни тестове, разумен брой интеграционни тестове и някои тестове от край до край.

KUnit се опитва само да адресира тестовото пространство на устройството, което в момента не е адресирано.

KUnit решение за тестване на Linux 

KUnit решава проблема за да можете да провеждате тестове, без да е необходима виртуална машина или реален хардуер като ARM, x86, X64 и др.

Въпреки това, за разлика от други архитектури, той е компилиран в отделна програма, която може да се изпълнява като всяка друга програма директно в хост операционната система; За да бъде ясно, той не изисква никаква поддръжка за виртуализация; Това е просто редовно шоу.

KUnit е бърз. С изключение на времето за компилиране, от изпълнението до завършването, KUnit може да изпълни няколко десетки теста само за 10-20 секунди.

Това може да не изглежда голяма работа за някои хора, но наличието на толкова бързи и лесни за провеждане тестове коренно променя начина където първо се прави тестване и дори писане на код.

Извън KUnit, понастоящем няма налични тестови рамки за ядрото, които не изискват ядрото да бъде инсталирано на тестова машина или VM и всички те изискват тестове да бъдат записани в потребителското пространство, работещо в ядрото; Това важи за Autotest и kselftest, като дисквалифицира някой от тях да не бъде считан за модулни тестови рамки.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.