1 /* 2 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * @test 26 * @summary Test of method selection and resolution cases that 27 * generate AbstractMethodErrorTest 28 * @modules java.base/jdk.internal.org.objectweb.asm 29 * @library /runtime/SelectionResolution/classes 30 * @build selectionresolution.* 31 * @run main/othervm/timeout=300 -XX:+IgnoreUnrecognizedVMOptions -XX:-VerifyDependencies AbstractMethodErrorTest 32 */ 33 34 import java.util.Arrays; 35 import java.util.Collection; 36 import java.util.EnumSet; 37 import selectionresolution.ClassData; 38 import selectionresolution.MethodData; 39 import selectionresolution.Result; 40 import selectionresolution.SelectionResolutionTest; 41 import selectionresolution.SelectionResolutionTestCase; 42 import selectionresolution.Template; 43 44 public class AbstractMethodErrorTest extends SelectionResolutionTest { 45 46 private static final SelectionResolutionTestCase.Builder initBuilder = 47 new SelectionResolutionTestCase.Builder(); 48 49 static { 50 initBuilder.setResult(Result.AME); 51 } 52 53 private static final Collection<TestGroup> testgroups = 54 Arrays.asList( 55 /* invokevirtual tests */ 56 /* Group 63: callsite = methodref = expected */ 57 new TestGroup.Simple(initBuilder, 58 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 59 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 60 EnumSet.of(MethodData.Access.PUBLIC, 61 MethodData.Access.PACKAGE, 62 MethodData.Access.PROTECTED, 63 MethodData.Access.PRIVATE), 64 EnumSet.of(MethodData.Context.ABSTRACT), 65 EnumSet.of(ClassData.Package.SAME)), 66 Template.MethodrefEqualsExpected, 67 Template.ReabstractExpectedClass, 68 Template.CallsiteEqualsMethodref, 69 Template.MethodrefSelectionResolvedIsClass), 70 /* Group 64: callsite = methodref, methodref != expected, 71 * expected is class, expected and callsite in the same package 72 */ 73 new TestGroup.Simple(initBuilder, 74 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 75 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 76 EnumSet.of(MethodData.Access.PUBLIC, 77 MethodData.Access.PROTECTED), 78 EnumSet.of(MethodData.Context.ABSTRACT), 79 EnumSet.of(ClassData.Package.SAME)), 80 Template.MethodrefNotEqualsExpectedClass, 81 Template.ReabstractExpectedClass, 82 Template.CallsiteEqualsMethodref, 83 Template.MethodrefSelectionResolvedIsClass), 84 /* Group 65: callsite = methodref = resolved, possibly 85 * skip different package in selection. 86 */ 87 new TestGroup.Simple(initBuilder, 88 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 89 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 90 EnumSet.of(MethodData.Access.PACKAGE), 91 EnumSet.of(MethodData.Context.ABSTRACT), 92 EnumSet.of(ClassData.Package.SAME)), 93 Template.MethodrefNotEqualsExpectedClass, 94 Template.ReabstractExpectedClass, 95 Template.CallsiteEqualsMethodref, 96 Template.MethodrefSelectionPackageSkipNoOverride), 97 /* Group 66: callsite = methodref, methodref != expected, 98 * expected is interface, expected and callsite in the same package 99 */ 100 new TestGroup.Simple(initBuilder, 101 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 102 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 103 EnumSet.of(MethodData.Access.PUBLIC), 104 EnumSet.of(MethodData.Context.ABSTRACT), 105 EnumSet.of(ClassData.Package.SAME)), 106 Template.MethodrefNotEqualsExpectedIface, 107 Template.ReabstractExpectedIface, 108 Template.CallsiteEqualsMethodref, 109 Template.MethodrefSelectionResolvedIsIface), 110 /* Group 67: callsite :> methodref, methodref = expected, 111 * expected is class, expected and callsite in the same package 112 */ 113 new TestGroup.Simple(initBuilder, 114 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 115 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 116 EnumSet.of(MethodData.Access.PUBLIC, 117 MethodData.Access.PROTECTED), 118 EnumSet.of(MethodData.Context.ABSTRACT), 119 EnumSet.of(ClassData.Package.SAME)), 120 Template.MethodrefEqualsExpected, 121 Template.ReabstractExpectedClass, 122 Template.CallsiteSubclassMethodref, 123 Template.MethodrefSelectionResolvedIsClass), 124 /* Group 68: callsite :> methodref, methodref = expected, 125 * possibly skip different package in selection. 126 */ 127 new TestGroup.Simple(initBuilder, 128 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 129 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 130 EnumSet.of(MethodData.Access.PACKAGE), 131 EnumSet.of(MethodData.Context.ABSTRACT), 132 EnumSet.of(ClassData.Package.SAME)), 133 Template.MethodrefEqualsExpected, 134 Template.ReabstractExpectedClass, 135 Template.CallsiteSubclassMethodref, 136 Template.MethodrefSelectionPackageSkipNoOverride), 137 /* Group 69: callsite :> methodref, methodref != expected, 138 * expected is class, expected and callsite in the same package 139 */ 140 new TestGroup.Simple(initBuilder, 141 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 142 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 143 EnumSet.of(MethodData.Access.PUBLIC, 144 MethodData.Access.PACKAGE, 145 MethodData.Access.PROTECTED), 146 EnumSet.of(MethodData.Context.ABSTRACT), 147 EnumSet.of(ClassData.Package.SAME)), 148 Template.MethodrefNotEqualsExpectedClass, 149 Template.ReabstractExpectedClass, 150 Template.CallsiteSubclassMethodref, 151 Template.MethodrefSelectionResolvedIsClass), 152 /* Group 70: callsite :> methodref, methodref != expected, 153 * possibly skip different package in selection 154 */ 155 new TestGroup.Simple(initBuilder, 156 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 157 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 158 EnumSet.of(MethodData.Access.PACKAGE), 159 EnumSet.of(MethodData.Context.ABSTRACT), 160 EnumSet.of(ClassData.Package.SAME)), 161 Template.MethodrefNotEqualsExpectedClass, 162 Template.ReabstractExpectedClass, 163 Template.CallsiteSubclassMethodref, 164 Template.MethodrefSelectionPackageSkipNoOverride), 165 /* Group 71: callsite :> methodref, methodref != expected, 166 * expected is interface, expected and callsite in the same package 167 */ 168 new TestGroup.Simple(initBuilder, 169 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 170 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 171 EnumSet.of(MethodData.Access.PUBLIC), 172 EnumSet.of(MethodData.Context.ABSTRACT), 173 EnumSet.of(ClassData.Package.SAME)), 174 Template.MethodrefNotEqualsExpectedIface, 175 Template.ReabstractExpectedIface, 176 Template.CallsiteSubclassMethodref, 177 Template.MethodrefSelectionResolvedIsIface), 178 /* Group 72: callsite unrelated to methodref, methodref = expected, 179 * expected is class, expected and callsite in the same package 180 */ 181 new TestGroup.Simple(initBuilder, 182 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 183 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 184 EnumSet.of(MethodData.Access.PUBLIC), 185 EnumSet.of(MethodData.Context.ABSTRACT), 186 EnumSet.of(ClassData.Package.SAME)), 187 Template.MethodrefEqualsExpected, 188 Template.ReabstractExpectedClass, 189 Template.CallsiteUnrelatedToMethodref, 190 Template.MethodrefSelectionResolvedIsClass), 191 /* Group 73: callsite unrelated to methodref, methodref = expected, 192 * expected is class, expected and callsite in the same package 193 */ 194 new TestGroup.Simple(initBuilder, 195 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 196 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 197 EnumSet.of(MethodData.Access.PACKAGE), 198 EnumSet.of(MethodData.Context.ABSTRACT), 199 EnumSet.of(ClassData.Package.SAME)), 200 Template.MethodrefEqualsExpected, 201 Template.ReabstractExpectedClass, 202 Template.CallsiteUnrelatedToMethodref, 203 Template.MethodrefSelectionPackageSkipNoOverride), 204 /* Group 74: callsite unrelated to methodref, methodref != expected, 205 * expected is class, expected and callsite in the same package 206 */ 207 new TestGroup.Simple(initBuilder, 208 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 209 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 210 EnumSet.of(MethodData.Access.PUBLIC), 211 EnumSet.of(MethodData.Context.ABSTRACT), 212 EnumSet.of(ClassData.Package.SAME)), 213 Template.MethodrefNotEqualsExpectedClass, 214 Template.ReabstractExpectedClass, 215 Template.CallsiteUnrelatedToMethodref, 216 Template.MethodrefSelectionResolvedIsClass), 217 /* Group 75: callsite unrelated to methodref, methodref != expected, 218 * expected is class, expected and callsite in the same package 219 */ 220 new TestGroup.Simple(initBuilder, 221 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 222 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 223 EnumSet.of(MethodData.Access.PACKAGE), 224 EnumSet.of(MethodData.Context.ABSTRACT), 225 EnumSet.of(ClassData.Package.SAME)), 226 Template.MethodrefNotEqualsExpectedClass, 227 Template.ReabstractExpectedClass, 228 Template.CallsiteUnrelatedToMethodref, 229 Template.MethodrefSelectionPackageSkipNoOverride), 230 /* Group 76: callsite unrelated to methodref, methodref != expected, 231 * expected is interface, expected and callsite in the same package 232 */ 233 new TestGroup.Simple(initBuilder, 234 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 235 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 236 EnumSet.of(MethodData.Access.PUBLIC), 237 EnumSet.of(MethodData.Context.ABSTRACT), 238 EnumSet.of(ClassData.Package.SAME)), 239 Template.MethodrefNotEqualsExpectedIface, 240 Template.ReabstractExpectedIface, 241 Template.CallsiteUnrelatedToMethodref, 242 Template.MethodrefSelectionResolvedIsIface), 243 /* Group 77: callsite = methodref, methodref != expected, 244 * expected is class, expected and callsite not in the same package 245 */ 246 new TestGroup.Simple(initBuilder, 247 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 248 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 249 EnumSet.of(MethodData.Access.PUBLIC), 250 EnumSet.of(MethodData.Context.ABSTRACT), 251 EnumSet.of(ClassData.Package.DIFFERENT)), 252 Template.MethodrefNotEqualsExpectedClass, 253 Template.ReabstractExpectedClass, 254 Template.CallsiteEqualsMethodref, 255 Template.MethodrefSelectionResolvedIsClass), 256 /* Group 78: callsite = methodref, methodref != expected, 257 * expected is interface, expected and callsite not in the same package 258 */ 259 new TestGroup.Simple(initBuilder, 260 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 261 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 262 EnumSet.of(MethodData.Access.PUBLIC), 263 EnumSet.of(MethodData.Context.ABSTRACT), 264 EnumSet.of(ClassData.Package.DIFFERENT)), 265 Template.MethodrefNotEqualsExpectedIface, 266 Template.ReabstractExpectedIface, 267 Template.CallsiteEqualsMethodref, 268 Template.MethodrefSelectionResolvedIsIface), 269 /* Group 79: callsite :> methodref, methodref = expected, 270 * expected is class, expected and callsite not in the same package 271 */ 272 new TestGroup.Simple(initBuilder, 273 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 274 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 275 EnumSet.of(MethodData.Access.PUBLIC), 276 EnumSet.of(MethodData.Context.ABSTRACT), 277 EnumSet.of(ClassData.Package.DIFFERENT)), 278 Template.MethodrefEqualsExpected, 279 Template.ReabstractExpectedClass, 280 Template.CallsiteSubclassMethodref, 281 Template.MethodrefSelectionResolvedIsClass), 282 283 /* Group 80: callsite :> methodref, methodref != expected, 284 * expected is class, expected and callsite not in the same package 285 */ 286 new TestGroup.Simple(initBuilder, 287 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 288 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 289 EnumSet.of(MethodData.Access.PUBLIC), 290 EnumSet.of(MethodData.Context.ABSTRACT), 291 EnumSet.of(ClassData.Package.DIFFERENT)), 292 Template.MethodrefNotEqualsExpectedClass, 293 Template.ReabstractExpectedClass, 294 Template.CallsiteSubclassMethodref, 295 Template.MethodrefSelectionResolvedIsClass), 296 /* Group 81: callsite :> methodref, methodref != expected, 297 * expected is interface, expected and callsite not in the same package 298 */ 299 new TestGroup.Simple(initBuilder, 300 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 301 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 302 EnumSet.of(MethodData.Access.PUBLIC), 303 EnumSet.of(MethodData.Context.ABSTRACT), 304 EnumSet.of(ClassData.Package.DIFFERENT)), 305 Template.MethodrefNotEqualsExpectedIface, 306 Template.ReabstractExpectedIface, 307 Template.CallsiteSubclassMethodref, 308 Template.MethodrefSelectionResolvedIsIface), 309 /* Group 82: callsite unrelated to methodref, methodref = expected, 310 * expected is class, expected and callsite not in the same package 311 */ 312 new TestGroup.Simple(initBuilder, 313 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 314 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 315 EnumSet.of(MethodData.Access.PUBLIC), 316 EnumSet.of(MethodData.Context.ABSTRACT), 317 EnumSet.of(ClassData.Package.DIFFERENT)), 318 Template.MethodrefEqualsExpected, 319 Template.ReabstractExpectedClass, 320 Template.CallsiteUnrelatedToMethodref, 321 Template.MethodrefSelectionResolvedIsClass), 322 /* Group 83: callsite unrelated to methodref, methodref != expected, 323 * expected is class, expected and callsite not in the same package 324 */ 325 new TestGroup.Simple(initBuilder, 326 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 327 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 328 EnumSet.of(MethodData.Access.PUBLIC), 329 EnumSet.of(MethodData.Context.ABSTRACT), 330 EnumSet.of(ClassData.Package.DIFFERENT)), 331 Template.MethodrefNotEqualsExpectedClass, 332 Template.ReabstractExpectedClass, 333 Template.CallsiteUnrelatedToMethodref, 334 Template.MethodrefSelectionResolvedIsClass), 335 /* Group 84: callsite unrelated to methodref, methodref != expected, 336 * expected is interface, expected and callsite not in the same package 337 */ 338 new TestGroup.Simple(initBuilder, 339 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 340 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 341 EnumSet.of(MethodData.Access.PUBLIC), 342 EnumSet.of(MethodData.Context.ABSTRACT), 343 EnumSet.of(ClassData.Package.DIFFERENT)), 344 Template.MethodrefNotEqualsExpectedIface, 345 Template.ReabstractExpectedIface, 346 Template.CallsiteUnrelatedToMethodref, 347 Template.MethodrefSelectionResolvedIsIface), 348 349 /* Reabstraction during selection */ 350 /* Group 85: callsite = methodref = expected */ 351 new TestGroup.Simple(initBuilder, 352 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 353 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 354 EnumSet.of(MethodData.Access.PROTECTED, 355 MethodData.Access.PACKAGE, 356 MethodData.Access.PUBLIC), 357 EnumSet.of(MethodData.Context.INSTANCE), 358 EnumSet.of(ClassData.Package.SAME)), 359 Template.MethodrefEqualsExpected, 360 Template.CallsiteEqualsMethodref, 361 Template.ReabstractMethodrefResolvedClass), 362 /* Group 86: callsite = methodref, methodref != expected, 363 * expected is class, expected and callsite in the same package 364 */ 365 new TestGroup.Simple(initBuilder, 366 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 367 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 368 EnumSet.of(MethodData.Access.PUBLIC, 369 MethodData.Access.PACKAGE, 370 MethodData.Access.PROTECTED), 371 EnumSet.of(MethodData.Context.INSTANCE), 372 EnumSet.of(ClassData.Package.SAME)), 373 Template.MethodrefNotEqualsExpectedClass, 374 Template.CallsiteEqualsMethodref, 375 Template.ReabstractMethodrefResolvedClass), 376 /* Group 87: callsite = methodref, methodref != expected, 377 * expected is interface, expected and callsite in the same package 378 */ 379 new TestGroup.Simple(initBuilder, 380 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 381 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 382 EnumSet.of(MethodData.Access.PUBLIC), 383 EnumSet.of(MethodData.Context.INSTANCE), 384 EnumSet.of(ClassData.Package.SAME)), 385 Template.MethodrefNotEqualsExpectedIface, 386 Template.CallsiteEqualsMethodref, 387 Template.ReabstractMethodrefResolvedIface), 388 /* Group 88: callsite :> methodref, methodref = expected, 389 * expected is class, expected and callsite in the same package 390 */ 391 new TestGroup.Simple(initBuilder, 392 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 393 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 394 EnumSet.of(MethodData.Access.PUBLIC, 395 MethodData.Access.PACKAGE, 396 MethodData.Access.PROTECTED), 397 EnumSet.of(MethodData.Context.INSTANCE), 398 EnumSet.of(ClassData.Package.SAME)), 399 Template.MethodrefEqualsExpected, 400 Template.CallsiteSubclassMethodref, 401 Template.ReabstractMethodrefResolvedClass), 402 /* Group 89: callsite :> methodref, methodref != expected, 403 * expected is class, expected and callsite in the same package 404 */ 405 new TestGroup.Simple(initBuilder, 406 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 407 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 408 EnumSet.of(MethodData.Access.PUBLIC, 409 MethodData.Access.PACKAGE, 410 MethodData.Access.PROTECTED), 411 EnumSet.of(MethodData.Context.INSTANCE), 412 EnumSet.of(ClassData.Package.SAME)), 413 Template.MethodrefNotEqualsExpectedClass, 414 Template.CallsiteSubclassMethodref, 415 Template.ReabstractMethodrefResolvedClass), 416 /* Group 90: callsite :> methodref, methodref != expected, 417 * expected is interface, expected and callsite in the same package 418 */ 419 new TestGroup.Simple(initBuilder, 420 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 421 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 422 EnumSet.of(MethodData.Access.PUBLIC), 423 EnumSet.of(MethodData.Context.INSTANCE), 424 EnumSet.of(ClassData.Package.SAME)), 425 Template.MethodrefNotEqualsExpectedIface, 426 Template.CallsiteSubclassMethodref, 427 Template.ReabstractMethodrefResolvedIface), 428 /* Group 91: callsite unrelated to methodref, methodref = expected, 429 * expected is class, expected and callsite in the same package 430 */ 431 new TestGroup.Simple(initBuilder, 432 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 433 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 434 EnumSet.of(MethodData.Access.PUBLIC, 435 MethodData.Access.PACKAGE), 436 EnumSet.of(MethodData.Context.INSTANCE), 437 EnumSet.of(ClassData.Package.SAME)), 438 Template.MethodrefEqualsExpected, 439 Template.CallsiteUnrelatedToMethodref, 440 Template.ReabstractMethodrefResolvedClass), 441 /* Group 92: callsite unrelated to methodref, methodref != expected, 442 * expected is class, expected and callsite in the same package 443 */ 444 new TestGroup.Simple(initBuilder, 445 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 446 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 447 EnumSet.of(MethodData.Access.PUBLIC, 448 MethodData.Access.PACKAGE), 449 EnumSet.of(MethodData.Context.INSTANCE), 450 EnumSet.of(ClassData.Package.SAME)), 451 Template.MethodrefNotEqualsExpectedClass, 452 Template.CallsiteUnrelatedToMethodref, 453 Template.ReabstractMethodrefResolvedClass), 454 /* Group 93: callsite unrelated to methodref, methodref != expected, 455 * expected is interface, expected and callsite in the same package 456 */ 457 new TestGroup.Simple(initBuilder, 458 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 459 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 460 EnumSet.of(MethodData.Access.PUBLIC), 461 EnumSet.of(MethodData.Context.INSTANCE), 462 EnumSet.of(ClassData.Package.SAME)), 463 Template.MethodrefNotEqualsExpectedIface, 464 Template.CallsiteUnrelatedToMethodref, 465 Template.ReabstractMethodrefResolvedIface), 466 /* Group 94: callsite = methodref, methodref != expected, 467 * expected is class, expected and callsite not in the same package 468 */ 469 new TestGroup.Simple(initBuilder, 470 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 471 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 472 EnumSet.of(MethodData.Access.PUBLIC), 473 EnumSet.of(MethodData.Context.INSTANCE), 474 EnumSet.of(ClassData.Package.DIFFERENT)), 475 Template.MethodrefNotEqualsExpectedClass, 476 Template.CallsiteEqualsMethodref, 477 Template.ReabstractMethodrefResolvedClass), 478 /* Group 95: callsite = methodref, methodref != expected, 479 * expected is interface, expected and callsite not in the same package 480 */ 481 new TestGroup.Simple(initBuilder, 482 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 483 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 484 EnumSet.of(MethodData.Access.PUBLIC), 485 EnumSet.of(MethodData.Context.INSTANCE), 486 EnumSet.of(ClassData.Package.DIFFERENT)), 487 Template.MethodrefNotEqualsExpectedIface, 488 Template.CallsiteEqualsMethodref, 489 Template.ReabstractMethodrefResolvedIface), 490 /* Group 96: callsite :> methodref, methodref = expected, 491 * expected is class, expected and callsite not in the same package 492 */ 493 new TestGroup.Simple(initBuilder, 494 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 495 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 496 EnumSet.of(MethodData.Access.PUBLIC), 497 EnumSet.of(MethodData.Context.INSTANCE), 498 EnumSet.of(ClassData.Package.DIFFERENT)), 499 Template.MethodrefEqualsExpected, 500 Template.CallsiteSubclassMethodref, 501 Template.ReabstractMethodrefResolvedClass), 502 503 /* Group 97: callsite :> methodref, methodref != expected, 504 * expected is class, expected and callsite not in the same package 505 */ 506 new TestGroup.Simple(initBuilder, 507 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 508 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 509 EnumSet.of(MethodData.Access.PUBLIC), 510 EnumSet.of(MethodData.Context.INSTANCE), 511 EnumSet.of(ClassData.Package.DIFFERENT)), 512 Template.MethodrefNotEqualsExpectedClass, 513 Template.CallsiteSubclassMethodref, 514 Template.ReabstractMethodrefResolvedClass), 515 /* Group 98: callsite :> methodref, methodref != expected, 516 * expected is interface, expected and callsite not in the same package 517 */ 518 new TestGroup.Simple(initBuilder, 519 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 520 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 521 EnumSet.of(MethodData.Access.PUBLIC), 522 EnumSet.of(MethodData.Context.INSTANCE), 523 EnumSet.of(ClassData.Package.DIFFERENT)), 524 Template.MethodrefNotEqualsExpectedIface, 525 Template.CallsiteSubclassMethodref, 526 Template.ReabstractMethodrefResolvedIface), 527 /* Group 99: callsite unrelated to methodref, methodref = expected, 528 * expected is class, expected and callsite not in the same package 529 */ 530 new TestGroup.Simple(initBuilder, 531 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 532 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 533 EnumSet.of(MethodData.Access.PUBLIC), 534 EnumSet.of(MethodData.Context.INSTANCE), 535 EnumSet.of(ClassData.Package.DIFFERENT)), 536 Template.MethodrefEqualsExpected, 537 Template.CallsiteUnrelatedToMethodref, 538 Template.ReabstractMethodrefResolvedClass), 539 /* Group 100: callsite unrelated to methodref, methodref != expected, 540 * expected is class, expected and callsite not in the same package 541 */ 542 new TestGroup.Simple(initBuilder, 543 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 544 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 545 EnumSet.of(MethodData.Access.PUBLIC), 546 EnumSet.of(MethodData.Context.INSTANCE), 547 EnumSet.of(ClassData.Package.DIFFERENT)), 548 Template.MethodrefNotEqualsExpectedClass, 549 Template.CallsiteUnrelatedToMethodref, 550 Template.ReabstractMethodrefResolvedClass), 551 /* Group 101: callsite unrelated to methodref, methodref != expected, 552 * expected is interface, expected and callsite not in the same package 553 */ 554 new TestGroup.Simple(initBuilder, 555 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEVIRTUAL), 556 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 557 EnumSet.of(MethodData.Access.PUBLIC), 558 EnumSet.of(MethodData.Context.INSTANCE), 559 EnumSet.of(ClassData.Package.DIFFERENT)), 560 Template.MethodrefNotEqualsExpectedIface, 561 Template.CallsiteUnrelatedToMethodref, 562 Template.ReabstractMethodrefResolvedIface), 563 564 /* invokeinterface */ 565 /* Group 102: callsite = methodref = expected */ 566 new TestGroup.Simple(initBuilder, 567 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 568 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 569 EnumSet.of(MethodData.Access.PUBLIC), 570 EnumSet.of(MethodData.Context.ABSTRACT), 571 EnumSet.of(ClassData.Package.SAME)), 572 Template.MethodrefEqualsExpected, 573 Template.ReabstractExpectedIface, 574 Template.CallsiteEqualsMethodref, 575 Template.IfaceMethodrefSelection), 576 /* Group 103: callsite = methodref, methodref != expected, 577 */ 578 new TestGroup.Simple(initBuilder, 579 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 580 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 581 EnumSet.of(MethodData.Access.PUBLIC), 582 EnumSet.of(MethodData.Context.ABSTRACT), 583 EnumSet.of(ClassData.Package.SAME, 584 ClassData.Package.DIFFERENT)), 585 Template.IfaceMethodrefNotEqualsExpected, 586 Template.ReabstractExpectedIface, 587 Template.CallsiteEqualsMethodref, 588 Template.IfaceMethodrefSelection), 589 /* Group 104: callsite :> methodref, methodref = expected, 590 */ 591 new TestGroup.Simple(initBuilder, 592 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 593 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 594 EnumSet.of(MethodData.Access.PUBLIC), 595 EnumSet.of(MethodData.Context.ABSTRACT), 596 EnumSet.of(ClassData.Package.SAME, 597 ClassData.Package.DIFFERENT)), 598 Template.MethodrefEqualsExpected, 599 Template.ReabstractExpectedIface, 600 Template.CallsiteSubclassMethodref, 601 Template.IfaceMethodrefSelection), 602 /* Group 105: callsite :> methodref, methodref != expected, 603 */ 604 new TestGroup.Simple(initBuilder, 605 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 606 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 607 EnumSet.of(MethodData.Access.PUBLIC), 608 EnumSet.of(MethodData.Context.ABSTRACT), 609 EnumSet.of(ClassData.Package.SAME, 610 ClassData.Package.DIFFERENT)), 611 Template.IfaceMethodrefNotEqualsExpected, 612 Template.ReabstractExpectedIface, 613 Template.CallsiteSubclassMethodref, 614 Template.IfaceMethodrefSelection), 615 /* Group 106: callsite unrelated to methodref, methodref = expected, 616 */ 617 new TestGroup.Simple(initBuilder, 618 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 619 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 620 EnumSet.of(MethodData.Access.PUBLIC), 621 EnumSet.of(MethodData.Context.ABSTRACT), 622 EnumSet.of(ClassData.Package.SAME, 623 ClassData.Package.DIFFERENT)), 624 Template.MethodrefEqualsExpected, 625 Template.ReabstractExpectedIface, 626 Template.CallsiteUnrelatedToMethodref, 627 Template.IfaceMethodrefSelection), 628 /* Group 107: callsite unrelated to methodref, methodref != expected, 629 */ 630 new TestGroup.Simple(initBuilder, 631 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 632 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 633 EnumSet.of(MethodData.Access.PUBLIC), 634 EnumSet.of(MethodData.Context.ABSTRACT), 635 EnumSet.of(ClassData.Package.SAME, 636 ClassData.Package.DIFFERENT)), 637 Template.IfaceMethodrefNotEqualsExpected, 638 Template.ReabstractExpectedIface, 639 Template.CallsiteUnrelatedToMethodref, 640 Template.IfaceMethodrefSelection), 641 642 /* Reabstraction during selection */ 643 /* Group 108: callsite = methodref = expected */ 644 new TestGroup.Simple(initBuilder, 645 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 646 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 647 EnumSet.of(MethodData.Access.PUBLIC), 648 EnumSet.of(MethodData.Context.INSTANCE), 649 EnumSet.of(ClassData.Package.SAME)), 650 Template.MethodrefEqualsExpected, 651 Template.CallsiteEqualsMethodref, 652 Template.ReabstractIfaceMethodrefResolved), 653 /* Group 109: callsite = methodref, methodref != expected, 654 */ 655 new TestGroup.Simple(initBuilder, 656 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 657 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 658 EnumSet.of(MethodData.Access.PUBLIC), 659 EnumSet.of(MethodData.Context.INSTANCE), 660 EnumSet.of(ClassData.Package.SAME, 661 ClassData.Package.DIFFERENT)), 662 Template.IfaceMethodrefNotEqualsExpected, 663 Template.CallsiteEqualsMethodref, 664 Template.ReabstractIfaceMethodrefResolved), 665 /* Group 110: callsite :> methodref, methodref = expected, 666 */ 667 new TestGroup.Simple(initBuilder, 668 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 669 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 670 EnumSet.of(MethodData.Access.PUBLIC), 671 EnumSet.of(MethodData.Context.INSTANCE), 672 EnumSet.of(ClassData.Package.SAME, 673 ClassData.Package.DIFFERENT)), 674 Template.MethodrefEqualsExpected, 675 Template.CallsiteSubclassMethodref, 676 Template.ReabstractIfaceMethodrefResolved), 677 /* Group 111: callsite :> methodref, methodref != expected, 678 */ 679 new TestGroup.Simple(initBuilder, 680 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 681 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 682 EnumSet.of(MethodData.Access.PUBLIC), 683 EnumSet.of(MethodData.Context.INSTANCE), 684 EnumSet.of(ClassData.Package.SAME, 685 ClassData.Package.DIFFERENT)), 686 Template.IfaceMethodrefNotEqualsExpected, 687 Template.CallsiteSubclassMethodref, 688 Template.ReabstractIfaceMethodrefResolved), 689 /* Group 112: callsite unrelated to methodref, methodref = expected, 690 */ 691 new TestGroup.Simple(initBuilder, 692 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 693 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 694 EnumSet.of(MethodData.Access.PUBLIC), 695 EnumSet.of(MethodData.Context.INSTANCE), 696 EnumSet.of(ClassData.Package.SAME, 697 ClassData.Package.DIFFERENT)), 698 Template.MethodrefEqualsExpected, 699 Template.CallsiteUnrelatedToMethodref, 700 Template.ReabstractIfaceMethodrefResolved), 701 /* Group 113: callsite unrelated to methodref, methodref != expected, 702 */ 703 new TestGroup.Simple(initBuilder, 704 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKEINTERFACE), 705 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 706 EnumSet.of(MethodData.Access.PUBLIC), 707 EnumSet.of(MethodData.Context.INSTANCE), 708 EnumSet.of(ClassData.Package.SAME, 709 ClassData.Package.DIFFERENT)), 710 Template.IfaceMethodrefNotEqualsExpected, 711 Template.CallsiteUnrelatedToMethodref, 712 Template.ReabstractIfaceMethodrefResolved), 713 714 /* invokespecial tests */ 715 /* Group 114: callsite = methodref = expected */ 716 new TestGroup.Simple(initBuilder, 717 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 718 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 719 EnumSet.of(MethodData.Access.PUBLIC, 720 MethodData.Access.PACKAGE, 721 MethodData.Access.PROTECTED, 722 MethodData.Access.PRIVATE), 723 EnumSet.of(MethodData.Context.ABSTRACT), 724 EnumSet.of(ClassData.Package.SAME)), 725 Template.MethodrefEqualsExpected, 726 Template.ReabstractExpectedClass, 727 Template.CallsiteEqualsMethodref, 728 Template.ObjectrefExactSubclassOfCallsite), 729 /* Group 115: callsite = methodref, methodref != expected, 730 * expected is class, expected and callsite in the same package 731 */ 732 new TestGroup.Simple(initBuilder, 733 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 734 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 735 EnumSet.of(MethodData.Access.PUBLIC, 736 MethodData.Access.PACKAGE, 737 MethodData.Access.PROTECTED), 738 EnumSet.of(MethodData.Context.ABSTRACT), 739 EnumSet.of(ClassData.Package.SAME)), 740 Template.MethodrefNotEqualsExpectedClass, 741 Template.ReabstractExpectedClass, 742 Template.CallsiteEqualsMethodref, 743 Template.ObjectrefExactSubclassOfCallsite), 744 /* Group 116: callsite = methodref, methodref != expected, 745 * expected is interface, expected and callsite in the same package 746 */ 747 new TestGroup.Simple(initBuilder, 748 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 749 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 750 EnumSet.of(MethodData.Access.PUBLIC), 751 EnumSet.of(MethodData.Context.ABSTRACT), 752 EnumSet.of(ClassData.Package.SAME)), 753 Template.MethodrefNotEqualsExpectedIface, 754 Template.ReabstractExpectedIface, 755 Template.CallsiteEqualsMethodref, 756 Template.ObjectrefExactSubclassOfCallsite), 757 /* Group 117: callsite :> methodref, methodref = expected, 758 * expected is class, expected and callsite in the same package 759 */ 760 new TestGroup.Simple(initBuilder, 761 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 762 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 763 EnumSet.of(MethodData.Access.PUBLIC, 764 MethodData.Access.PACKAGE, 765 MethodData.Access.PROTECTED), 766 EnumSet.of(MethodData.Context.ABSTRACT), 767 EnumSet.of(ClassData.Package.SAME)), 768 Template.MethodrefEqualsExpected, 769 Template.ReabstractExpectedClass, 770 Template.CallsiteSubclassMethodref, 771 Template.ObjectrefExactSubclassOfCallsite), 772 /* Group 118: callsite :> methodref, methodref != expected, 773 * expected is class, expected and callsite in the same package 774 */ 775 new TestGroup.Simple(initBuilder, 776 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 777 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 778 EnumSet.of(MethodData.Access.PUBLIC, 779 MethodData.Access.PACKAGE, 780 MethodData.Access.PROTECTED), 781 EnumSet.of(MethodData.Context.ABSTRACT), 782 EnumSet.of(ClassData.Package.SAME)), 783 Template.MethodrefNotEqualsExpectedClass, 784 Template.ReabstractExpectedClass, 785 Template.CallsiteSubclassMethodref, 786 Template.ObjectrefExactSubclassOfCallsite), 787 /* Group 119: callsite :> methodref, methodref != expected, 788 * expected is interface, expected and callsite in the same package 789 */ 790 new TestGroup.Simple(initBuilder, 791 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 792 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 793 EnumSet.of(MethodData.Access.PUBLIC), 794 EnumSet.of(MethodData.Context.ABSTRACT), 795 EnumSet.of(ClassData.Package.SAME)), 796 Template.MethodrefNotEqualsExpectedIface, 797 Template.ReabstractExpectedIface, 798 Template.CallsiteSubclassMethodref, 799 Template.ObjectrefExactSubclassOfCallsite), 800 /* Group 120: callsite = methodref, methodref != expected, 801 * expected is class, expected and callsite not in the same package 802 */ 803 new TestGroup.Simple(initBuilder, 804 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 805 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 806 EnumSet.of(MethodData.Access.PUBLIC), 807 EnumSet.of(MethodData.Context.ABSTRACT), 808 EnumSet.of(ClassData.Package.DIFFERENT)), 809 Template.MethodrefNotEqualsExpectedClass, 810 Template.ReabstractExpectedClass, 811 Template.CallsiteEqualsMethodref, 812 Template.ObjectrefExactSubclassOfCallsite), 813 /* Group 121: callsite = methodref, methodref != expected, 814 * expected is interface, expected and callsite not in the same package 815 */ 816 new TestGroup.Simple(initBuilder, 817 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 818 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 819 EnumSet.of(MethodData.Access.PUBLIC), 820 EnumSet.of(MethodData.Context.ABSTRACT), 821 EnumSet.of(ClassData.Package.DIFFERENT)), 822 Template.MethodrefNotEqualsExpectedIface, 823 Template.ReabstractExpectedIface, 824 Template.CallsiteEqualsMethodref, 825 Template.ObjectrefExactSubclassOfCallsite), 826 /* Group 122: callsite :> methodref, methodref = expected, 827 * expected is class, expected and callsite not in the same package 828 */ 829 new TestGroup.Simple(initBuilder, 830 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 831 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 832 EnumSet.of(MethodData.Access.PUBLIC), 833 EnumSet.of(MethodData.Context.ABSTRACT), 834 EnumSet.of(ClassData.Package.DIFFERENT)), 835 Template.MethodrefEqualsExpected, 836 Template.ReabstractExpectedClass, 837 Template.CallsiteSubclassMethodref, 838 Template.ObjectrefExactSubclassOfCallsite), 839 840 /* Group 123: callsite :> methodref, methodref != expected, 841 * expected is class, expected and callsite not in the same package 842 */ 843 new TestGroup.Simple(initBuilder, 844 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 845 Template.ResultCombo(EnumSet.of(Template.Kind.CLASS), 846 EnumSet.of(MethodData.Access.PUBLIC), 847 EnumSet.of(MethodData.Context.ABSTRACT), 848 EnumSet.of(ClassData.Package.DIFFERENT)), 849 Template.MethodrefNotEqualsExpectedClass, 850 Template.ReabstractExpectedClass, 851 Template.CallsiteSubclassMethodref, 852 Template.ObjectrefExactSubclassOfCallsite), 853 /* Group 124: callsite :> methodref, methodref != expected, 854 * expected is interface, expected and callsite not in the same package 855 */ 856 new TestGroup.Simple(initBuilder, 857 Template.SetInvoke(SelectionResolutionTestCase.InvokeInstruction.INVOKESPECIAL), 858 Template.ResultCombo(EnumSet.of(Template.Kind.INTERFACE), 859 EnumSet.of(MethodData.Access.PUBLIC), 860 EnumSet.of(MethodData.Context.ABSTRACT), 861 EnumSet.of(ClassData.Package.DIFFERENT)), 862 Template.MethodrefNotEqualsExpectedIface, 863 Template.ReabstractExpectedIface, 864 Template.CallsiteSubclassMethodref, 865 Template.ObjectrefExactSubclassOfCallsite) 866 ); 867 868 private AbstractMethodErrorTest() { 869 super(testgroups); 870 } 871 872 public static void main(final String... args) { 873 new AbstractMethodErrorTest().run(); 874 } 875 }