Add some helpful tests scripts for backup and make bmgr restore wait until the backup is done.
This commit is contained in:
@ -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() {
|
||||
|
@ -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
21
tests/backup/test_backup.sh
Executable 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
45
tests/backup/test_restore.sh
Executable 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
|
Reference in New Issue
Block a user