summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMathieu <mathieu.a.chartier@gmail.com>2013-06-07 17:24:18 -0500
committerElliott Hughes <enh@google.com>2013-06-13 11:02:07 -0700
commit11b179627c411772f1eac023d915ab8532e55211 (patch)
tree46f06f61304ec59f1ed17be7003fa793e2d204ac /test
parent5d01254b0cc6c1fe5f01ad6ac631ae631ce39744 (diff)
downloadandroid_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.xml9
-rw-r--r--test/api/changed-assignable-return-2.xml9
-rw-r--r--test/doclava/ApiCheckTest.java7
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" };