Android4.4 CTS测试Fail项修改总结(二)

来源:互联网 发布:冰点 数据解析错误 编辑:程序博客网 时间:2024/06/09 06:18

接上:Android4.4 CTS测试Fail项修改总结(一)

cts测试环境助手:http://download.csdn.net/detail/deng0zhaotai/8417481

google cts官网:http://source.android.com/compatibility/cts-intro.html

4、android.admin.cts.DeviceAdminActivationTest#testActivateGoodReceiverDisplaysActivationUi FAIL

cts-tf > run cts -c android.admin.cts.DeviceAdminActivationTest -m testActivateGoodReceiverDisplaysActivationUi12-31 14:36:59 I/TestInvocation: Starting invocation for 'cts' on build '4.4_r3' on device 972c43f812-31 14:36:59 I/972c43f8: Created result dir 2014.12.31_14.36.5912-31 14:37:08 I/972c43f8: Collecting device info12-31 14:37:10 I/972c43f8: -----------------------------------------12-31 14:37:10 I/972c43f8: Test package android.admin started12-31 14:37:10 I/972c43f8: -----------------------------------------12-31 14:37:14 I/972c43f8: android.admin.cts.DeviceAdminActivationTest#testActivateGoodReceiverDisplaysActivationUi FAIL junit.framework.AssertionFailedErrorat android.admin.cts.DeviceAdminActivationTest.assertDeviceAdminDeactivated(DeviceAdminActivationTest.java:201)at android.admin.cts.DeviceAdminActivationTest.testActivateGoodReceiverDisplaysActivationUi(DeviceAdminActivationTest.java:94)at java.lang.reflect.Method.invokeNative(Native Method)at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)12-31 14:37:16 I/972c43f8: Saved log device_logcat_5610258723069879836.zip12-31 14:37:17 I/972c43f8: Saved log host_log_2335903316004332517.zip12-31 14:37:17 I/972c43f8: android.admin package complete: Passed 0, Failed 1, Not Executed 012-31 14:37:17 I/972c43f8: XML test result file generated at 2014.12.31_14.36.59. Passed 0, Failed 1, Not Executed 012-31 14:37:17 I/972c43f8: Time: 0s
根据google官网的提示,不要激活Setting->Security->Device administrators中的三项,如下图

重新测试

cts-tf > run cts -c android.admin.cts.DeviceAdminActivationTest -m testActivateGoodReceiverDisplaysActivationUi12-31 14:37:38 I/TestInvocation: Starting invocation for 'cts' on build '4.4_r3' on device 972c43f812-31 14:37:38 I/972c43f8: Created result dir 2014.12.31_14.37.3812-31 14:37:47 I/972c43f8: Collecting device info12-31 14:37:49 I/972c43f8: -----------------------------------------12-31 14:37:49 I/972c43f8: Test package android.admin started12-31 14:37:49 I/972c43f8: -----------------------------------------12-31 14:37:57 I/972c43f8: android.admin.cts.DeviceAdminActivationTest#testActivateGoodReceiverDisplaysActivationUi PASS 12-31 14:38:00 I/972c43f8: Saved log device_logcat_6341805318950901453.zip12-31 14:38:00 I/972c43f8: Saved log host_log_1668328307298307564.zip12-31 14:38:00 I/972c43f8: android.admin package complete: Passed 1, Failed 0, Not Executed 012-31 14:38:00 I/972c43f8: XML test result file generated at 2014.12.31_14.37.38. Passed 1, Failed 0, Not Executed 012-31 14:38:00 I/972c43f8: Time: 0s


5、android.app.cts.InstrumentationTest#testSendStringSync FAIL

cts-tf > run cts -c android.app.cts.InstrumentationTest -m testSendStringSync03-26 11:53:03 I/TestInvocation: Starting invocation for 'cts' on build '4.4_r3' on device KZWOLBGURWWO4PNZ03-26 11:53:03 I/KZWOLBGURWWO4PNZ: Created result dir 2015.03.26_11.53.0303-26 11:53:14 I/KZWOLBGURWWO4PNZ: Collecting device info03-26 11:53:16 I/KZWOLBGURWWO4PNZ: -----------------------------------------03-26 11:53:16 I/KZWOLBGURWWO4PNZ: Test package android.app started03-26 11:53:16 I/KZWOLBGURWWO4PNZ: -----------------------------------------03-26 11:53:19 I/KZWOLBGURWWO4PNZ: android.app.cts.InstrumentationTest#testSendStringSync FAIL junit.framework.AssertionFailedError: expected:<4> but was:<5>at android.app.cts.InstrumentationTest.testSendStringSync(InstrumentationTest.java:275)at java.lang.reflect.Method.invokeNative(Native Method)at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1710)03-26 11:53:23 I/KZWOLBGURWWO4PNZ: Saved log device_logcat_4048361078057322425.zip03-26 11:53:23 I/KZWOLBGURWWO4PNZ: Saved log host_log_5671683783190241993.zip03-26 11:53:23 I/KZWOLBGURWWO4PNZ: android.app package complete: Passed 0, Failed 1, Not Executed 003-26 11:53:23 I/KZWOLBGURWWO4PNZ: XML test result file generated at 2015.03.26_11.53.03. Passed 0, Failed 1, Not Executed 003-26 11:53:23 I/KZWOLBGURWWO4PNZ: Time: 0s
这项Fail是由于默认输入法不是拉丁输入法引起的

修改默认输入法

修改后重新测试

cts-tf > run cts -c android.app.cts.InstrumentationTest -m testSendStringSync03-26 13:46:05 I/TestInvocation: Starting invocation for 'cts' on build '4.4_r3' on device KZWOLBGURWWO4PNZ03-26 13:46:05 I/KZWOLBGURWWO4PNZ: Created result dir 2015.03.26_13.46.0503-26 13:46:17 I/KZWOLBGURWWO4PNZ: Collecting device info03-26 13:46:18 I/KZWOLBGURWWO4PNZ: -----------------------------------------03-26 13:46:18 I/KZWOLBGURWWO4PNZ: Test package android.app started03-26 13:46:18 I/KZWOLBGURWWO4PNZ: -----------------------------------------03-26 13:46:22 I/KZWOLBGURWWO4PNZ: android.app.cts.InstrumentationTest#testSendStringSync PASS 03-26 13:46:25 I/KZWOLBGURWWO4PNZ: Saved log device_logcat_9221753514314264495.zip03-26 13:46:25 I/KZWOLBGURWWO4PNZ: Saved log host_log_5109570881381647522.zip03-26 13:46:26 I/KZWOLBGURWWO4PNZ: android.app package complete: Passed 1, Failed 0, Not Executed 003-26 13:46:26 I/KZWOLBGURWWO4PNZ: XML test result file generated at 2015.03.26_13.46.05. Passed 1, Failed 0, Not Executed 003-26 13:46:26 I/KZWOLBGURWWO4PNZ: Time: 0s


Add 2015.01.29

以下是Android L CTS测试

1、android.display.cts.DisplayTest#testGetDisplayAttrs FAIL

测试结果

cts-tf > run cts -c android.display.cts.DisplayTest -m testGetDisplayAttrs01-29 16:34:40 I/TestInvocation: Starting invocation for 'cts' on build '5.0_r1' on device 0123456789ABCDEF01-29 16:34:40 I/0123456789ABCDEF: Created result dir 2015.01.29_16.34.4001-29 16:34:40 I/CtsTest: ABIs: [armeabi-v7a, arm64-v8a]01-29 16:34:45 I/0123456789ABCDEF: Collecting device info01-29 16:34:46 I/CtsTest: Start test run of 2 packages, containing 2 tests01-29 16:34:46 I/0123456789ABCDEF: -----------------------------------------01-29 16:34:46 I/0123456789ABCDEF: Test package arm64-v8a android.display started01-29 16:34:46 I/0123456789ABCDEF: -----------------------------------------01-29 16:34:49 I/0123456789ABCDEF: android.display.cts.DisplayTest#testGetDisplayAttrs FAIL junit.framework.AssertionFailedErrorat junit.framework.Assert.fail(Assert.java:48)at junit.framework.Assert.assertTrue(Assert.java:20)at junit.framework.Assert.assertTrue(Assert.java:27)at android.display.cts.DisplayTest.testGetDisplayAttrs(DisplayTest.java:125)at java.lang.reflect.Method.invoke(Native Method)at java.lang.reflect.Method.invoke(Method.java:372)at junit.framework.TestCase.runTest(TestCase.java:168)at junit.framework.TestCase.runBare(TestCase.java:134)at junit.framework.TestResult$1.protect(TestResult.java:115)at junit.framework.TestResult.runProtected(TestResult.java:133)at android.support.test.internal.runner.junit3.DelegatingTestResult.runProtected(DelegatingTestResult.java:90)at junit.framework.TestResult.run(TestResult.java:118)at android.support.test.internal.runner.junit3.AndroidTestResult.run(AndroidTestResult.java:52)at junit.framework.TestCase.run(TestCase.java:124)at android.support.test.internal.runner.junit3.NonLeakyTestSuite$NonLeakyTest.run(NonLeakyTestSuite.java:63)at junit.framework.TestSuite.runTest(TestSuite.java:243)at junit.framework.TestSuite.run(TestSuite.java:238)at android.support.test.internal.runner.junit3.DelegatingTestSuite.run(DelegatingTestSuite.java:103)at android.support.test.internal.runner.junit3.AndroidTestSuite.run(AndroidTestSuite.java:52)at android.support.test.internal.runner.junit3.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)at org.junit.runners.Suite.runChild(Suite.java:128)at org.junit.runners.Suite.runChild(Suite.java:24)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.junit.runner.JUnitCore.run(JUnitCore.java:157)at org.junit.runner.JUnitCore.run(JUnitCore.java:136)at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:245)at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1851)01-29 16:34:53 I/0123456789ABCDEF: arm64-v8a android.display package complete: Passed 0, Failed 1, Not Executed 001-29 16:34:53 I/0123456789ABCDEF: -----------------------------------------01-29 16:34:53 I/0123456789ABCDEF: Test package armeabi-v7a android.display started01-29 16:34:53 I/0123456789ABCDEF: -----------------------------------------01-29 16:35:07 E/InstrumentationFileTest: all remaining tests failed to run from file, re-running tests serially01-29 16:35:08 I/0123456789ABCDEF: android.display.cts.DisplayTest#testGetDisplayAttrs FAIL junit.framework.AssertionFailedErrorat junit.framework.Assert.fail(Assert.java:48)at junit.framework.Assert.assertTrue(Assert.java:20)at junit.framework.Assert.assertTrue(Assert.java:27)at android.display.cts.DisplayTest.testGetDisplayAttrs(DisplayTest.java:125)at java.lang.reflect.Method.invoke(Native Method)at java.lang.reflect.Method.invoke(Method.java:372)at junit.framework.TestCase.runTest(TestCase.java:168)at junit.framework.TestCase.runBare(TestCase.java:134)at junit.framework.TestResult$1.protect(TestResult.java:115)at junit.framework.TestResult.runProtected(TestResult.java:133)at android.support.test.internal.runner.junit3.DelegatingTestResult.runProtected(DelegatingTestResult.java:90)at junit.framework.TestResult.run(TestResult.java:118)at android.support.test.internal.runner.junit3.AndroidTestResult.run(AndroidTestResult.java:52)at junit.framework.TestCase.run(TestCase.java:124)at android.support.test.internal.runner.junit3.NonLeakyTestSuite$NonLeakyTest.run(NonLeakyTestSuite.java:63)at junit.framework.TestSuite.runTest(TestSuite.java:243)at junit.framework.TestSuite.run(TestSuite.java:238)at android.support.test.internal.runner.junit3.DelegatingTestSuite.run(DelegatingTestSuite.java:103)at android.support.test.internal.runner.junit3.AndroidTestSuite.run(AndroidTestSuite.java:52)at android.support.test.internal.runner.junit3.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)at org.junit.runners.Suite.runChild(Suite.java:128)at org.junit.runners.Suite.runChild(Suite.java:24)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.junit.runner.JUnitCore.run(JUnitCore.java:157)at org.junit.runner.JUnitCore.run(JUnitCore.java:136)at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:245)at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1851)01-29 16:35:11 I/0123456789ABCDEF: Saved log device_logcat_7550519396716798686.zip01-29 16:35:12 I/0123456789ABCDEF: Saved log host_log_8662820341921817779.zip01-29 16:35:12 I/0123456789ABCDEF: armeabi-v7a android.display package complete: Passed 0, Failed 1, Not Executed 001-29 16:35:12 I/0123456789ABCDEF: Created xml report file at file:///home/dzt/D/dzt/cts/5.0/android-cts-5.0_r1-linux_x86-arm/android-cts/tools/./../../android-cts/repository/results/2015.01.29_16.34.40/testResult.xml01-29 16:35:12 I/0123456789ABCDEF: XML test result file generated at 2015.01.29_16.34.40. Passed 0, Failed 2, Not Executed 001-29 16:35:12 I/0123456789ABCDEF: Time: 31s

需要把语言设置成English重新测试

cts-tf > run cts -c android.display.cts.DisplayTest -m testGetDisplayAttrs01-29 16:38:05 I/TestInvocation: Starting invocation for 'cts' on build '5.0_r1' on device 0123456789ABCDEF01-29 16:38:05 I/0123456789ABCDEF: Created result dir 2015.01.29_16.38.0501-29 16:38:05 I/CtsTest: ABIs: [armeabi-v7a, arm64-v8a]01-29 16:38:10 I/0123456789ABCDEF: Collecting device info01-29 16:38:11 I/CtsTest: Start test run of 2 packages, containing 2 tests01-29 16:38:11 I/0123456789ABCDEF: -----------------------------------------01-29 16:38:11 I/0123456789ABCDEF: Test package arm64-v8a android.display started01-29 16:38:11 I/0123456789ABCDEF: -----------------------------------------01-29 16:38:14 I/0123456789ABCDEF: android.display.cts.DisplayTest#testGetDisplayAttrs PASS 01-29 16:38:18 I/0123456789ABCDEF: arm64-v8a android.display package complete: Passed 1, Failed 0, Not Executed 001-29 16:38:18 I/0123456789ABCDEF: -----------------------------------------01-29 16:38:18 I/0123456789ABCDEF: Test package armeabi-v7a android.display started01-29 16:38:18 I/0123456789ABCDEF: -----------------------------------------01-29 16:38:21 I/0123456789ABCDEF: android.display.cts.DisplayTest#testGetDisplayAttrs PASS 01-29 16:38:25 I/0123456789ABCDEF: Saved log device_logcat_8808848150648018685.zip01-29 16:38:25 I/0123456789ABCDEF: Saved log host_log_596117326603945188.zip01-29 16:38:25 I/0123456789ABCDEF: armeabi-v7a android.display package complete: Passed 1, Failed 0, Not Executed 001-29 16:38:25 I/0123456789ABCDEF: Created xml report file at file:///home/dzt/D/dzt/cts/5.0/android-cts-5.0_r1-linux_x86-arm/android-cts/tools/./../../android-cts/repository/results/2015.01.29_16.38.05/testResult.xml01-29 16:38:25 I/0123456789ABCDEF: XML test result file generated at 2015.01.29_16.38.05. Passed 2, Failed 0, Not Executed 001-29 16:38:25 I/0123456789ABCDEF: Time: 20s

2、run cts --class android.nativemedia.sl.SLObjectCreationTest

测试结果

cts-tf > run cts --class android.nativemedia.sl.SLObjectCreationTest02-07 15:24:32 I/TestInvocation: Starting invocation for 'cts' on build '5.0_r1' on device 65IVR84LOBLBEAUC02-07 15:24:32 I/65IVR84LOBLBEAUC: Created result dir 2015.02.07_15.24.3202-07 15:24:32 I/CtsTest: ABIs: [armeabi-v7a, arm64-v8a]02-07 15:24:44 I/65IVR84LOBLBEAUC: Collecting device info02-07 15:24:46 I/CtsTest: Start test run of 2 packages, containing 20 tests02-07 15:24:46 I/65IVR84LOBLBEAUC: -----------------------------------------02-07 15:24:46 I/65IVR84LOBLBEAUC: Test package arm64-v8a android.nativemedia.sl started02-07 15:24:46 I/65IVR84LOBLBEAUC: -----------------------------------------02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testEngineCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testOutputMixCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromUriCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromFdCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromPcmBqCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromTsAbqCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromUriToPcmBqCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromFdToPcmBqCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromAdtsAbqToPcmBqCreation PASS 02-07 15:24:46 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioRecorderCreation PASS 02-07 15:24:48 I/65IVR84LOBLBEAUC: arm64-v8a android.nativemedia.sl package complete: Passed 10, Failed 0, Not Executed 002-07 15:24:48 I/65IVR84LOBLBEAUC: -----------------------------------------02-07 15:24:48 I/65IVR84LOBLBEAUC: Test package armeabi-v7a android.nativemedia.sl started02-07 15:24:48 I/65IVR84LOBLBEAUC: -----------------------------------------02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testEngineCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testOutputMixCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromUriCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromFdCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromPcmBqCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromTsAbqCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromUriToPcmBqCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromFdToPcmBqCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromAdtsAbqToPcmBqCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:48 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioRecorderCreation FAIL IsOk failure: unknown (0xab54063c), exitingcts/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp:94: FailureValue of: IsOk(res)Actual: falseExpected: true02-07 15:24:49 I/65IVR84LOBLBEAUC: Saved log device_logcat_756178635134119899.zip02-07 15:24:49 I/65IVR84LOBLBEAUC: Saved log host_log_1250408897433779978.zip02-07 15:24:49 I/65IVR84LOBLBEAUC: armeabi-v7a android.nativemedia.sl package complete: Passed 0, Failed 10, Not Executed 002-07 15:24:50 I/65IVR84LOBLBEAUC: XML test result file generated at 2015.02.07_15.24.32. Passed 10, Failed 10, Not Executed 002-07 15:24:50 I/65IVR84LOBLBEAUC: Time: 17s
64位的可以Pass,但32位都Fail

分析思路:

android.nativemedia.sl.SLObjectCreationTest这个类主要测试的文件存放在:frameworks/wilhelm/src/,在这个目录中,查看其中的Android.mk文件可以看到会生成三个库

libwilhelm.so
libOpenSLES.so
libOpenMAXAL.so

由于64位没问题,所以问题肯定是出在32位的库上,无意中被我发现libOpenSLES.so库在整个系统new出来的和单个模块编译出来的libOpenSLES.so库大小不一致。(是由于在src/entry.c添加log调试,把生成的库push到手机居然Pass,就猜想是由于整个系统编译出来和单个模块编译出来库不一致造成的,后来验证果然是由于libOpenSLES.so库引起的),知道了是由libOpenSLES.so库引起的,可以在android根目录去搜索libOpenSLES.so,看有哪些地方有这个库,通过查找

dzt@dzt-All-Series:~/D/dzt/workarea/7501_l_mp_bak/gionee_packages_apk_amigo_3.0$ find -name libOpenSLES.so./packages/common/packages/apps/Amigo_Browser/libOpenSLES.so
真的有apk使用了这个库查看Amigo_Browser目录下的Android.mk文件

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_MODULE := Amigo_BrowserLOCAL_SRC_FILES := $(LOCAL_MODULE).apkLOCAL_MODULE_CLASS := APPSLOCAL_CERTIFICATE := PRESIGNEDLOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)LOCAL_MULTILIB := 32LOCAL_PREBUILT_JNI_LIBS += @lib/armeabi-v7a/libOpenSLES.soLOCAL_PREBUILT_JNI_LIBS += @lib/armeabi-v7a/libUGo.soLOCAL_PREBUILT_JNI_LIBS += @lib/armeabi-v7a/libVoGo.soPRODUCT_COPY_FILES += $(foreach pathfile, $(shell find $(LOCAL_PATH) -name "*.so"), $(pathfile):system/lib/$(notdir $(pathfile))) #skipPRODUCT_COPY_FILES += \  $(LOCAL_PATH)/libOpenSLES.so:system/lib/libOpenSLES.so \  $(LOCAL_PATH)/libUGo.so:system/lib/libUGo.so \  $(LOCAL_PATH)/libVoGo.so:system/lib/libVoGo.soinclude $(BUILD_PREBUILT)
根据

$(LOCAL_PATH)/libOpenSLES.so:system/lib/libOpenSLES.so \
$(LOCAL_PATH)/libUGo.so:system/lib/libUGo.so \
$(LOCAL_PATH)/libVoGo.so:system/lib/libVoGo.so

复制到system/lib目录下,就是32位的,也可以从BUILDING_LOG分析android.log可以看到以下信息

build/core/Makefile:41: 警告:覆盖关于目标“out/target/product/gionee6752_lwt_l/system/res/images/lcd_test_00.png”的命令vendor/mediatek/proprietary/factory/Android.mk:570: 警告:忽略关于目标“out/target/product/gionee6752_lwt_l/system/res/images/lcd_test_00.png”的旧命令build/core/Makefile:41: 警告:覆盖关于目标“out/target/product/gionee6752_lwt_l/system/res/images/lcd_test_01.png”的命令vendor/mediatek/proprietary/factory/Android.mk:570: 警告:忽略关于目标“out/target/product/gionee6752_lwt_l/system/res/images/lcd_test_01.png”的旧命令build/core/Makefile:41: 警告:覆盖关于目标“out/target/product/gionee6752_lwt_l/system/res/images/lcd_test_02.png”的命令vendor/mediatek/proprietary/factory/Android.mk:570: 警告:忽略关于目标“out/target/product/gionee6752_lwt_l/system/res/images/lcd_test_02.png”的旧命令build/core/Makefile:41: 警告:覆盖关于目标“out/target/product/gionee6752_lwt_l/system/lib/libOpenSLES.so”的命令build/core/base_rules.mk:550: 警告:忽略关于目标“out/target/product/gionee6752_lwt_l/system/lib/libOpenSLES.so”的旧命令build/core/Makefile:41: 警告:覆盖关于目标“out/target/product/gionee6752_lwt_l/system/lib/liba3m.so”的命令build/core/base_rules.mk:550: 警告:忽略关于目标“out/target/product/gionee6752_lwt_l/system/lib/liba3m.so”的旧命令build/core/Makefile:41: 警告:覆盖关于目标“out/target/product/gionee6752_lwt_l/system/lib/libja3m.so”的命令build/core/base_rules.mk:550: 警告:忽略关于目标“out/target/product/gionee6752_lwt_l/system/lib/libja3m.so”的旧命令PRODUCT_COPY_FILES packages/apps/Amigo_Contacts/liblocSDK4.so:system/lib/liblocSDK4.so ignored.PRODUCT_COPY_FILES packages/apps/Amigo_GameHall/lib_gn_appincupgrade.so:system/lib/lib_gn_appincupgrade.so ignored.PRODUCT_COPY_FILES packages/apps/Amigo_Mms/liblocSDK4.so:system/lib/liblocSDK4.so ignored.PRODUCT_COPY_FILES packages/apps/Amigo_Mms/libsmartdialer_oem_module.so:system/lib/libsmartdialer_oem_module.so ignored.PRODUCT_COPY_FILES packages/apps/Amigo_Mms/libstlport_shared.so:system/lib/libstlport_shared.so ignored.PRODUCT_COPY_FILES packages/apps/Amigo_Music/lib_gn_appincupgrade.so:system/lib/lib_gn_appincupgrade.so ignored.
其中重要信息是

build/core/Makefile:41: 警告:覆盖关于目标“out/target/product/gionee6752_lwt_l/system/lib/libOpenSLES.so”的命令
build/core/base_rules.mk:550: 警告:忽略关于目标“out/target/product/gionee6752_lwt_l/system/lib/libOpenSLES.so”的旧命令

说明libOpenSLES.so没有编译成功

把模块frameworks/wilhelm/src/重新编译导入libOpenSLES.so后再重新测试

cts-tf > run cts --class android.nativemedia.sl.SLObjectCreationTest02-07 16:19:10 I/TestInvocation: Starting invocation for 'cts' on build '5.0_r1' on device 65IVR84LOBLBEAUC02-07 16:19:10 I/65IVR84LOBLBEAUC: Created result dir 2015.02.07_16.19.1002-07 16:19:10 I/CtsTest: ABIs: [armeabi-v7a, arm64-v8a]02-07 16:19:21 I/65IVR84LOBLBEAUC: Collecting device info02-07 16:19:23 I/CtsTest: Start test run of 2 packages, containing 20 tests02-07 16:19:23 I/65IVR84LOBLBEAUC: -----------------------------------------02-07 16:19:23 I/65IVR84LOBLBEAUC: Test package arm64-v8a android.nativemedia.sl started02-07 16:19:23 I/65IVR84LOBLBEAUC: -----------------------------------------02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testEngineCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testOutputMixCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromUriCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromFdCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromPcmBqCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromTsAbqCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromUriToPcmBqCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromFdToPcmBqCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromAdtsAbqToPcmBqCreation PASS 02-07 16:19:23 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioRecorderCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: arm64-v8a android.nativemedia.sl package complete: Passed 10, Failed 0, Not Executed 002-07 16:19:25 I/65IVR84LOBLBEAUC: -----------------------------------------02-07 16:19:25 I/65IVR84LOBLBEAUC: Test package armeabi-v7a android.nativemedia.sl started02-07 16:19:25 I/65IVR84LOBLBEAUC: -----------------------------------------02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testEngineCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testOutputMixCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromUriCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromFdCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromPcmBqCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromTsAbqCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromUriToPcmBqCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromFdToPcmBqCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioPlayerFromAdtsAbqToPcmBqCreation PASS 02-07 16:19:25 I/65IVR84LOBLBEAUC: android.nativemedia.sl.SLObjectCreationTest#testAudioRecorderCreation PASS 02-07 16:19:26 I/65IVR84LOBLBEAUC: Saved log device_logcat_5006165446450761353.zip02-07 16:19:26 I/65IVR84LOBLBEAUC: Saved log host_log_6103563281002460314.zip02-07 16:19:26 I/65IVR84LOBLBEAUC: armeabi-v7a android.nativemedia.sl package complete: Passed 10, Failed 0, Not Executed 002-07 16:19:26 I/65IVR84LOBLBEAUC: XML test result file generated at 2015.02.07_16.19.10. Passed 20, Failed 0, Not Executed 002-07 16:19:26 I/65IVR84LOBLBEAUC: Time: 16s

找到根本原因后问题就好解了,正常情况下apk是不需要集成系统的so库,因为系统会把这些库安装到system/lib和system/lib64的

3、android.permission2.cts.NoCaptureAudioOutputPermissionTest#testCreateAudioRecord FAIL

测试结果

cts-tf > run cts -c android.permission2.cts.NoCaptureAudioOutputPermissionTest -m testCreateAudioRecord03-23 13:59:27 I/TestInvocation: Starting invocation for 'cts' on build '5.0_r1' on device 0123456789ABCDEF03-23 13:59:27 I/0123456789ABCDEF: Created result dir 2015.03.23_13.59.2703-23 13:59:27 I/CtsTest: ABIs: [armeabi-v7a, arm64-v8a]03-23 13:59:44 I/0123456789ABCDEF: Collecting device info03-23 13:59:46 I/CtsTest: Start test run of 2 packages, containing 2 tests03-23 13:59:46 I/0123456789ABCDEF: -----------------------------------------03-23 13:59:46 I/0123456789ABCDEF: Test package arm64-v8a android.permission2 started03-23 13:59:46 I/0123456789ABCDEF: -----------------------------------------03-23 13:59:51 I/0123456789ABCDEF: android.permission2.cts.NoCaptureAudioOutputPermissionTest#testCreateAudioRecord FAIL junit.framework.AssertionFailedError: AudioRecord state should not be INITIALIZED because the applicationdoes not have permission to access the remote submix sourceat junit.framework.Assert.fail(Assert.java:50)at junit.framework.Assert.assertTrue(Assert.java:20)at android.permission2.cts.NoCaptureAudioOutputPermissionTest.testCreateAudioRecord(NoCaptureAudioOutputPermissionTest.java:50)at java.lang.reflect.Method.invoke(Native Method)at java.lang.reflect.Method.invoke(Method.java:372)at junit.framework.TestCase.runTest(TestCase.java:168)at junit.framework.TestCase.runBare(TestCase.java:134)at junit.framework.TestResult$1.protect(TestResult.java:115)at junit.framework.TestResult.runProtected(TestResult.java:133)at android.support.test.internal.runner.junit3.DelegatingTestResult.runProtected(DelegatingTestResult.java:90)at junit.framework.TestResult.run(TestResult.java:118)at android.support.test.internal.runner.junit3.AndroidTestResult.run(AndroidTestResult.java:52)at junit.framework.TestCase.run(TestCase.java:124)at android.support.test.internal.runner.junit3.NonLeakyTestSuite$NonLeakyTest.run(NonLeakyTestSuite.java:63)at junit.framework.TestSuite.runTest(TestSuite.java:243)at junit.framework.TestSuite.run(TestSuite.java:238)at android.support.test.internal.runner.junit3.DelegatingTestSuite.run(DelegatingTestSuite.java:103)at android.support.test.internal.runner.junit3.AndroidTestSuite.run(AndroidTestSuite.java:52)at android.support.test.internal.runner.junit3.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)at org.junit.runners.Suite.runChild(Suite.java:128)at org.junit.runners.Suite.runChild(Suite.java:24)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.junit.runner.JUnitCore.run(JUnitCore.java:157)at org.junit.runner.JUnitCore.run(JUnitCore.java:136)at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:245)at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1851)03-23 13:59:55 I/0123456789ABCDEF: arm64-v8a android.permission2 package complete: Passed 0, Failed 1, Not Executed 003-23 13:59:55 I/0123456789ABCDEF: -----------------------------------------03-23 13:59:55 I/0123456789ABCDEF: Test package armeabi-v7a android.permission2 started03-23 13:59:55 I/0123456789ABCDEF: -----------------------------------------03-23 14:00:00 I/0123456789ABCDEF: android.permission2.cts.NoCaptureAudioOutputPermissionTest#testCreateAudioRecord FAIL junit.framework.AssertionFailedError: AudioRecord state should not be INITIALIZED because the applicationdoes not have permission to access the remote submix sourceat junit.framework.Assert.fail(Assert.java:50)at junit.framework.Assert.assertTrue(Assert.java:20)at android.permission2.cts.NoCaptureAudioOutputPermissionTest.testCreateAudioRecord(NoCaptureAudioOutputPermissionTest.java:50)at java.lang.reflect.Method.invoke(Native Method)at java.lang.reflect.Method.invoke(Method.java:372)at junit.framework.TestCase.runTest(TestCase.java:168)at junit.framework.TestCase.runBare(TestCase.java:134)at junit.framework.TestResult$1.protect(TestResult.java:115)at junit.framework.TestResult.runProtected(TestResult.java:133)at android.support.test.internal.runner.junit3.DelegatingTestResult.runProtected(DelegatingTestResult.java:90)at junit.framework.TestResult.run(TestResult.java:118)at android.support.test.internal.runner.junit3.AndroidTestResult.run(AndroidTestResult.java:52)at junit.framework.TestCase.run(TestCase.java:124)at android.support.test.internal.runner.junit3.NonLeakyTestSuite$NonLeakyTest.run(NonLeakyTestSuite.java:63)at junit.framework.TestSuite.runTest(TestSuite.java:243)at junit.framework.TestSuite.run(TestSuite.java:238)at android.support.test.internal.runner.junit3.DelegatingTestSuite.run(DelegatingTestSuite.java:103)at android.support.test.internal.runner.junit3.AndroidTestSuite.run(AndroidTestSuite.java:52)at android.support.test.internal.runner.junit3.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)at org.junit.runners.Suite.runChild(Suite.java:128)at org.junit.runners.Suite.runChild(Suite.java:24)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.junit.runner.JUnitCore.run(JUnitCore.java:157)at org.junit.runner.JUnitCore.run(JUnitCore.java:136)at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:245)at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1851)03-23 14:00:03 I/0123456789ABCDEF: Saved log device_logcat_4057457500554080901.zip03-23 14:00:03 I/0123456789ABCDEF: Saved log host_log_4722947613063857273.zip03-23 14:00:03 I/0123456789ABCDEF: armeabi-v7a android.permission2 package complete: Passed 0, Failed 1, Not Executed 003-23 14:00:03 I/0123456789ABCDEF: XML test result file generated at 2015.03.23_13.59.27. Passed 0, Failed 2, Not Executed 003-23 14:00:03 I/0123456789ABCDEF: Time: 36s
在文件/frameworks/av/services/audioflinger/AudioFlinger.cpp可以找到这样的代码

#if 0        if (deviceRequiresCaptureAudioOutputPermission(thread->inDevice())                && !captureAudioOutputAllowed()) {            ALOGE("openRecord() permission denied: capture not allowed");            lStatus = PERMISSION_DENIED;            goto Exit;        }#endif
其中

static bool deviceRequiresCaptureAudioOutputPermission(audio_devices_t inDevice) {    return audio_is_remote_submix_device(inDevice);}
bool captureAudioOutputAllowed() {    if (getpid_cached == IPCThreadState::self()->getCallingPid()) return true;    static const String16 sCaptureAudioOutput("android.permission.CAPTURE_AUDIO_OUTPUT");    // don't use PermissionCache; this is not a system permission    bool ok = checkCallingPermission(sCaptureAudioOutput);    if (!ok) ALOGE("Request requires android.permission.CAPTURE_AUDIO_OUTPUT");    return ok;}
由于测试用例是判断record.getState() != AudioRecord.STATE_INITIALIZED

/** * Verify the capture system video output permission requirements. */public class NoCaptureAudioOutputPermissionTest extends AndroidTestCase {    /**     * Verify that the AudioRecord constructor fails to create a recording object     * when the app does not have permission to capture audio output.     * For the purposes of this test, the app must already have the normal audio     * record permission, just not the capture audio output permission.     * <p>Requires permission:     *    {@link android.Manifest.permission#RECORD_AUDIO} and     *    {@link android.Manifest.permission#CAPTURE_VIDEO_OUTPUT}.     */    @SmallTest    public void testCreateAudioRecord() {        final int bufferSize = AudioRecord.getMinBufferSize(44100,                AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT);        // The attempt to create the AudioRecord object succeeds even if the        // app does not have permission, but the object is not usable.        // The API should probably throw SecurityException but it was not originally        // designed to do that and it's not clear we can change it now.        AudioRecord record = new AudioRecord(AudioSource.REMOTE_SUBMIX, 44100,                AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);        try {            assertTrue("AudioRecord state should not be INITIALIZED because the application"                    + "does not have permission to access the remote submix source",                    record.getState() != AudioRecord.STATE_INITIALIZED);        } finally {            record.release();        }    }}
说明需要加上权限:android.permission.CAPTURE_AUDIO_OUTPUT判断,修改为:
        if (deviceRequiresCaptureAudioOutputPermission(thread->inDevice())                && !captureAudioOutputAllowed()) {            ALOGE("openRecord() permission denied: capture not allowed");            lStatus = PERMISSION_DENIED;            goto Exit;        }
重新测试
cts-tf > run cts -c android.permission2.cts.NoCaptureAudioOutputPermissionTest -m testCreateAudioRecord03-23 19:32:45 I/TestInvocation: Starting invocation for 'cts' on build '5.0_r1' on device 0123456789ABCDEF03-23 19:32:45 I/0123456789ABCDEF: Created result dir 2015.03.23_19.32.4503-23 19:32:45 I/CtsTest: ABIs: [armeabi-v7a, arm64-v8a]03-23 19:32:56 I/0123456789ABCDEF: Collecting device info03-23 19:32:58 I/CtsTest: Start test run of 2 packages, containing 2 tests03-23 19:32:58 I/0123456789ABCDEF: -----------------------------------------03-23 19:32:58 I/0123456789ABCDEF: Test package arm64-v8a android.permission2 started03-23 19:32:58 I/0123456789ABCDEF: -----------------------------------------03-23 19:33:03 I/0123456789ABCDEF: android.permission2.cts.NoCaptureAudioOutputPermissionTest#testCreateAudioRecord PASS 03-23 19:33:07 I/0123456789ABCDEF: arm64-v8a android.permission2 package complete: Passed 1, Failed 0, Not Executed 003-23 19:33:07 I/0123456789ABCDEF: -----------------------------------------03-23 19:33:07 I/0123456789ABCDEF: Test package armeabi-v7a android.permission2 started03-23 19:33:07 I/0123456789ABCDEF: -----------------------------------------03-23 19:33:11 I/0123456789ABCDEF: android.permission2.cts.NoCaptureAudioOutputPermissionTest#testCreateAudioRecord PASS 03-23 19:33:14 I/0123456789ABCDEF: Saved log device_logcat_6206256854887766681.zip03-23 19:33:15 I/0123456789ABCDEF: Saved log host_log_766403234660958453.zip03-23 19:33:15 I/0123456789ABCDEF: armeabi-v7a android.permission2 package complete: Passed 1, Failed 0, Not Executed 003-23 19:33:15 I/0123456789ABCDEF: Created xml report file at file:///home/dzt/dzt/cts/5.0/android-cts-5.0_r1-linux_x86-arm/android-cts/tools/./../../android-cts/repository/results/2015.03.23_19.32.45/testResult.xml03-23 19:33:15 I/0123456789ABCDEF: XML test result file generated at 2015.03.23_19.32.45. Passed 2, Failed 0, Not Executed 003-23 19:33:15 I/0123456789ABCDEF: Time: 30s

0 0
原创粉丝点击