aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/android_test_mapping_format.py8
-rwxr-xr-xtools/android_test_mapping_format_unittest.py25
2 files changed, 31 insertions, 2 deletions
diff --git a/tools/android_test_mapping_format.py b/tools/android_test_mapping_format.py
index a5d68be..0b78dd5 100755
--- a/tools/android_test_mapping_format.py
+++ b/tools/android_test_mapping_format.py
@@ -36,6 +36,7 @@ OPTIONS = 'options'
PATH = 'path'
HOST = 'host'
PREFERRED_TARGETS = 'preferred_targets'
+FILE_PATTERNS = 'file_patterns'
TEST_MAPPING_URL = (
'https://source.android.com/compatibility/tests/development/'
'test-mapping')
@@ -98,6 +99,13 @@ def _validate_test(test, test_mapping_file):
'Invalid test config in test mapping file %s. `preferred_targets` '
'setting in test config can only be a list of strings. Failed test '
'config: %s' % (test_mapping_file, test))
+ file_patterns = test.get(FILE_PATTERNS, [])
+ if (not isinstance(file_patterns, list) or
+ any(not isinstance(p, basestring) for p in file_patterns)):
+ raise InvalidTestMappingError(
+ 'Invalid test config in test mapping file %s. `file_patterns` '
+ 'setting in test config can only be a list of strings. Failed test '
+ 'config: %s' % (test_mapping_file, test))
for option in test.get(OPTIONS, []):
if len(option) != 1:
raise InvalidTestMappingError(
diff --git a/tools/android_test_mapping_format_unittest.py b/tools/android_test_mapping_format_unittest.py
index ffd1160..248786e 100755
--- a/tools/android_test_mapping_format_unittest.py
+++ b/tools/android_test_mapping_format_unittest.py
@@ -22,7 +22,7 @@ import unittest
import android_test_mapping_format
-VALID_TEST_MAPPING = """
+VALID_TEST_MAPPING = r"""
{
"presubmit": [
{
@@ -38,7 +38,8 @@ VALID_TEST_MAPPING = """
{
"name": "CtsWindowManagerDeviceTestCases",
"host": true,
- "preferred_targets": ["a", "b"]
+ "preferred_targets": ["a", "b"],
+ "file_patterns": [".*\\.java"]
}
],
"imports": [
@@ -137,6 +138,17 @@ BAD_IMPORT_WRONG_IMPORT_VALUE = """
}
"""
+BAD_FILE_PATTERNS = """
+{
+ "presubmit": [
+ {
+ "name": "CtsWindowManagerDeviceTestCases",
+ "file_patterns": ["pattern", 123]
+ }
+ ]
+}
+"""
+
class AndroidTestMappingFormatTests(unittest.TestCase):
"""Unittest for android_test_mapping_format module."""
@@ -223,6 +235,15 @@ class AndroidTestMappingFormatTests(unittest.TestCase):
android_test_mapping_format.process_file,
self.test_mapping_file)
+ def test_invalid_test_mapping_file_patterns_value(self):
+ """Verify that file_patterns using wrong value can be detected."""
+ with open(self.test_mapping_file, 'w') as f:
+ f.write(BAD_FILE_PATTERNS)
+ self.assertRaises(
+ android_test_mapping_format.InvalidTestMappingError,
+ android_test_mapping_format.process_file,
+ self.test_mapping_file)
+
if __name__ == '__main__':
unittest.main()