2015-12-14 21 views
9

Bir çekirdek modülünü birim sınama amacıyla alay işlevleriyle ve genel değişkenlerle ilgileniyorum.Bir çekirdek modülünü sınama

İlk olarak https://github.com/ThrowTheSwitch/CMock ile denedi ancak sorunla karşılaştı. Bunun nasıl yapılacağına dair herhangi bir yazı da harika olurdu. (çekirdek modülleri için). Burada daha fazla ayrıntı vermek için: kernel modülü olarak derleme hata yapar çünkü stdio kullanılamaz, kullanıcı alanı için derleme yapar çünkü printk gibi şeyler bulamaz.

İdeal olarak, işlevlerimde birim sınamasını çalıştıran bir kullanıcı düzeyinde yürütülebilir veya bir çekirdek modül olurdu. Sorun yaşadığım bölümler, iyi bir test yazabilmek için fonksiyonların bağlı olduğu yapılar gibi küresel bağımlılıklarla dalga geçiyor.

Birkaç questions ve articlesaboutthis geçtiniz ama bir cevap veya bu mümkün olmazdı neden kesin bir neden bulamamıştır.

cevap

4
şöyle ben sürdüreceğini belirtti

:

  • a:

    • bir kullanıcı düzeyinde programı ya dayandırılabilir Modülünüzü, test edelim için bir API tanımlayın sizin çekirdek modülü
    • Uygulamak /dev/'daki karakter düzeneği (uygun ioctlsleri tanımlayabilirsiniz); /proc/ bir dosyada (cesareti kırılmış)
    • ; Belirli sistem çağrıları (önerilmez);
    • /sys/
  • bir giriş çeşitli işlevselliklere
+0

I test çekirdek modülü ile birlikte etki, (CUnit veya googletest gibi uygun bir çerçeve kullanılarak durumunda) kullanıcı düzeyinde bir programın uygulanması Bu fikir gibi ama zaten yazılmış olan kod için uygulamaya koymak zordur. – andrei

İlgili konular