1 package com.android.cts.monkey; 2 3 import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper; 4 import com.android.tradefed.build.IBuildInfo; 5 import com.android.tradefed.device.DeviceNotAvailableException; 6 import com.android.tradefed.device.ITestDevice; 7 import com.android.tradefed.testtype.DeviceTestCase; 8 import com.android.tradefed.testtype.IAbi; 9 import com.android.tradefed.testtype.IAbiReceiver; 10 import com.android.tradefed.testtype.IBuildReceiver; 11 import com.android.tradefed.util.AbiUtils; 12 13 import java.io.File; 14 15 abstract class AbstractMonkeyTest extends DeviceTestCase implements IAbiReceiver, IBuildReceiver { 16 17 static final String[] PKGS = {"com.android.cts.monkey", "com.android.cts.monkey2"}; 18 static final String[] APKS = {"CtsMonkeyApp.apk", "CtsMonkeyApp2.apk"}; 19 20 /** 21 * Base monkey command with flags to avoid side effects like airplane mode. 22 */ 23 static final String MONKEY_CMD = "monkey --pct-motion 0 --pct-majornav 0 --pct-syskeys 0 --pct-anyevent 0 --pct-rotation 0"; 24 25 IAbi mAbi; 26 IBuildInfo mBuild; 27 ITestDevice mDevice; 28 29 @Override 30 public void setAbi(IAbi abi) { 31 mAbi = abi; 32 } 33 34 @Override 35 public void setBuild(IBuildInfo buildInfo) { 36 mBuild = buildInfo; 37 } 38 39 @Override 40 protected void setUp() throws Exception { 41 super.setUp(); 42 mDevice = getDevice(); 43 String[] options = {AbiUtils.createAbiFlag(mAbi.getName())}; 44 CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(mBuild); 45 for (int i = 0; i < PKGS.length; i++) { 46 mDevice.uninstallPackage(PKGS[i]); 47 File app = buildHelper.getTestFile(APKS[i]); 48 mDevice.installPackage(app, false, options); 49 } 50 clearLogCat(); 51 } 52 53 @Override 54 protected void tearDown() throws Exception { 55 super.tearDown(); 56 for (int i = 0; i < PKGS.length; i++) { 57 mDevice.uninstallPackage(PKGS[i]); 58 } 59 } 60 61 private void clearLogCat() throws DeviceNotAvailableException { 62 mDevice.executeAdbCommand("logcat", "-c"); 63 } 64 } 65