OpenHarmony XTS——HatsHdfDisplayComposerAdditionalUtTest报错分析
写作环境
- 5.0.3
- rk3568 arm64
测试现象
- testGetDisplayPowerStatus001
- testGetDisplayPowerStatus003
- testGetDisplayPowerStatus004
- testGetDisplayBacklight001
- testGetDisplayBacklight003
- testGetDisplayBacklight004
- testGetDisplayReleaseFence001
- testGetDisplayReleaseFence003
- testGetDisplayReleaseFence004
均失败

分析过程
1.首先回到源码,HatsHdfDisplayComposerAdditionalUtTest模块的源码是test/xts/hats/hdf/display/composer/unittest_additional/hdi_composer_ut.cpp,查看testGetDisplayPowerStatus001的函数,可以看到传入了设备ID 20,然后获取显示设备电源状态。 设备只有一个显示设备0,不存在显示设备20 !!! 所以testGetDisplayPowerStatus001这个case失败

然后下面还有一个宏DISPLAY_COMMUNITY控制测试结果。可以得出结论:testGetDisplayPowerStatus001这个case,如果定义了DISPLAY_COMMUNITY就是社区版,社区版获取设备ID 20设备电源状态失败也是pass的。商业版获取设备ID 20设备电源状态成功才能pass。

追代码发现DISPLAY_COMMUNITY这个宏由drivers/peripheral/display/display_config.gni中drivers_peripheral_display_community特性来控制,且默认是关闭的。跟踪代码发现,如果打开DISPLAY_COMMUNITY这个宏的话,会增加很多测试项。
2.同理,最后整理可知testGetDisplayPowerStatus*测试显示设备电源管理功能在各种设备ID边界条件下的正确性和稳定性。
- testGetDisplayPowerStatus001:测试最大设备ID(20)的边界情况
- testGetDisplayPowerStatus002:测试最小设备ID(0)的边界情况
- testGetDisplayPowerStatus003:测试随机设备ID(15)的情况
- testGetDisplayPowerStatus004:测试负值设备ID(-1)的情况
显示设备ID 20、15、-1并不存在,自然testGetDisplayPowerStatus001、testGetDisplayPowerStatus003、testGetDisplayPowerStatus004样例失败。
解决办法
申请豁免
更多推荐



所有评论(0)