Add some helpful tests scripts for backup and make bmgr restore wait until the backup is done.

This commit is contained in:
Joe Onorato
2009-06-25 23:53:29 -04:00
parent 5e8a4b842c
commit 4a64bded06
4 changed files with 100 additions and 12 deletions

View File

@ -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() {

View File

@ -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"));
}
}

21
tests/backup/test_backup.sh Executable file
View File

@ -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

45
tests/backup/test_restore.sh Executable file
View File

@ -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