#!/bin/bash # Copyright (C) 2009 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. # uncomment for debugging #export DRY_RUN="echo" source test_backup_common.sh [ -z "$BUGREPORT_DIR" ] && BUGREPORT_DIR="$HOME/backup/bugreports" function check_file { data=$(a shell cat /data/data/com.android.backuptest/$1) if [ "$data" = "$2" ] ; then echo "$1 has correct value [$2]" return 0 else echo $1 is INCORRECT echo " value: [$data]" echo " expected: [$2]" return 1 fi } function check_exists { # return 0 if file exists, 1 otherwise data=$(a shell "ls $@ 2> /dev/null >/dev/null && echo -n exists") if [ "$data" = "exists" ]; then return 0 else return 1 fi } # Make sure adb is root so we can poke at com.android.backuptest's data adb_root # delete the old data echo --- Previous files a shell "ls -l /data/data/com.android.backuptest/files" a shell "rm /data/data/com.android.backuptest/files/*" echo --- Previous shared_prefs a shell "ls -l /data/data/com.android.backuptest/shared_prefs" a shell "rm /data/data/com.android.backuptest/shared_prefs/*" echo --- Erased files and shared_prefs a shell "ls -l /data/data/com.android.backuptest/files" a shell "ls -l /data/data/com.android.backuptest/shared_prefs" echo --- echo echo # FIXME: there's probably a smarter way to do this # FIXME: if we can get the android ID, that's probably the safest thing to do # pick the most recent set and restore from it restore_set=$(a shell bmgr list sets | head -n1 | awk '{print $1}') # run the restore echo "Restoring from set [$restore_set]" a shell bmgr restore "$restore_set" echo echo # check the results export need_bug=0 # make sure files have the expected contents check_file files/file.txt "first file" || need_bug=1 check_file files/another_file.txt "asdf" || need_bug=1 #check_file files/3.txt "3" || need_bug=1 check_file files/empty.txt "" || need_bug=1 check_file shared_prefs/raw.xml '' || need_bug=1 # make sure that missing files weren't somehow created check_exists files/file_doesnt_exist.txt && need_bug=1 check_exists files/no_files_here.txt && need_bug=1 if [ \( "$need_bug" -ne 0 \) -a -d "$BUGREPORT_DIR" ]; then dev_id=$(a get-serialno) filename="${dev_id}_`date +%s`" echo "Grabbing bugreport; filename is $filename" a bugreport > "$BUGREPORT_DIR/$filename.txt" fi echo echo --- Restored files a shell "ls -l /data/data/com.android.backuptest/files" echo --- Restored shared_prefs a shell "ls -l /data/data/com.android.backuptest/shared_prefs" echo --- echo echo "Last 3 timestamps in 3.txt:" a shell cat /data/data/com.android.backuptest/files/3.txt | tail -n 3 exit $need_bug