【问题结论】

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失败项的更多相关文章

  1. 【GTS】关于GtsTetheringTestCases模块的几个失败项

    GTS---关于GtsTetheringTestCases模块的几个失败项 1.run gts -m GtsTetheringTestCases -t com.google.android.tethe ...

  2. 监听Android CTS测试项解决方案(二)

    二,监听当前测试项是否是Accelerometer Measurement Test测试项 通过第一种方式介绍的,我们可以得到当前处于活动状态的Activity类似监听CTS测试当前的测试项.但是由于 ...

  3. Android 4.0.3 CTS 测试

    Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.an ...

  4. 【转】Android 4.0.3 CTS 测试

    原文网址:http://blog.csdn.net/zxm317122667/article/details/8508013 Android-CTS 4.0.3测试基本配置 1. Download C ...

  5. 【转】Android CTS 测试

    http://blog.csdn.net/zxm317122667/article/details/8508013 Android-CTS 4.0.3测试基本配置 1. Download CTS CT ...

  6. 【转】android4.1.2 CTS测试总结

    原文网址:http://blog.csdn.net/bboyliaoye/article/details/17299259 公司客户的产品要过google GMS认证,首先要过的就是兼容性测试(CTS ...

  7. CtsSecurityTestCases#ListeningPortsTest定位tcp端口与pid

    CtsSecurityTestCases#ListeningPortsTest定位tcp端口与pid [问题描述] cts失败项 armeabi-v7a CtsSecurityTestCases an ...

  8. oracle rac安装

    http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4681351&uid=29655480 参考 1.百度文库中的收藏 2. ...

  9. linux pam 控制模式

    工作类别(type).流程栈(stack)和控制模式(control) Linux-PAM 工作的"类别"(type) PAM 的具体工作主要有以下四种类别(type):accou ...

随机推荐

  1. Spring基础17——使用注解来配置Bean

    1.组件扫描 组件扫描(component scanning):Spring能够从classpath下自动扫描,侦测和实例化具有特定的注解的组件. 特定组件包括: —@Component:基本注解,标 ...

  2. Windows 实用软件

    Useful tool Listary Ditto Winsnap Quick Look Myper Splash GifCam ScreenToGif Free Download Manage Si ...

  3. Linux架构之Nginx 七层负载均衡

    第50章 Nginx七层负载均衡 一.Nginx负载均衡基本概述 1)为什么要使用负载均衡 当我们的Web服务器直接面向用户,往往要承载大量并发请求,单台服务器难以负荷.使用多台Web服务器组成集群, ...

  4. 常用windbg命令(转)

    1.查看版本信息:version.vertarget. 2.查看模块信息:lm.!dlls.!lmvi等. 3.调用栈:用k命令显示调用栈,用.frames命令切换栈帧. 4.内存操作:读内存用d命令 ...

  5. Hadoop之MapReduce 本机windows模式运行

    hadoop在windows本机运行 (1)在 windows环境下编译好的hadoop放到没有中文和空格的路径下 (2)编译好的hadoop内的hadoop.all文件要放到windows机器的wi ...

  6. [每日一讲] Python系列:数字与运算符

    数字(数值)型 Python 数字数据类型用于存储数值.数据类型是不可变(immutable)的,这就意味着如果改变数字数据类型的值,将重新分配内存空间. Python 支持三种不同的数值类型: 整型 ...

  7. Ubuntu「一键」设置全局代理

    Ubuntu「一键」设置代理 sonictl note: the DNS problem may be still there. Except proxychains. WSL (Windows Su ...

  8. Bugku 杂项 隐写

    隐写 下载后打开压缩包发现是一张图片 用winhex打开 图中红色框内是PNG的PE头 在IHDR后面的八个字节(黄色框部分)为该图片的长度.宽度信息 将黄色框内最后一个字节由A4改为F4后另存为图片 ...

  9. Git 使用的问题总结

    1.git stash pop 显示 xxx already exists, no checkout 当我们先使用 git stash save -u '保存信息说明' 来储藏更改,然后拉取代码 gi ...

  10. CF543C Remembering Strings 状压dp

    Code: #include <cstdio> #include <algorithm> #include <cstring> #define setIO(s) f ...