iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
自我挑戰組

System Software Introduction系列 第 21

The Verification of System Software - Device Driver Test

  • 分享至 

  • xImage
  •  

What is the Device Driver Test

Device driver會負責操控hardware並依照功能提供API給kernel,所以device driver test功能是負責驗證device driver提供的API能否正確接受呼叫而做出對應行為。

Why Device Driver Test is Needed

  1. Kernel會利用device driver使用、控制hardware,所以每一組device driver都需要經過驗證。
  2. Kernel的運作會需要多組device driver協調,所以多組device driver配合使用的正確性也需要驗證,才能確保kernel正常運作。

The Flow of Device Driver Test

  • Device driver test rule
  1. 將API所以可能的input paramters都傳入device driver API call,並且執行幾種重要驗證
  2. 將device driver內的每一個branch (if, else, switch, case)都測試過
  • Device driver test case
  1. Configuration Testing
    hardware通常可以透過jumper或switch(開關)設定成不同configuration,device driver test會在不同configuration底下驗證device driver的基本功能是否可以正常生效
  2. Functionality Testing
    確認device driver在不同的configuration下,可以完成API call提供的功能
    Error Handling Testing: 對device driver的API input parameters做合法與不合法的輸入,確認device driver API對input parameter是否執行合法性檢查,檢查到不合法的input parameters時error handking是否正確
  3. Integration Testing
    將多組功能上有相關性的device driver一起測試,確認device driver之間互相配合運作時的結果正確
  • Device driver test輔助工具
    有一些工具可以提供system software developers撰寫與執行device driver test,減少system software developers撰寫device driver test的時間。例如Windows的WDTF(Windows Device Test Framework)搭配Windows的WDK(Windows Driver Kit)提供的範本,可以快速建立device driver test的測試

The Issues in Device Driver Test

  • Wrong control register access
    使用錯誤的address、value對hardware control register access,造成hardware沒有按照device driver的預期動作。例如: 啟用PMU的device driver API因為control register的定義錯誤,呼叫之後不能啟用PMU。Solution: 重新確認hardware規格,修正control register access方式
  • Wrong control flow
    對hardware下指令的順序錯誤,造成hardware沒有正確作動。例如: hardware timer需要在開始倒數計時之前先設定好timeout,如果driver錯誤地先開始倒數計時再設定timeout,hardware timer會馬上timeout而非等到設定的timeout時間。Solution: 依照spec調整control flow,使hardware能正確作動
  • Race condition
    例如: device driver沒有正確使用critical section保護,導致同時有多組命令下給同一組hardware而讓硬體的設定值成為兩者的混合體。Solution: 調整device driver設計,使device driver避免發生race condition

上一篇
The Verification of System Software​ - DVT
下一篇
The Verification of System Software - Kernel Test​
系列文
System Software Introduction30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言