diff options
author | Mathieu <mathieu.a.chartier@gmail.com> | 2013-06-07 17:24:18 -0500 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2013-06-13 11:02:07 -0700 |
commit | 11b179627c411772f1eac023d915ab8532e55211 (patch) | |
tree | 46f06f61304ec59f1ed17be7003fa793e2d204ac /test | |
parent | 5d01254b0cc6c1fe5f01ad6ac631ae631ce39744 (diff) | |
download | android_external_doclava-11b179627c411772f1eac023d915ab8532e55211.tar.gz android_external_doclava-11b179627c411772f1eac023d915ab8532e55211.tar.bz2 android_external_doclava-11b179627c411772f1eac023d915ab8532e55211.zip |
Check that return types are assignable instead of exact.
We now check that the new return type is assignable to the old
return type instead of just comparing the types as strings when
checking the consistency of two APIs.
Fixes:
https://android-review.googlesource.com/#/c/58843/
Change-Id: I6a18a76e5296d58c05f1bb59341cdaa820f0c540
Diffstat (limited to 'test')
-rw-r--r-- | test/api/changed-assignable-return-1.xml | 9 | ||||
-rw-r--r-- | test/api/changed-assignable-return-2.xml | 9 | ||||
-rw-r--r-- | test/doclava/ApiCheckTest.java | 7 |
3 files changed, 25 insertions, 0 deletions
diff --git a/test/api/changed-assignable-return-1.xml b/test/api/changed-assignable-return-1.xml new file mode 100644 index 0000000..8166bbd --- /dev/null +++ b/test/api/changed-assignable-return-1.xml @@ -0,0 +1,9 @@ +<api> +<package name="test" > +<class name="A" extends="java.lang.Object" abstract="false" static="false" final="false" deprecated="not deprecated" visibility="public" /> +<class name="B" extends="test.A" abstract="false" static="false" final="false" deprecated="not deprecated" visibility="public"> +<method name="me" return="test.A" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" /> +</class> +</package> +</api> + diff --git a/test/api/changed-assignable-return-2.xml b/test/api/changed-assignable-return-2.xml new file mode 100644 index 0000000..7d3e271 --- /dev/null +++ b/test/api/changed-assignable-return-2.xml @@ -0,0 +1,9 @@ +<api> +<package name="test" > +<class name="A" extends="java.lang.Object" abstract="false" static="false" final="false" deprecated="not deprecated" visibility="public" /> +<class name="B" extends="test.A" abstract="false" static="false" final="false" deprecated="not deprecated" visibility="public"> +<method name="me" return="test.B" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" /> +</class> +</package> +</api> + diff --git a/test/doclava/ApiCheckTest.java b/test/doclava/ApiCheckTest.java index b58a831..c3393a1 100644 --- a/test/doclava/ApiCheckTest.java +++ b/test/doclava/ApiCheckTest.java @@ -102,6 +102,13 @@ public class ApiCheckTest extends TestCase { assertEquals(1, report.errors().size()); assertEquals(Errors.CHANGED_SUPERCLASS, report.errors().iterator().next().error()); } + + public void testChangedAssignableReturn() { + String[] args = { "test/api/changed-assignable-return-1.xml", "test/api/changed-assignable-return-2.xml" }; + ApiCheck apiCheck = new ApiCheck(); + Report report = apiCheck.checkApi(args); + assertEquals(0, report.errors().size()); + } public void testInsertedSuper() { String[] args = { "test/api/inserted-super-1.xml", "test/api/inserted-super-2.xml" }; |