apilint: correctly parse enum_constant
Change-Id: I1a243caa3a01837ff989d21926478f20d70372ae
Fixes: 120132045
Test: python apilint_test.py
diff --git a/tools/apilint/apilint_test.py b/tools/apilint/apilint_test.py
index fde61a9..9c261d5 100644
--- a/tools/apilint/apilint_test.py
+++ b/tools/apilint/apilint_test.py
@@ -143,6 +143,27 @@
out_classes_with_base=classes_with_base)
self.assertEquals(map(lambda x: x.fullname, classes_with_base), ["android.app.WallpaperColors"])
+class ParseV2Stream(unittest.TestCase):
+ def test_field_kinds(self):
+ api = apilint._parse_stream("""
+// Signature format: 2.0
+package android {
+ public enum SomeEnum {
+ enum_constant public static final android.SomeEnum ENUM_CONST;
+ field public static final int FIELD_CONST;
+ property public final int someProperty;
+ ctor public SomeEnum();
+ method public Object? getObject();
+ }
+}
+ """.strip().split('\n'))
+
+ self.assertEquals(api['android.SomeEnum'].fields[0].split[0], 'enum_constant')
+ self.assertEquals(api['android.SomeEnum'].fields[1].split[0], 'field')
+ self.assertEquals(api['android.SomeEnum'].fields[2].split[0], 'property')
+ self.assertEquals(api['android.SomeEnum'].ctors[0].split[0], 'ctor')
+ self.assertEquals(api['android.SomeEnum'].methods[0].split[0], 'method')
+
class V2TokenizerTests(unittest.TestCase):
def _test(self, raw, expected):
self.assertEquals(apilint.V2Tokenizer(raw).tokenize(), expected)
@@ -211,6 +232,10 @@
self.assertEquals('Interface', cls.implements)
self.assertEquals('pkg.Some.Name', cls.fullname)
+ def test_enum(self):
+ cls = self._cls("public enum Some.Name {")
+ self._field("enum_constant public static final android.ValueType COLOR;")
+
def test_interface(self):
cls = self._cls("@Deprecated @IntRange(from=1, to=2) public interface Some.Name extends Interface<Class> {")
self.assertTrue('deprecated' in cls.split)