原文网址:http://blog.csdn.net/linsa0517/article/details/19031479

Fail的一些修改

 

1、直接设置问题

estUnknownSourcesOffByDefault

fail

junit.framework.AssertionFailedError: Deviceshould not ship with 'Unknown Sources' enabled by default.expected:<0> butwas:<1> atandroid.provider.cts.Settings_SecureTest.testUnknownSourcesOffByDefault(Settings_SecureTest.java:183)

这种fail最好解决,直接按照字面理解就OK,设置---安全---默认关闭:未知来源。

2、permission

-- testSensorFeatures

fail

junit.framework.AssertionFailedError:PackageManager#hasSystemFeature(android.hardware.sensor.accelerometer)returns true but SensorManager#getSensorList(1) shows sensors []expected:<true> butwas:<false> atandroid.app.cts.SystemFeaturesTest.assertFeatureForSensor(SystemFeaturesTest.java:300)

一般情况修改 - > frameworks/base/data/etc/*.xml 文件,例如
android.hardware.camera.xml,platform.xml等文件,这边的文件定义了设备具有的一些权限。

--------------------------------------------------------------------------------------------------------------------

android.app.cts.SystemFeaturesTest#testSensorFeatures FAIL
junit.framework.AssertionFailedError: PackageManager#hasSystemFeature(android.hardware.sensor.light) returns true but SensorManager#getSensorList(5) shows sensors [] expected:<true> but was:<false>
原因:手机无光感
解决方法:去除..\mediatek\config\{PROJECT}\android.hardware.sensor.light.xml及
                   android.hardware.sensor.proximity.xml文件中相应选项

3、由测试而引起的非测试项出错

-- testRecordingHint

fail

java.lang.RuntimeException: start failed. atandroid.media.MediaRecorder.start(Native Method)

这种情况要根据Logcat去查看RuntimeException的具体错误。通常可以先不改,因为很难查错。

4、网络问题

-- test_isReachable

fail

java.net.UnknownHostException: Unable to resolvehost "www.google.com": No address associated with hostname atjava.net.InetAddress.lookupHostByName(InetAddress.java:426)

这类问题是由于国内的网络无法访问国外网站导致的,最好的办法就在公司搭建一个VPN,链接出去。

5、系统文件权限

-- testAllFilesInSysAreNotWritable

fail

junit.framework.AssertionFailedError: Foundwritable:

[/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_power,/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_en_file,/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_Calibrate] atandroid.permission.cts.FileSystemPermissionTest.

testAllFilesInSysAreNotWritable(FileSystemPermissionTest.java:364)

-- testNoSetuidTcpdump

fail

junit.framework.AssertionFailedError at

android.security.cts.BannedFilesTest.

assertNotSetugid(BannedFilesTest.java:59)

这些问题是系统文件权限的问题,解决方法比较土,就是全局搜索该文件,查看那些对该文件操作的脚本,然后修改即可。

上面两个fail的解决方法是:

a.   修改kernel/drivers/input/touchscreen/malata_ts.c

__ATTR(ts_power, 0777, NULL,ts_set_point),

__ATTR(ts_en_file, 0777, NULL,ts_set_point),

__ATTR(ts_ Calibrate, 0777,NULL, ts_set_point),

b.   修改system/core/include/private/android-filesystem-config.h

{ 06755, ADD_ROOT, ADD_ROOT,“system/xbin/tcpdump”}

-------------------------------------------------------------------------------------------------

android.app.cts.SystemFeaturesTest
-- testLocationFeatures
fail
junit.framework.AssertionFailedError: PackageManager#hasSystemFeature should NOT return true for android.hardware.location.networkat android.app.cts.SystemFeaturesTest.assertNotAvailable(SystemFeaturesTest.java:375)

原因:未配置相对应功能(开启Location access中所有开关(gps和wifi))
解决方法:将..\frameworks\base\data\etc\android.hardware.location.gps.xml拷贝到
                     ..\mediatek\config\{PROJECT}\android.hardware.location.gps.xml目录下并做修改
                  <permissions>
                         <feature name="android.hardware.location" />  ----打开
                         <feature name="android.hardware.location.network" />   ----打开
                         <feature name="android.hardware.location.gps" />   ---无GPS则关此项
                </permissions>

6、这种情况最多的。

-- testFocusDistances

fail

junit.framework.ComparisonFailure:expected:<infinity> butwas:<auto> at

android.hardware.cts.CameraTest.testFocusDistancesByCamera

(CameraTest.java:1386)

对于这个fail的原因是CTS对摄像头测试时,对摄像头进行参数设置,然后在读取参数后,参数出错。

这种情况要找到CameraTest源码,通常在source/cts/...下面,我们编译时没有编译到这里,仅查看代码,例如找到CameraTest.java,打开后找到1386行,行数一般情况下不会有出入,除非source下面的cts版本和下载的cts版本不一致才会找不到,找到testFocusDistancesByCamera,然后根据代码查看具体的测试,然后在找camera的源代码,使用Log跟踪,当然这个测试一定要结合做该模块的人一起改才行,不然很容易引起其他问题。

其中camera CTS测试代码在:

source/cts/tests/tests/hardware/src/android/hardware/cts/CameraTest.java

摄像头设置的相关代码在:Source/device/Samsung/exynos4/libcamera/下面,有SecCameraHWInterface_zoom.cpp、SecCameraHWInterface_zoom.h、SecCamera_zoom.cpp、SecCamera_zoom.h

找到之后通过修改后测试再修改后再测试直到CTS PASS。

(对于摄像头,应注意是几个摄像头,不然测试可能会对两个一起测试,这样就算一个摄像头调好了,能PASS了,另外一个过不了也是FAIL的。)

---------------------------------------------------------------------------

android.app.cts.SystemFeaturesTest#testCameraFeatures FAIL
junit.framework.AssertionFailedError: PackageManager#hasSystemFeature should NOT return true for android.hardware.camera.autofocus
原因:手机无自动对焦功能  
解决方法:去除..\mediatek\config\{PROJECT}\android.hardware.camera.xml文件中
                  <feature name="android.hardware.camera.autofocus" />

7.Android.app.cts.SystemFeaturesTest#testLocationFeatures
該項是測試設備利用無線網絡信號進行粗略定位的功能
Root Cause:缺少google网络定位的服务包NetworkLocation.apk,但是机器用getSystemFeature依然有这项功能。
Solution:要么移植服务包,要么disablesystemFeature。我暂时选择后者。将/framework/base/data/etc/目录下xml文件里面的所有 .”android.hardware.location.network”注释掉即通过
 
8.Android.holo.cts.HoloTest包
該項是測試設備显示的widget view是否跟他提供的图片相一致,精确到像素点。
Root Cause:分辨率设置问题
Solution:将修改build.prop

ro.sf.lcd_density=160可以通过测试,但是Blaze Launcher菜单显示不能全屏,考虑修改api

9.Android.mediastress包
該項是測試設備能否正常播放google提供的视频文件
Root Cause:确定是否将cts-media包copy到sdcard目录、确定是否正常播放视频文件。不能正常扫描播放,可能是视频驱动问题
Solution:将cts-media文件放到sdcard,检文件能正常扫描播放,测试通过。
 
10.Android.permissin.cts.DebugableTest#testNoDebuggable
该項是測試相应的app是否有debugable的标志
Root Cause:AndroidManifest文件里面android:debuggable=“true”
Solution:将android:debuggable=“true”改为false
 
11.Android.security.cts.PackageSignatureTest#testPackageSignatures
該項是測試应用包是否使用google默认的签名文件
Root Cause:使用默认的签名编译code
Solution:build/target/product/security/下面的签名换成自己做的。做法在该目录下README有详细说明

12.Libcore cts部分

Libcorects部分主要测试的是设备里面javaapi是否正常工作。当某部分异常的时候,cts对该项测试就会失败。
根据实际的工作成果,得出一般libcore测试失败大部分都跟你cts配置是否正确有关,而不是javaapi存在问题,比如测试之前是否factory reset就会影响其部分测试结果。所以在尝试各种方法无果后,进行一下reset可能它就能过。以下是我做过的一些cts debug项。
1>.Libcore.java.text.dataFormateSymbolsTest
#test_getInstance_invalid_locale
Root Cause:
Solution:执行factory reset后,pass
 
2>.Libcore.java.text.SimpleDateFormateTest#testNonDstZoneNameWithDstTimestamp
Root Cause:该测试失败原因是因为java的SimpleDateFormate类无法解析Daylight time夏令时区造成的
Solution:追api无果下,factory reset。Daylight时区正常解析,pass
 
3>.Libcore.java.util.OldTimeZoneTest包
Root Cause:java无法解析daylight夏令时区造成
Solution:factory reset
 
4>.Org.apache.harmony.luny.tests.java.net.URLConnectionTest#test_getAllowUserInteraction
Root Cause:java无法连接onearth.jpl.nasa.gov网站造成,nexus机器同样无法通过该测试
Solution:无解。Google在新版本的cts测试中已经去掉连接该网站的逻辑部分。

13、DisplayRefreshRateTest

android.view.cts.DisplayRefreshRateTest
-- testRefreshRate
fail
junit.framework.AssertionFailedError at android.view.cts.DisplayRefreshRateTest.testRefreshRate(DisplayRefreshRateTest.java:168)

A3.关于这个刷帧率的问题,采用临时修改的方法

./frameworks/base/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp下在硬件初始化阶段
  1. mRefreshRate = fbDev->fps-5;
  1. mRefreshRate = fbDev->fps-5;

调整为:

  1. mRefreshRate = fbDev->fps-4;
  1. mRefreshRate = fbDev->fps-4;

14、

Compatibility Test Package: android.permission
Test Result Details
android.permission.cts.FileSystemPermissionTest
-- testAllFilesInSysAreNotWritable fail junit.framework.AssertionFailedError: Found writable: [/sys/devices/virtual/input/input3/enable_ps, /sys/devices/pci0000:00/0000:00:03.4/i2c-5/5-0068/delay, /sys/devices/virtual/input/input3/delay_ps, /sys/devices/virtual/input/input3/enable_als, /sys/devices/virtual/input/input3/delay_als, /sys/devices/pci0000:00/0000:00:03.4/i2c-5/5-0068/enable, /sys/devices/virtual/input/input3/enable_gs] at android.permission.cts.FileSystemPermissionTest.testAllFilesInSysAreNotWritable(FileSystemPermissionTest.java:577)

将相应的delay_ps这些文件进行设置权限,rw-r-r

15、

Compatibility Test Package: android.view
Test Result Details
android.view.cts.DisplayRefreshRateTest
-- testRefreshRate fail junit.framework.AssertionFailedError at android.view.cts.DisplayRefreshRateTest.testRefreshRate(DisplayRefreshRateTest.java:198)

可以从Log中看到需要设置的刷新率的大小。需要让驱动修改该值

16、

android.media.cts.StreamingMediaPlayerTest
-- testHLS fail junit.framework.AssertionFailedError: Stream did not play successfully after all attempts at android.media.cts.MediaPlayerTestBase.playVideoWithRetries(MediaPlayerTestBase.java:196)
-- testHTTP_H264Base_AAC_Video1 fail Test failed to run to completion. Reason: 'Instrumentation run failed due to 'junit.framework.AssertionFailedError''. Check device logcat for details
-- testHTTP_H264Base_AAC_Video2 fail Test failed to run to completion. Reason: 'Instrumentation run failed due to 'junit.framework.AssertionFailedError''. Check device logcat for details

HLS测试是这样:带宽分为200000,360000,500000, 800000, 1200000,客户端会根据当前获取的带宽值选择是否播放高清还是普通视频,
公司的带宽比较大,但实际真正的带宽可能会小好多,导致去播放高清视频是会很卡,然后失败
解决方法:
参考8x25平台做法,在system.prop里面对带宽做限制:
media.httplive.max-bw = 360000  
最大带宽限制在360000,这样,测试HLS的时候,就只会去播放200000的普通视频,基本可以通过。

【转】android cts failed items的更多相关文章

  1. Android CTS Test failed to run to conmpletion 测试超时问题

    引用“Android cts all pass 全攻略”里面的一段话: ❀ testcase timeout 测试某个testcase的时候一直出现 “........”,迟迟没有pass或者fail ...

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

    前言: 首先这里需要详细叙述一下标题中"监听Android CTS测试项解决方案"的需求.这里的需求是指我们需要精确的监听到当前CTS测试正在测试的测试项. 因为我们知道CTS认证 ...

  3. 如何debug android cts

    启动和关闭ADB服务(adb start-server和adbkill-server) 经作者测试,模拟器在运行一段时间后,adb服务有可能(在Windows进程中可以找到这个服务,该服务用来为模拟器 ...

  4. Android CTS測试Fail项改动总结(四)

    Android5.1上的測试 1.android.security.cts.SELinuxDomainTest# testInitDomain fail 打印的log junit.framework. ...

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

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

  6. Unity出现 error building player exception android (invocation failed)

    今天在编译Android的时候出现这个错误 error building player exception android (invocation failed) 百度谷歌之后,看到xuanyuson ...

  7. android CTS测试

    CTS认证是获得Google推出的Android系统中Android Market服务的前提 CTS兼容性测试的主要目的和意义在于使得用户在Android系统的应用过程中,有更好的用户体验,并展现出A ...

  8. Android CTS 测试总结【转】

    Android CTS 测试总结[转] 最近一直在做Android兼容性测试,根据Android官网给出的android-cts-manual 配置好了device后,开始测试. 首先配置软件环境: ...

  9. Android N和O中使用adb shell dpm set-device-owner 'com.android.cts.verifier/com.android.cts.verifier.managedprovisioning.DeviceAdminTestReceiver' setup Device Owner失败

    PC端出现如下log: D:\workspace\AndroidO\CTS\CTS_Verifier>adb shell dpm set-device-owner 'com.android.ct ...

随机推荐

  1. mysql join 的同时可以筛选数据

    看sql ) ) group by a.id; 这里面用了多个子查询,与join关联. 其中 不仅有关联条件,还对sh_mall_goods表进行了筛选,只选出mall_id为9的数据,进行关联. 这 ...

  2. poj2429:因数分解+搜索

    题意:给定gcd(a,b)和lcm(a,b) 求使得a+b最小的 a,b 思路:结合算数基本定理中 gcd lcm的质因子表示形式 把lcm(a,b)质因数分解 以后 通过dfs找到 a+b最小的a ...

  3. poj 2773 利用欧拉函数求互质数

    题意:找到与n互质的第 k个数 开始一看n是1e6 敲了个暴力结果tle了,后来发现k达到了 1e8 所以需要用到欧拉函数. 我们设小于n的 ,与n互质的数为  (a1,a2,a3.......a(p ...

  4. 简单计算器(Android)

    aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKC

  5. Trie树(字典树) 最热门的前N个搜索关键词

    方法介绍 1.1.什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优 ...

  6. 使用Python,字标注及最大熵法进行中文分词

    使用Python,字标注及最大熵法进行中文分词 在前面的博文中使用python实现了基于词典及匹配的中文分词,这里介绍另外一种方法, 这种方法基于字标注法,并且基于最大熵法,使用机器学习方法进行训练, ...

  7. (转)iOS7界面设计规范(9) - UI基础 - 动画

    傍晚下了场大雨,现在坐在屋里也真是很风凉,听着Everlong突然觉得好像去年秋天的气息.每个季节都有各自的气息,每一年也是,如果你留意,便会感觉到.话说这几天,外面的猫猫狗狗们可以补些水来喝了,这也 ...

  8. [置顶] IOS7状态栏StatusBar官方标准适配方法

    IOS7状态栏StatusBar官方标准适配方法 hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7. 如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变. ...

  9. 用JS的for循环打印九九乘法表

    需要使用两个for循环嵌套,代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  10. ASP.NET中在线用户统计

    统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率.现在,我们就介绍一个简单明了的方法 ...