CtsMediaBitstreamsTestCases: support cli arg passing
To pass a command line argument:
cts-tradefed run cts -m CtsMediaBitstreamsTestCases --module-arg \
CtsMediaBitstreamsTestCases:set-option:<arg_name>:<arg_value>
For example:
arg_name can be "host-bitstreams-path",
and arg_value can be "./TestVectorsIttiam"
Also fixed typos: s,bitsteam,bitstream,
Bug: 30268664
Test: cts-tradefed run cts -m CtsMediaBitstreamsTestCases --module-arg \
CtsMediaBitstreamsTestCases:set-option:host-bitstreams-path:./TestVectorsIttiam
Change-Id: Iee82a432e3b247817fc9ec82b8acb78006b6ee91
diff --git a/hostsidetests/media/bitstreams/app/src/android/media/cts/bitstreams/app/MediaBitstreamsDeviceSideTest.java b/hostsidetests/media/bitstreams/app/src/android/media/cts/bitstreams/app/MediaBitstreamsDeviceSideTest.java
index 32fc86b..af0ae8d 100644
--- a/hostsidetests/media/bitstreams/app/src/android/media/cts/bitstreams/app/MediaBitstreamsDeviceSideTest.java
+++ b/hostsidetests/media/bitstreams/app/src/android/media/cts/bitstreams/app/MediaBitstreamsDeviceSideTest.java
@@ -68,7 +68,7 @@
private static File mAppCache = InstrumentationRegistry.getContext().getExternalCacheDir();
private static String mDeviceBitstreamsPath = InstrumentationRegistry.getArguments().getString(
- MediaBitstreams.OPT_DEVICE_BITSTEAMS_PATH,
+ MediaBitstreams.OPT_DEVICE_BITSTREAMS_PATH,
MediaBitstreams.DEFAULT_DEVICE_BITSTEAMS_PATH);
@BeforeClass
diff --git a/hostsidetests/media/bitstreams/common/src/android/media/cts/bitstreams/MediaBitstreams.java b/hostsidetests/media/bitstreams/common/src/android/media/cts/bitstreams/MediaBitstreams.java
index b4ab76c..99c4387 100644
--- a/hostsidetests/media/bitstreams/common/src/android/media/cts/bitstreams/MediaBitstreams.java
+++ b/hostsidetests/media/bitstreams/common/src/android/media/cts/bitstreams/MediaBitstreams.java
@@ -23,8 +23,8 @@
public class MediaBitstreams {
/* options */
- public static final String OPT_HOST_BITSTEAMS_PATH = "host-bitsteams-path";
- public static final String OPT_DEVICE_BITSTEAMS_PATH = "device-bitsteams-path";
+ public static final String OPT_HOST_BITSTREAMS_PATH = "host-bitstreams-path";
+ public static final String OPT_DEVICE_BITSTREAMS_PATH = "device-bitstreams-path";
public static final String OPT_DOWNLOAD_BITSTREAMS = "download-bitstreams";
public static final String OPT_DEBUG_TARGET_DEVICE = "debug-target-device";
public static final String OPT_BITSTREAMS_TO_TEST_TXT = "bitstreams-to-test-txt";
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4ClassRunnerWithParameters.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4ClassRunnerWithParameters.java
index 4b4a2a7..1c300fe 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4ClassRunnerWithParameters.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4ClassRunnerWithParameters.java
@@ -16,14 +16,18 @@
package android.media.cts.bitstreams;
import com.android.tradefed.build.IBuildInfo;
+import com.android.tradefed.config.Option;
import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.testtype.HostTest;
import com.android.tradefed.testtype.IAbi;
import com.android.tradefed.testtype.IAbiReceiver;
import com.android.tradefed.testtype.IBuildReceiver;
import com.android.tradefed.testtype.IDeviceTest;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
import org.junit.runner.Description;
import org.junit.runner.Runner;
import org.junit.runners.model.FrameworkMethod;
@@ -39,6 +43,12 @@
public class DeviceJUnit4ClassRunnerWithParameters extends BlockJUnit4ClassRunnerWithParameters
implements IDeviceTest, IBuildReceiver, IAbiReceiver {
+ @Option(
+ name = HostTest.SET_OPTION_NAME,
+ description = HostTest.SET_OPTION_DESC
+ )
+ private Set<String> mKeyValueOptions = new HashSet<>();
+
private ITestDevice mDevice;
private IBuildInfo mBuildInfo;
private IAbi mAbi;
@@ -112,6 +122,7 @@
if (testObj instanceof IAbiReceiver) {
((IAbiReceiver) testObj).setAbi(mAbi);
}
+ HostTest.setOptionToLoadedObject(testObj, new ArrayList<String>(mKeyValueOptions));
return testObj;
}
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4Parameterized.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4Parameterized.java
index 5c0b7bc..e37b891 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4Parameterized.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4Parameterized.java
@@ -16,13 +16,23 @@
package android.media.cts.bitstreams;
import com.android.tradefed.build.IBuildInfo;
+import com.android.tradefed.config.ConfigurationException;
+import com.android.tradefed.config.Option;
+import com.android.tradefed.config.OptionSetter;
import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.log.LogUtil.CLog;
+import com.android.tradefed.testtype.HostTest;
import com.android.tradefed.testtype.IAbi;
import com.android.tradefed.testtype.IAbiReceiver;
import com.android.tradefed.testtype.IBuildReceiver;
import com.android.tradefed.testtype.IDeviceTest;
+import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
+import org.junit.runner.Description;
import org.junit.runner.Runner;
+import org.junit.runner.notification.RunNotifier;
import org.junit.runners.Parameterized;
/**
@@ -31,6 +41,12 @@
public class DeviceJUnit4Parameterized extends Parameterized
implements IDeviceTest, IBuildReceiver, IAbiReceiver {
+ @Option(
+ name = HostTest.SET_OPTION_NAME,
+ description = HostTest.SET_OPTION_DESC
+ )
+ private Set<String> mKeyValueOptions = new HashSet<>();
+
private ITestDevice mDevice;
private List<Runner> mRunners;
@@ -77,4 +93,18 @@
protected List<Runner> getChildren() {
return mRunners;
}
+
+ @Override
+ protected void runChild(Runner runner, RunNotifier notifier) {
+ try {
+ OptionSetter setter = new OptionSetter(runner);
+ for (String kv : mKeyValueOptions) {
+ setter.setOptionValue(HostTest.SET_OPTION_NAME, kv);
+ }
+ } catch (ConfigurationException e) {
+ CLog.w(e);
+ }
+ super.runChild(runner, notifier);
+ }
+
}
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/MediaBitstreamsTest.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/MediaBitstreamsTest.java
index 0da0193..2c61859 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/MediaBitstreamsTest.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/MediaBitstreamsTest.java
@@ -65,12 +65,12 @@
@UseParametersRunnerFactory(DeviceJUnit4ClassRunnerWithParameters.RunnerFactory.class)
public class MediaBitstreamsTest implements IDeviceTest, IBuildReceiver, IAbiReceiver {
- @Option(name = MediaBitstreams.OPT_HOST_BITSTEAMS_PATH,
+ @Option(name = MediaBitstreams.OPT_HOST_BITSTREAMS_PATH,
description = "Absolute path of Ittiam bitstreams (host)",
mandatory = true)
private File mHostBitstreamsPath = new File(MediaBitstreams.DEFAULT_HOST_BITSTREAMS_PATH);
- @Option(name = MediaBitstreams.OPT_DEVICE_BITSTEAMS_PATH,
+ @Option(name = MediaBitstreams.OPT_DEVICE_BITSTREAMS_PATH,
description = "Absolute path of Ittiam bitstreams (device)")
private String mDeviceBitstreamsPath = MediaBitstreams.DEFAULT_DEVICE_BITSTEAMS_PATH;
@@ -195,7 +195,7 @@
Map<String, String> getArgs() {
Map<String, String> args = new HashMap<>();
args.put(MediaBitstreams.OPT_DEBUG_TARGET_DEVICE, Boolean.toString(mDebugTargetDevice));
- args.put(MediaBitstreams.OPT_DEVICE_BITSTEAMS_PATH, mDeviceBitstreamsPath);
+ args.put(MediaBitstreams.OPT_DEVICE_BITSTREAMS_PATH, mDeviceBitstreamsPath);
return args;
}