xref: /aosp_15_r20/cts/hostsidetests/monkey/src/com/android/cts/monkey/AbstractMonkeyTest.java (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
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
setAbi(IAbi abi)30     public void setAbi(IAbi abi) {
31         mAbi = abi;
32     }
33 
34     @Override
setBuild(IBuildInfo buildInfo)35     public void setBuild(IBuildInfo buildInfo) {
36         mBuild = buildInfo;
37     }
38 
39     @Override
setUp()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
tearDown()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 
clearLogCat()61     private void clearLogCat() throws DeviceNotAvailableException {
62         mDevice.executeAdbCommand("logcat", "-c");
63     }
64 }
65