diff options
-rw-r--r-- | res/config/example/reboot.xml (renamed from res/config/example/example.xml) | 15 | ||||
-rw-r--r-- | src/com/android/example/RebootTest.java | 89 | ||||
-rw-r--r-- | src/com/android/example_test/ExampleTest.java | 32 |
3 files changed, 92 insertions, 44 deletions
diff --git a/res/config/example/example.xml b/res/config/example/reboot.xml index 14d3378..a2cc8d4 100644 --- a/res/config/example/example.xml +++ b/res/config/example/reboot.xml @@ -13,16 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> -<!-- TODO: Delete when real configs make it here. --> -<configuration description="Example test config."> - <!-- Some option for the whole configuration. --> - <option name="test-tag" value="example-test" /> - - <!-- Example test that will be ran. --> - <test class="com.android.tradefed.ExampleTest" /> - - <!-- Example target preparer used. --> - <target_preparer class="com.android.tradefed.targetprep.ExampleTargetPreparer" /> - +<configuration description="Config for reboot test."> + <test class="com.android.example.RebootTest"/> + <option name="num-of-reboots" value="2"/> </configuration> - diff --git a/src/com/android/example/RebootTest.java b/src/com/android/example/RebootTest.java new file mode 100644 index 0000000..8b4d41d --- /dev/null +++ b/src/com/android/example/RebootTest.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2017 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. + */ + +package com.android.example; + +import com.android.ddmlib.testrunner.TestIdentifier; +import com.android.tradefed.config.Option; +import com.android.tradefed.device.DeviceNotAvailableException; +import com.android.tradefed.device.IManagedTestDevice; +import com.android.tradefed.device.ITestDevice; +import com.android.tradefed.result.ITestInvocationListener; +import com.android.tradefed.testtype.IDeviceTest; +import com.android.tradefed.testtype.IRemoteTest; + +import java.util.Collections; +import java.util.Map; + +/** + * Reboots the device and verifies it comes back online. + * This simple reboot tests acts as an example integration test. + */ +public class RebootTest implements IRemoteTest, IDeviceTest { + private ITestDevice mDevice = null; + + @Option(name = "num-of-reboots", description = "Number of times to reboot the device.") + private int mNumDeviceReboots = 1; + + /** + * {@inheritDoc} + */ + @Override + public void run(ITestInvocationListener listener) throws DeviceNotAvailableException { + long start; + Map<String, String> emptyMap = Collections.emptyMap(); + TestIdentifier testId; + start = System.currentTimeMillis(); + listener.testRunStarted(String.format("#%d device reboots", mNumDeviceReboots), + mNumDeviceReboots); + try { + for (int testCount = 0; testCount < mNumDeviceReboots; testCount++) { + testId = new TestIdentifier("RebootTest", + String.format("RebootLoop #%d", testCount)); + listener.testStarted(testId); + try { + getDevice().nonBlockingReboot(); + if (((IManagedTestDevice)getDevice()).getMonitor().waitForDeviceOnline() == null) { + listener.testFailed(testId, "Reboot failed"); + ((IManagedTestDevice)getDevice()).recoverDevice(); + } + } + finally { + listener.testEnded(testId, emptyMap); + } + } + } + finally { + listener.testRunEnded(System.currentTimeMillis() - start, emptyMap); + } + } + + /** + * {@inheritDoc} + */ + @Override + public void setDevice(ITestDevice device) { + mDevice = device; + } + + /** + * {@inheritDoc} + */ + @Override + public ITestDevice getDevice() { + return mDevice; + } +} diff --git a/src/com/android/example_test/ExampleTest.java b/src/com/android/example_test/ExampleTest.java deleted file mode 100644 index dd73be2..0000000 --- a/src/com/android/example_test/ExampleTest.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2017 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. - */ -package com.android.tradefed; - -import com.android.tradefed.device.DeviceNotAvailableException; -import com.android.tradefed.log.LogUtil.CLog; -import com.android.tradefed.result.ITestInvocationListener; -import com.android.tradefed.testtype.IRemoteTest; - -/** - * Example test to seed Trade Federation Contrib project. - */ -// TODO: Delete when real tests make it here. -public class ExampleTest implements IRemoteTest { - @Override - public void run(ITestInvocationListener listener) throws DeviceNotAvailableException { - CLog.i("AOSP example test says Hello!"); - } -} |