Add integration tests for BackgroundDexOptService
Add three tests:
1. Under normal conditions, check that dexopt upgrades test app to
$(getprop pm.dexopt.bg-dexopt).
2. Under low storage conditions and package is unused, check
that dexopt downgrades test app to $(getprop pm.dexopt.inactive).
3. Under low storage conditions and package is recently used, check
that dexopt upgrades test app to $(getprop pm.dexopt.bg-dexopt).
Test: atest -v BackgroundDexOptServiceIntegrationTests
BUG: 64807719
Change-Id: Iaa50d5120ea0255b38226bda0452e7e47f1ff5d0
diff --git a/tests/BackgroundDexOptServiceIntegrationTests/AndroidTest.xml b/tests/BackgroundDexOptServiceIntegrationTests/AndroidTest.xml
new file mode 100644
index 0000000..9bb1e28
--- /dev/null
+++ b/tests/BackgroundDexOptServiceIntegrationTests/AndroidTest.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<configuration description="Runs BackgroundDexOptService Integration Tests">
+ <!--DeviceSetup should go before TimeSetter because it stops automatic update of time-->
+ <target_preparer
+ class="com.android.tradefed.targetprep.DeviceSetup">
+ <option name="auto-update-time" value="OFF"/>
+ <option name="auto-update-timezone" value="OFF"/>
+ <option name="set-property" key="pm.dexopt.downgrade_after_inactive_days" value="2"/>
+ <option name="set-property" key="pm.dexopt.disable_bg_dexopt" value="true"/>
+ <option name="set-property" key="pm.dexopt.inactive" value="verify"/>
+ <option name="set-property" key="pm.dexopt.bg-dexopt" value="speed"/>
+ <option name="restore-settings" value="true"/>
+ <option name="restore-properties" value="true"/>
+ </target_preparer>
+
+ <!--Test app needs to be installed when we change its settings below-->
+ <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
+ <option name="test-file-name" value="BackgroundDexOptServiceIntegrationTests.apk"/>
+ <option name="cleanup-apks" value="true"/>
+ </target_preparer>
+
+ <target_preparer class="com.android.tradefed.targetprep.SetPackagesRecentlyUsed">
+ <option name="package-recently-used-time" value="0d"/>
+ <option name="package-recently-used-name" value="com.android.frameworks.bgdexopttest"/>
+ </target_preparer>
+
+ <target_preparer class="com.android.tradefed.targetprep.RestartSystemServerTargetPreparer"/>
+
+ <target_preparer class="com.android.tradefed.targetprep.DeviceStorageFiller">
+ <!--32GB-->
+ <!--necessary because a package cannot create a file larger than 100GB-->
+ <option name="free-bytes" value="34359738368"/>
+ </target_preparer>
+
+ <option name="test-suite-tag" value="apct"/>
+ <option name="test-tag" value="BackgroundDexOptServiceIntegrationTests"/>
+ <test class="com.android.tradefed.testtype.AndroidJUnitTest">
+ <option name="package" value="com.android.frameworks.bgdexopttest"/>
+ <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
+ </test>
+</configuration>