KUnit: kerangka pengujian unit anyar kanggo kernel Linux

Tuks

Selasa kepungkur, Insinyur Google Brendan Higgins ngumumake set eksperimen 31 patches nalika ngenalake KUnit minangka kerangka pengujian unit kernel Linux anyar kanggo mbantu ngreksa lan ningkatake kualitas kode kernel.

Set iki tambalan ngusulake manawa KUnit minangka kerangka pengujian kernel Linux.

Beda karo Autotest lan kselftest, KUnit minangka kerangka tes sejatine sing ora mbutuhake instalasi kernel ing mesin uji utawa mesin virtual lan uga ora mbutuhake tes kanggo ditulis menyang ruang pangguna sing mlaku ing host.

Babagan KUnit

KUnit minangka simulasi drive ringan lan kerangka pengujian sing dirancang kanggo Linux Kernel. Tes unit kudu duwe granularitas sing luwih apik, bisa nyoba kabeh jalur kode kanthi gampang ngrampungake masalah klasik kesulitan nindakake kode nangani kesalahan.

KUnit inspirasi banget dening JUnit, Python's unittest.mock lan Googletest / Googlemock kanggo C ++. KUnit nyedhiyakake fasilitas kanggo netepake kasus uji unit, kasus tes klompok dadi suite tes, nyedhiyakake infrastruktur umum kanggo tes tes, mockup, spionase, lan liya-liyane.

Minangka Brendan Higgins nerangake:

Tes unit mesthine bakal nyoba siji unit kode kanthi kapisah, mula jenenge. Mesthi ora ana katergantungan ing njaba kontrol tes; iki tegese ora ana katergantungan eksternal, sing nggawe tes supaya gedhene luwih cepet.

Kajaba iku, amarga ora ana katergantungan eksternal, ora ana gelung sing bisa diluncurake kanggo mbukak tes. Kajaba iku, ndadekake tes unit dadi deterministik - tes unit sing gagal mesthi nuduhake ana masalah.

Pungkasan, amarga tes unit kudu granularitas sing luwih apik, bisa nyoba kabeh jalur kode kanthi gampang ngrampungake masalah klasik.

Kesulitan nggunakake kode nangani kesalahan.

Tes Kernel

Brende nulis:

“Ditambahake, KUnit cepet banget: wiwit invokasi nganti rampung, KUnit bisa mbukak pirang-pirang lusin tes kurang saka sadetik. Saiki, kabeh tes suite KUnit kanggo KUnit mlaku kurang saka sedetik saka invasi awal (ora dikompilasi wektu) «.

Nalika takon apa KUnit bakal ngganti kerangka tes liyane kanggo kernel Linux, Brenden nolak, ujar:

"Umume tes sing ana kanggo kernel Linux yaiku tes end-to-end, sing ana gandhengane. Sistem sing wis dites kanthi apik duwe akeh tes unit, tes integrasi sing cukup, lan sawetara tes end-to-end.

KUnit mung nyoba ngatasi ruang uji coba drive sing saiki durung bisa ditangani.

KUnit solusi kanggo tes Linux 

KUnit ngatasi masalah kasebut supaya bisa mbukak tes tanpa mbutuhake mesin virtual utawa hardware nyata kayata ARM, x86, X64 lan liya-liyane.

Nanging, ora kaya arsitektur liyane, disusun dadi program kapisah sing bisa mbukak kaya program liyane langsung ing sistem operasi host; Supaya jelas, ora mbutuhake dhukungan virtualisasi; Iku mung pertunjukan biasa.

KUnit cepet. Ora kalebu wektu kompilasi, wiwit eksekusi nganti rampung, KUnit bisa mbukak pirang-pirang lusin tes mung 10-20 detik.

Iki bisa uga ora katon penting kanggo sawetara wong, nanging tes kanthi cepet lan gampang mbukak dhasar bisa ngowahi ing endi tes lan uga nulis kode rampung dhisik.

Ing njaba KUnit, saiki ora ana kerangka tes sing kasedhiya kanggo kernel sing ora mbutuhake instalasi kernel ing mesin uji utawa VM lan kabeh mbutuhake tes supaya ditulis menyang papan pangguna sing mlaku ing kernel; Iki bener kanggo Autotest, lan kselftest, dadi salah sawijining kualifikasi kanggo dianggep minangka kerangka tes unit.


Konten artikel kasebut sesuai karo prinsip kita yaiku etika editorial. Kanggo nglaporake klik kesalahan Kene.

Dadi pisanan komentar

Ninggalake komentar sampeyan

Panjenengan alamat email ora bisa diterbitake. Perangkat kothak ditandhani karo *

*

*

  1. Tanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Kontrol SPAM, manajemen komentar.
  3. Legitimasi: idin sampeyan
  4. Komunikasi data: Data kasebut ora bakal dikomunikasikake karo pihak katelu kajaba kanthi kewajiban ukum.
  5. Panyimpenan data: Database sing dianakake dening Occentus Networks (EU)
  6. Hak: Kapan wae sampeyan bisa matesi, mulihake lan mbusak informasi sampeyan.