Add support for CtsVerifier to exclude certain tests matching any of the
specified features from being shown: "test_excluded_features". Tests
that are unnecessary for ATV devices are excluded on this CL.

This new meta attribute augments test_required_features's lack of the
ability to specify features negatively.  That is, there is at the moment
no way to prevent a test from being shown on a device having a certain
feature.  So, for example, even if Significant Motion Test may not be
useful on an Android TV device, there is no way to exclude the test from
being shown on the Crossfire's test list.

This CL lets you do exactly that by letting users be able to specify a
list of features such that, if any of them matches on the device, the
test will be excluded from being shown.  Note also that
"test_excluded_features" can support multiple features.  So if you do
not want a certain test to not be displayed on a television or a watch,
you can specify these two features separated by a colon.

The test filtering logic now becomes: For a test, if the device has any
of the features in test_excluded_features, then exclude it from being
shown; if not, see if the device has all required features in
test_required_features and, if false, exclude it from being shown.

Code tested under:
- Molly
- Fugu
- Sharp development TV
- Nexus 5
- Nexus 7

Bug: 17570665
Change-Id: Ie1e2cccaf2c7aaf708ec2bea5b99616f912d0e97
3 files changed