## Media Performance Class CTS Tests

Current folder comprises of files necessary for testing media performance class.

The test vectors used by the test suite is available at
[link](https://dl.google.com/android/xts/cts/tests/mediapc/CtsMediaPerformanceClassTestCases-3.3.zip)
and is downloaded automatically while running tests. Manual installation of
these can be done using copy_media.sh script in this directory.

### Commands

#### To run all tests in CtsMediaPerformanceClassTestCases

```sh
$ atest CtsMediaPerformanceClassTestCases
```

#### To run a subset of tests in CtsMediaPerformanceClassTestCases

```sh
$ atest CtsMediaPerformanceClassTestCases:android.mediapc.cts.FrameDropTest
```

#### To run all tests in CtsMediaPerformanceClassTestCases by overriding Build.VERSION.MEDIA_PERFORMANCE_CLASS

In some cases it might be useful to override
Build.VERSION.MEDIA_PERFORMANCE_CLASS and run the tests. For eg: when the device
doesn't advertise Build.VERSION.MEDIA_PERFORMANCE_CLASS, running the tests by
overriding this will help in determining the which performance class
requirements are met by the device. Following runs the tests by overriding
Build.VERSION.MEDIA_PERFORMANCE_CLASS as S.

```sh
$ atest
CtsMediaPerformanceClassTestCases -- --module-arg
CtsMediaPerformanceClassTestCases:instrumentation-arg:media-performance-class:=31
```

### Features

All tests accepts attributes that offer selective run of tests.

#### Select codecs by media type

To select codecs by media type, *media-type-prefix* can be passed to media codec
tests to select one or more codecs that start with a given prefix.

Example: To limit the tests to run for media types whose names start with
video/avc

```sh
atest CtsMediaPerformanceClassTestCases -- --module-arg CtsMediaPerformanceClassTestCases:instrumentation-arg:media-type-prefix:=video/avc
```

#### Select codecs using regular expressions

To select codecs by applying regular expressions, *codec-filter* can be passed
to media codec tests to select one or more codecs that match with a specified
regular expression pattern.

Example: To limit the tests to run for c2.android.avc.decoder and
c2.android.hevc.encoder

```sh
atest CtsMediaPerformanceClassTestCases -- --module-arg CtsMediaPerformanceClassTestCases:instrumentation-arg:codec-filter:="c2\.android\.avc\.decoder\|c2\.android\.hevc\.encoder"
```

#### Select codecs by name

To select codecs by name, *codec-prefix* can be passed to media codec tests to
select one or more codecs that start with a given prefix.

Example: To limit the tests to run for codecs whose names start with c2.android.

```sh
atest CtsMediaPerformanceClassTestCases -- --module-arg CtsMediaPerformanceClassTestCases:instrumentation-arg:codec-prefix:=c2.android.
```

Example: To limit the tests to run for c2.android.hevc.decoder

```sh
atest CtsMediaPerformanceClassTestCases -- --module-arg CtsMediaPerformanceClassTestCases:instrumentation-arg:codec-prefix:=c2.android.hevc.decoder
```
