a09e3c0983
It is possible to have multiple committed rollbacks which include the same app. Uninstalling an app will delete committed rollbacks which include the app. However, there is a race condition between when the app is uninstalled and when rollback manager deletes the rollback as is stated here: https://cs.corp.google.com/android/frameworks/base/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java?rcl=75dfeca3d40624b745f41155aa38bc5e3fa405fe&l=116 We hit the assertion in #getUniqueRollbackInfoForPackage when there are multiple rollbacks including the same package which is caused by the race condition above. Let's rewrite the code by calling #hasRollbackInclude instead which will not throw. Also do some cleanup in the xml to improve the isolation of our tests. Bug: 152271716 Test: atest RollbackTest Change-Id: Iad3effe52db2a0d2d5e3914bcd08ed93926f3fd3
41 lines
3.4 KiB
XML
41 lines
3.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- Copyright (C) 2018 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 the rollback tests">
|
|
<option name="test-suite-tag" value="RollbackTest" />
|
|
<target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
|
|
<option name="test-file-name" value="RollbackTest.apk" />
|
|
</target_preparer>
|
|
<target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
|
|
<option name="run-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es package "com.google.android.gms.platformconfigurator" --es user '\\*' --esa flags "ModuleConfig__immediate_commit_packages" --esa types "bytes" --esa values "CgA=" com.google.android.gms" />
|
|
<option name="run-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es package "com.google.android.gms.platformconfigurator" --es user '\\*' --esa flags "ModuleConfig__versioned_immediate_commit_packages" --esa types "bytes" --esa values "Cm5vdGFwYWNrYWdlOgA=" com.google.android.gms" />
|
|
<option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package "com.google.android.gms.platformconfigurator" --es user '\*' --esa flag "ModuleConfig__immediate_commit_packages" com.google.android.gms" />
|
|
<option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package "com.google.android.gms.platformconfigurator" --es user '\*' --esa flag "ModuleConfig__versioned_immediate_commit_packages" com.google.android.gms" />
|
|
<option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
|
|
<option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.B" />
|
|
<option name="teardown-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
|
|
<option name="teardown-command" value="pm uninstall com.android.cts.install.lib.testapp.B" />
|
|
</target_preparer>
|
|
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
|
|
<option name="package" value="com.android.tests.rollback" />
|
|
<option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
|
|
|
|
<!-- Exclude the device tests which need to be specially driven from the host tests -->
|
|
<option name="exclude-filter" value="com.android.tests.rollback.StagedRollbackTest" />
|
|
<option name="exclude-filter" value="com.android.tests.rollback.NetworkStagedRollbackTest" />
|
|
<option name="exclude-filter" value="com.android.tests.rollback.MultiUserRollbackTest" />
|
|
</test>
|
|
</configuration>
|