blob: 38fa85f88f9ab6a53d454b9da4c4a66984804e1e [file] [log] [blame]
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.tools.metalava.model.psi
import com.android.tools.lint.checks.infrastructure.TestFiles
import com.android.tools.metalava.DriverTest
import org.junit.Test
class PsiBasedCodebaseTest : DriverTest() {
@Test
fun `Regression test for issue 112931426`() {
check(
sourceFiles = *arrayOf(
DriverTest.java(
"""
package test.pkg2;
public class Foo {
public test.pkg.ForeignClass getFoo(test.pkg.ForeignClass.ExtraCallback callback) {
return null;
}
}
"""
)
),
classpath = arrayOf(
/* The following source file, compiled, and root folder jar'ed and stored as base64 gzip:
package test.pkg;
public class ForeignClass {
public class ExtraCallback extends Something.Callback {
public void foo() {}
}
public static class Something {
public static class Callback {
public void foo() {}
}
}
}
*/
TestFiles.base64gzip("test.jar", "" +
"H4sIAAAAAAAAAAvwZmYRYeDg4GCYUiXhy4AEOBlYGHxdQxx1Pf3c9P+dYmBg" +
"ZgjwZucASTFBlQTg1CwCxHDNvo5+nm6uwSF6vm6ffc+c9vHW1bvI662rde7M" +
"+c1BBleMHzwt0vPy1fH0vVi6ioUz4oXkEekoCa2MH+Kqas+XaFk8Fxd9Iq46" +
"jeFq9qeij0WMYFdIfLSxdQHa4Qp1BRcDA9BlDWiuYAXiktTiEn3cSjhhSgqy" +
"0/UR/kFXpoeszC2/KDUzPc85J7G4WCU4Pze1JCMzL13FOTEnJykxOVsvGSTR" +
"G+DrfdhBoHZy3ZLO0NsZV2dz2F7hevYg8GOQBocr/9R75oW9t/PKVT3/xs9j" +
"4f/HUD/FonOriEgJf/6zs3vMrc/8Pv5ausFY5scKhYKNj5OmB+wPcHs6vcXr" +
"fYXTCr43c1Vy+qdMvN5dqXI5WjBzHYuyNLet4EqtH5sizsqHPEvqf9D7NsbI" +
"mHNhZWqPD3tUyswzHL2NF6yEPvZckH9qdPrw8Ughvlyt0CSv0PLUd3XZ5ysX" +
"Vmdz/ruhdymCL/RjfPXdUitR/0WdWlkt9+qfC0W16l45pPLQ12Rq4buk+QU/" +
"jjM4PQ9n7XvwwbL7eUNXqsTrM059RzZeq2e0nZ47fWOcmK2JxOx4prRomZ8v" +
"tD97nvx4+cV6yczMkgtaG8+WKjw4484ufUd3k2/FfFAsnq2qKldgZGD4xYic" +
"ltDDXpVw2EOCvBUW5MdqJN+2h/UHvVhYZcDe3zXdwZGjasWXfZ3ed8p2T1R5" +
"+/+TSsUH9h+Lj3iKfFUoYZczzr8/e+bd7/3XzRnELfguON4/2tjt3GSvHbap" +
"LkRNvcX82Amja4tWpTxN8viQtLBUa5PqwZ1Bblevt5x7UuK34fEjR6FdnUaf" +
"yvZ6pVbqB509o6BptPD5ohDfv763bBYq9UyKCiv9suXM4sxAr6mzy278SG/3" +
"djLQvpaqtnzVx6//T50TT1J2qvgQKyPot+2L0hcp5yWtJxfvLlHcPMvgZpLU" +
"f7uKH+tFlCP+1J9V5ItrM3yglZWd8PwN65czna2xbstVbVt6Hk5nqL6R/363" +
"7rcZjGxzInvMzEssih/WM4HCV1RV2JEXGLab8IavJs7wda0oKUpES9aBp/0O" +
"BQjYBnMt3XrCWfBoeM8MBZWkR0GH2zKSnO4k3Ij/0DX1UvatpD+64seOtMo/" +
"cJdc3toh1aP3zub8HOPJv7/9+8T1gCNaTShi24LFGQtSEnoncOXPWVDkobHV" +
"WbKld/fDBYXLal7y7Jmm3fRghqJ63/MWX6edv7jT9ntfiH7lJbQp9/hk8ceB" +
"/r+mL3petPRCWO3Dstb3Lj+3rHDf1HLmpfOL7mkFd+e94Of8tvO5p73a1Dv3" +
"Zq8P/2l2VFpt3dSk6N5vG6yy3nx/OlP45JP9fbJ3uqoTlTun8DJXMku33K3n" +
"kLihEvKc2TpL5adIfsBM2cQ6Mc6XkTstpjdu+MtuXPbjcsk/+1NPFz21vORQ" +
"4zhr7cnIycW9e0NX2zdmnb8gl9xz1OyoxIcvTLencnKZbXKQUX1sp9j+Z8pq" +
"uZcu79VdjZZtUD+r2drmlDN9w4l9Z7LVIlQO/w39lqp2xTKq/ScjKKr4XzX/" +
"CwFGUyMTvqiSxhVVkMjJDdjod9hAoPb6El5ezVzmpcpOBgzMkhKOOoJTJyhJ" +
"dO2yPsiVF8uuqvdo+4wJEj8Y7LgKOXlcV+na36/+/ubzz9e/HwsfYD1mJ9Mi" +
"V2b7plJCcNflJM23k40sFXeYuk3bKBaqqs3/u+Xe2dW6rjpb/Fy3KZSsmxL4" +
"bdaDOXPOceTF2Hg52Qe63Vs7baWOvMuqSM7JSsJVal6hn+0vPjUSTZwTEXnz" +
"ReVE98mLpmiZ+x71brLXDUtVU19Vxn998vPij0pMJQ+F3aT7hdm2ql869ORi" +
"rdX0maoyOVvk1m+t2XLz4/pcmUVH94fxPzrZn3AnTcxUJmP+3uZ7FhmKCW9M" +
"FjXLJX/IPsD3y7fuwoMJtg4nJp5efTa8ak9+Yx24ppi7O7NRABiwK8B5gJFJ" +
"hAG1xoLVZaDqDhWgVH7oWpErIBEUbbY4qj6QCVwMuCsqBDiMqLZwa+FE0fIM" +
"tRpDuBWkDbmY1UPRBiocSKvW0M1GLmJUUczuZCKy2EY3EjkraKIY+ZKZhJIK" +
"3VjkhCCNYuwUVry5KsCblQ2kjAMIzYBuegvmAQBYPJKrOQkAAA==")
),
api = """
package test.pkg2 {
public class Foo {
ctor public Foo();
method public test.pkg.ForeignClass getFoo(test.pkg.ForeignClass.ExtraCallback);
}
}
"""
)
}
}