| Overview: |
| |
| The labpretest.sh script is designed to emulate a typical automated test lab |
| session. It puts a device into bootloader mode, reboots into bootloader mode, |
| determines device type, erases user cache, flashes a generic userdata image, |
| updates the bootloader image, updates the radio image, updates the system image |
| and reboots, sets up for a monkey run and finally runs a random monkey test. |
| It will repeat this based on an optional parameter(-i) or default to 100 times. |
| It will detect if it is in a low battery situation and wait for it to charge |
| again. |
| |
| The goal is to see if a device is ready for deployment to automated lab testing |
| and can also be used to verify that lab infrastructure is ready for devices. |
| The idea is to run this script at the same time for multiple devices, typically |
| I would connect 8 devices to a host and run this script in 8 separate shell |
| sessions and watch for failures. |
| |
| Running the script: |
| |
| If there is only one device attached to the host you can simply just run the |
| script, it will detect the device and go through 100 cycles, running the monkey |
| for 200 events each cycle. The script ignores normal monkey failures. If you |
| have multiple devices attached use the -d <device_id> parameter to target a |
| specific devices. Additional parameters are -i for how many cycles and -m for |
| how many monkey events and finally -x to make it skip the monkey run portion |
| altogether. |
| |
| Adding support for new devices or from scratch: |
| |
| The script uses included copies of adb and fastboot which are in in the tools/ |
| sub directory. If you are setting this up with only the script, create a tools |
| sub directory and put adb and fastboot in it and make sure they are executable. |
| Currently we use userdebug builds. |
| |
| Here are the steps to add a new device: |
| |
| 1) Create a new sub directory using the result of "fastboot getvar product". |
| 2) Copy a build image to the new sub directory in our format. |
| (i.e. passion-img-24827.zip) |
| 3) Copy a boot image to the new sub directory in our format. |
| (i.e. hboot.0.33.2012.img) |
| 4) Copy a radio image to the new sub directory in our format. |
| (i.e. radio.4.04.00.03_2.img) |
| 5) Copy a userdata.img file, possibly from one of the other directories. |
| |
| Customizations to the flashing process are handled by adding a custom_flash.sh |
| file that is read in before the main loop starts. It allows you to add any non |
| generic functions or details to the flashing process. You must use it to define |
| the variable "bootpart" which is not defined by default. Also, use this file to |
| rewrite the flash_device function and any others, etc... |
| |
| The script should handle the rest, unless there are radical changes to file |
| names or the process. |