diff options
-rw-r--r-- | cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java | 44 | ||||
-rw-r--r-- | tests/backup/src/com/android/backuptest/BackupTestAgent.java | 2 | ||||
-rwxr-xr-x | tests/backup/test_backup.sh | 21 | ||||
-rwxr-xr-x | tests/backup/test_restore.sh | 45 |
4 files changed, 100 insertions, 12 deletions
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java index 8745cff..01083f1 100644 --- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java +++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java @@ -35,16 +35,6 @@ public final class Bmgr { private String[] mArgs; private int mNextArg; private String mCurArgData; - private RestoreObserver mObserver = new RestoreObserver(); - - class RestoreObserver extends IRestoreObserver.Stub { - public void restoreStarting(int numPackages) { - } - public void onUpdate(int nowBeingRestored) { - } - public void restoreFinished(int error) { - } - } public static void main(String[] args) { try { @@ -191,6 +181,25 @@ public final class Bmgr { } } + class RestoreObserver extends IRestoreObserver.Stub { + boolean done; + public void restoreStarting(int numPackages) { + System.out.println("restoreStarting: " + numPackages + " packages"); + } + + public void onUpdate(int nowBeingRestored) { + System.out.println("onUpdate: " + nowBeingRestored); + } + + public void restoreFinished(int error) { + System.out.println("restoreFinished: " + error); + synchronized (this) { + done = true; + this.notify(); + } + } + } + private void doRestore() { int token; try { @@ -200,6 +209,8 @@ public final class Bmgr { return; } + RestoreObserver observer = new RestoreObserver(); + try { int curTransport = mBmgr.getCurrentTransport(); mRestore = mBmgr.beginRestoreSession(curTransport); @@ -211,7 +222,7 @@ public final class Bmgr { for (RestoreSet s : sets) { if (s.token == token) { System.out.println("Scheduling restore: " + s.name); - mRestore.performRestore(token, mObserver); + mRestore.performRestore(token, observer); break; } } @@ -220,6 +231,17 @@ public final class Bmgr { System.err.println(e.toString()); System.err.println(BMGR_NOT_RUNNING_ERR); } + + // now wait for it to be done + synchronized (observer) { + while (!observer.done) { + try { + observer.wait(); + } catch (InterruptedException ex) { + } + } + } + System.out.println("done"); } private String nextArg() { diff --git a/tests/backup/src/com/android/backuptest/BackupTestAgent.java b/tests/backup/src/com/android/backuptest/BackupTestAgent.java index 0fdfb18..931dcb0 100644 --- a/tests/backup/src/com/android/backuptest/BackupTestAgent.java +++ b/tests/backup/src/com/android/backuptest/BackupTestAgent.java @@ -23,7 +23,7 @@ public class BackupTestAgent extends BackupHelperAgent { public void onCreate() { addHelper("data_files", new FileBackupHelper(this, BackupTestActivity.FILE_NAME)); - addHelper("more_data_files", new FileBackupHelper(this, "another_file.txt")); + addHelper("more_data_files", new FileBackupHelper(this, "another_file.txt", "3.txt")); } } diff --git a/tests/backup/test_backup.sh b/tests/backup/test_backup.sh new file mode 100755 index 0000000..f6c73d8 --- /dev/null +++ b/tests/backup/test_backup.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +#adb kill-server + +# set the transport +adb shell bmgr transport 1 + +# load up the three files +adb shell "rm /data/data/com.android.backuptest/files/* ; \ + mkdir /data/data/com.android.backuptest ; \ + mkdir /data/data/com.android.backuptest/files ; \ + echo -n first file > /data/data/com.android.backuptest/files/file.txt ; \ + echo -n asdf > /data/data/com.android.backuptest/files/another_file.txt ; \ + echo -n 3 > /data/data/com.android.backuptest/files/3.txt ; \ +" + +# say that the data has changed +adb shell bmgr backup com.android.backuptest + +# run the backup +adb shell bmgr run diff --git a/tests/backup/test_restore.sh b/tests/backup/test_restore.sh new file mode 100755 index 0000000..69da28c --- /dev/null +++ b/tests/backup/test_restore.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +function check_file +{ + data=$(adb shell cat /data/data/com.android.backuptest/files/$1) + if [ "$data" = "$2" ] ; then + echo "$1 has correct value [$2]" + else + echo $1 is INCORRECT + echo " value: [$data]" + echo " expected: [$2]" + fi +} + +# delete the old data +echo --- Previous files +adb shell "ls -l /data/data/com.android.backuptest/files" +adb shell "rm /data/data/com.android.backuptest/files/*" +echo --- Erased files +adb shell "ls -l /data/data/com.android.backuptest/files" +echo --- + +echo +echo +echo + +# run the restore +adb shell bmgr restore 0 + +echo +echo +echo + +# check the results +check_file file.txt "first file" +check_file another_file.txt "asdf" +check_file 3.txt "3" + +echo +echo +echo +echo --- Restored files +adb shell "ls -l /data/data/com.android.backuptest/files" +echo --- +echo |