Fix [kv-3]PerformBackupTask using last package status to decide status sent to IBackupObserver.

We only report failure to IBackupObserver.backupFinished() when we meet
transport failure, but now it will report failure when the last package
meet TRANSPORT_PACKAGE_REJECTED or TRANSPORT_QUOTA_EXCEEDED, add above
two states in FINAL to prevent the situation, and update related
test, also javadoc of IBackupObserver.

Bug: 77271953

Test: make -j RunFrameworksServicesRoboTests ROBOTEST_FILTER=PerformBackupTaskTest
Change-Id: Ic2bfdf9f50d700f8ccb509e081ae8e0afb186020
This commit is contained in:
shaoweishen
2018-04-23 17:22:57 +08:00
parent c9ae78dcde
commit 59ab5f4934
2 changed files with 5 additions and 4 deletions

View File

@@ -629,6 +629,8 @@ public class PerformBackupTask implements BackupRestoreTask {
mFullBackupTask.unregisterTask();
switch (mStatus) {
case BackupTransport.TRANSPORT_OK:
case BackupTransport.TRANSPORT_QUOTA_EXCEEDED:
case BackupTransport.TRANSPORT_PACKAGE_REJECTED:
BackupObserverUtils.sendBackupFinished(mObserver,
BackupManager.SUCCESS);
break;

View File

@@ -419,7 +419,7 @@ public class PerformBackupTaskTest {
runTask(task);
verify(mObserver).onResult(PACKAGE_1, BackupManager.ERROR_TRANSPORT_PACKAGE_REJECTED);
verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
verify(mObserver).backupFinished(BackupManager.SUCCESS);
}
@Test
@@ -467,8 +467,7 @@ public class PerformBackupTaskTest {
verify(mObserver).onResult(PACKAGE_1, BackupManager.SUCCESS);
verify(mObserver).onResult(PACKAGE_2, BackupManager.ERROR_TRANSPORT_PACKAGE_REJECTED);
// TODO: Should we return the status of the last?
verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
verify(mObserver).backupFinished(BackupManager.SUCCESS);
}
@Test
@@ -488,7 +487,7 @@ public class PerformBackupTaskTest {
runTask(task);
verify(mObserver).onResult(PACKAGE_1, BackupManager.ERROR_TRANSPORT_QUOTA_EXCEEDED);
verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
verify(mObserver).backupFinished(BackupManager.SUCCESS);
verify(agentMock.agent).onQuotaExceeded(anyLong(), anyLong());
}