解决CTS的CtsDisplayTestCases 问题
平台:C6490,android13
测试项:
Test | Result | Details |
android.display.cts.BrightnessTest#testGetDefaultCurve | fail |
java.lang.AssertionError
|
错误log:
11-05 10:19:06.783 10178 29533 29550 E TestRunner: failed: testGetDefaultCurve(android.display.cts.BrightnessTest) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: ----- begin exception ----- 11-05 10:19:06.783 10178 29533 29550 E TestRunner: java.lang.AssertionError 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at org.junit.Assert.fail(Assert.java:87) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at org.junit.Assert.assertTrue(Assert.java:42) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at org.junit.Assert.assertNotNull(Assert.java:713) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at org.junit.Assert.assertNotNull(Assert.java:723) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at android.display.cts.BrightnessTest.testGetDefaultCurve(BrightnessTest.java:325) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at java.lang.reflect.Method.invoke(Native Method) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 11-05 10:19:06.783 10178 29533 29550 E TestRunner: at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:61)
case代码:
public void testGetDefaultCurve() { // Don't run as there is no app that has permission to push curves. assumeTrue(numberOfSystemAppsWithPermission( Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) > 0); grantPermission(Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS); BrightnessConfiguration defaultConfig = mDisplayManager.getDefaultBrightnessConfiguration(); // Must provide a default config if an app with CONFIGURE_DISPLAY_BRIGHTNESS exists. assertNotNull(defaultConfig); Pair<float[], float[]> curve = defaultConfig.getCurve(); assertTrue(curve.first.length > 0); assertEquals(curve.first.length, curve.second.length); assertInRange(curve.first, 0, Float.MAX_VALUE); assertInRange(curve.second, 0, Float.MAX_VALUE); assertEquals(0.0, curve.first[0], 0.1); assertMonotonic(curve.first, true /*strictly increasing*/, "lux"); assertMonotonic(curve.second, false /*strictly increasing*/, "nits"); assertTrue(defaultConfig.getShortTermModelLowerLuxMultiplier() > 0.0f); assertTrue(defaultConfig.getShortTermModelLowerLuxMultiplier() < 10.0f); assertTrue(defaultConfig.getShortTermModelUpperLuxMultiplier() > 0.0f); assertTrue(defaultConfig.getShortTermModelUpperLuxMultiplier() < 10.0f); assertTrue(defaultConfig.getShortTermModelTimeoutMillis() > 0L); assertTrue(defaultConfig.getShortTermModelTimeoutMillis() < 24 * 60 * 60 * 1000L); assertFalse(defaultConfig.shouldCollectColorSamples()); }
需要配置亮度曲线,patch如下:
diff --git a/QCM6490_apps_qssi13/LINUX/android/frameworks/base/core/res/res/values/config.xml b/QCM6490_apps_qssi13/LINUX/android/frameworks/base/core/res/res/values/config.xml index 170994ccfa9..14d5318005b 100755 --- a/QCM6490_apps_qssi13/LINUX/android/frameworks/base/core/res/res/values/config.xml +++ b/QCM6490_apps_qssi13/LINUX/android/frameworks/base/core/res/res/values/config.xml @@ -1585,6 +1585,14 @@ Must be overridden in platform specific overlays --> <integer-array name="config_autoBrightnessLevels"> + <item>10</item> + <item>30</item> + <item>60</item> + <item>100</item> + <item>150</item> + <item>210</item> + <item>255</item> + </integer-array> <!-- Array of light sensor lux values to define our levels for auto backlight brightness @@ -1628,6 +1636,14 @@ The brightness values must be between 0 and 255 and be non-decreasing. This must be overridden in platform specific overlays --> <integer-array name="config_autoBrightnessLcdBacklightValues"> + <item>10</item> + <item>20</item> + <item>40</item> + <item>70</item> + <item>110</item> + <item>160</item> + <item>200</item> + <item>255</item> </integer-array> <!-- Array of output values for LCD backlight in doze mode corresponding to the lux values @@ -1655,6 +1671,14 @@ array. The brightness values must be non-negative and non-decreasing. This must be overridden in platform specific overlays --> <array name="config_autoBrightnessDisplayValuesNits"> + <item>10</item> + <item>20</item> + <item>40</item> + <item>70</item> + <item>110</item> + <item>160</item> + <item>200</item> + <item>255</item> </array> <!-- Array of desired screen brightness in nits for idle screen brightness mode. @@ -1685,6 +1709,8 @@ This array should be equal in size to config_screenBrightnessBacklight. --> <integer-array name="config_screenBrightnessBacklight"> + <item>1</item> + <item>255</item> </integer-array> <!-- An array of floats describing the screen brightness in nits corresponding to the backlight @@ -1695,6 +1721,8 @@ This array should be equal in size to config_screenBrightnessBacklight --> <array name="config_screenBrightnessNits"> + <item>2.49</item> + <item>611.38</item> </array> <!-- Array of ambient lux threshold values. This is used for determining hysteresis constraint