【CTS】几个serialno失败项
【问题结论】
AuthorBlog:秋城https://www.cnblogs.com/houser0323/
ro.serialno的问题,只可以‘数字与大小写字母’改为字母数字组合,测试全部pass
【问题描述】
CTS三条失败项
run cts -m CtsTelephonyTestCases -t android.telephony.cts.TelephonyManagerTest#testGetDeviceId
run cts -m CtsTelephonyTestCases -t android.telephony.cts.TelephonyManagerTest#testGetDeviceIdForSlot
run cts -m CtsUsbTests -t com.android.cts.usb.TestUsbTest#testUsbSerialReadOnDeviceMatches
问题日志:
06-10 15:29:58 I/ConsoleReporter: [1/1 armeabi-v7a CtsUsbTests xxx_xxx_111_00000111] com.android.cts.usb.TestUsbTest#testUsbSerialReadOnDeviceMatches fail: junit.framework.ComparisonFailure: usb serial != adb serial expected:<[]> but was:<[xxx_xxx_111_00000111]>
at junit.framework.Assert.assertEquals(Assert.java:100)
at junit.framework.TestCase.assertEquals(TestCase.java:261)
at com.android.cts.usb.TestUsbTest.testUsbSerialReadOnDeviceMatches(TestUsbTest.java:162)
【问题分析】
- 源码追溯
cts / master / . / hostsidetests / usb / src / com / android / cts / usb / TestUsbTest.java
/**
* Check if adb serial number, USB serial number, ro.serialno, and android.os.Build.SERIAL
* all matches and meets the format requirement [a-zA-Z0-9]{6,20}
*/
public void testInstantAppsCannotReadSerial() throws Exception {
......
CommandResult result = RunUtil.getDefault().runTimedCmd(5000, "lsusb", "-v");//这一句是在linux测试机执行shell命令"lsusb -v"
......
String lsusbOutput = result.getStdout();
Pattern pattern = Pattern.compile("^\\s+iSerial\\s+\\d+\\s+([a-zA-Z0-9]{6,20})",Pattern.MULTILINE);//在上句命令的返回值中匹配,看serilnumber是不是合法即“只能由字母数字组成,且6≤lenth≤20”
Matcher matcher = pattern.matcher(lsusbOutput);
String usbSerial = "";
while (matcher.find()) {
String currentSerial = matcher.group(1).toLowerCase();
if (adbSerial.compareTo(currentSerial) == 0) {
usbSerial = currentSerial;
break;
}
}
assertEquals("usb serial != adb serial" , usbSerial, adbSerial);//由于我们的serialno是带下划线了,所以匹配为空,就抛异常了
- 实验
在理清源码测试逻辑后,我们将SN配置项修改为“无下划线”的字母数字组合
实验结果:三条均pass
【CTS】几个serialno失败项的更多相关文章
- 【GTS】关于GtsTetheringTestCases模块的几个失败项
GTS---关于GtsTetheringTestCases模块的几个失败项 1.run gts -m GtsTetheringTestCases -t com.google.android.tethe ...
- 监听Android CTS测试项解决方案(二)
二,监听当前测试项是否是Accelerometer Measurement Test测试项 通过第一种方式介绍的,我们可以得到当前处于活动状态的Activity类似监听CTS测试当前的测试项.但是由于 ...
- Android 4.0.3 CTS 测试
Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.an ...
- 【转】Android 4.0.3 CTS 测试
原文网址:http://blog.csdn.net/zxm317122667/article/details/8508013 Android-CTS 4.0.3测试基本配置 1. Download C ...
- 【转】Android CTS 测试
http://blog.csdn.net/zxm317122667/article/details/8508013 Android-CTS 4.0.3测试基本配置 1. Download CTS CT ...
- 【转】android4.1.2 CTS测试总结
原文网址:http://blog.csdn.net/bboyliaoye/article/details/17299259 公司客户的产品要过google GMS认证,首先要过的就是兼容性测试(CTS ...
- CtsSecurityTestCases#ListeningPortsTest定位tcp端口与pid
CtsSecurityTestCases#ListeningPortsTest定位tcp端口与pid [问题描述] cts失败项 armeabi-v7a CtsSecurityTestCases an ...
- oracle rac安装
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4681351&uid=29655480 参考 1.百度文库中的收藏 2. ...
- linux pam 控制模式
工作类别(type).流程栈(stack)和控制模式(control) Linux-PAM 工作的"类别"(type) PAM 的具体工作主要有以下四种类别(type):accou ...
随机推荐
- zabbix 安装中文无法显示的问题
vi /usr/share/zabbix/include/locales.inc.php把zh_CN后面参数写true 然后去选择语言吧. 如果,去选择语言的时候,你发现还是不能选择....提示:Yo ...
- uwsgi支持http长链接
http1.1支持长链接,而http1.0不支持,所以,在切换http版本号或者升级服务端版本时候,尤其要注意这个造成的影响. 当客户端以http1.1长链接方式连接服务端时,服务端如果不支持1.1, ...
- index 索引
1.创建表 drop table if exists kg_fk_user;create table kg_fk_user(id int,name string)row format delimite ...
- css将两个元素水平对齐,兼容IE8
css实现元素水平对齐 css实现水平对齐,如图 有人会说css实现这种水平对齐要兼容ie8还不简单吗?使用float: left,或者display: inline-block,不就可以了吗?是的, ...
- XTemplate模板学习和使用总结
XTemplate模板学习和使用总结 前言 XTemplate是我接触的第一个模板语言,用在公司的一个NodeJS项目中,跟它打交道经常是因为需要使用它的语法向模板中注入数据.因为是刚入门前端不久 ...
- Ubuntu操作
1. 从windows 拷贝文件到Ubuntu: scp /c/Users/init/Downloads/pycharm-community-2019.3.tar.gz alice@192 ...
- CSS盒子模型与怪异盒模型
盒子模型(Box Modle)可以用来对元素进行布局,包括内边距,边框,外边距,和实际内容这几个部分. 盒子模型分为两种 第一种是W3c标准的盒子模型(标准盒模型) .第二种IE标准 ...
- Laya 首日红点逻辑
Laya 首日红点逻辑 @author ixenos 2019-08-26 10:50:27 1.原理:显然,首日红点意味着包含进程销毁的情况,那么就要持久化存储信息,这里我们使用LocalStora ...
- getchar、getch、getche 与 gets()
一.getchar.getch.getche 1.getchar() getchar()从输入缓冲区读入一个字符,并返回这个字符的ASCII码(即函数返回值为int型),出错返回-1(EOF):如果用 ...
- SpringBoot学习-第一章
1.SpringBoot入门 开发环境:JDK1.8 开发工具:IDEA2017.3.1 1.简介: Spring Boot让我们的Spring应用变的更轻量化.比如:你可以仅仅依靠一个Java类来运 ...