You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Ajc192Tests.java 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /*******************************************************************************
  2. * Copyright (c) 2018 Contributors
  3. * All rights reserved. This program and the accompanying materials
  4. * are made available under the terms of the Eclipse Public License v1.0
  5. * which accompanies this distribution, and is available at
  6. * http://www.eclipse.org/legal/epl-v10.html
  7. *
  8. * Contributors:
  9. * Andy Clement - initial API and implementation
  10. *******************************************************************************/
  11. package org.aspectj.systemtest.ajc192;
  12. import org.aspectj.apache.bcel.classfile.JavaClass;
  13. import org.aspectj.apache.bcel.classfile.NestHost;
  14. import org.aspectj.apache.bcel.classfile.NestMembers;
  15. import org.aspectj.testing.XMLBasedAjcTestCase;
  16. import junit.framework.Test;
  17. /**
  18. * @author Andy Clement
  19. */
  20. public class Ajc192Tests extends XMLBasedAjcTestCase {
  21. public void testITDLambdas() throws Exception {
  22. runTest("itd lambdas");
  23. }
  24. public void test11Flags() throws Exception {
  25. runTest("11flags");
  26. }
  27. public void testNestmates() throws Exception {
  28. runTest("nestmates");
  29. JavaClass outer = getClassFrom(ajc.getSandboxDirectory(), "Outer");
  30. JavaClass inner = getClassFrom(ajc.getSandboxDirectory(), "Outer$Inner");
  31. NestMembers nestMembers = (NestMembers) getAttributeStartsWith(outer.getAttributes(),"NestMembers");
  32. assertEquals(1,nestMembers.getClasses().length);
  33. assertEquals("Outer$Inner",nestMembers.getClassesNames()[0]);
  34. NestHost nestHost = (NestHost) getAttributeStartsWith(inner.getAttributes(),"NestHost");
  35. assertEquals("Outer",nestHost.getHostClassName());
  36. }
  37. // Verifying not destroyed on weaving
  38. public void testNestmates2() throws Exception {
  39. runTest("nestmates 2");
  40. JavaClass outer = getClassFrom(ajc.getSandboxDirectory(), "Outer2");
  41. JavaClass inner = getClassFrom(ajc.getSandboxDirectory(), "Outer2$Inner2");
  42. NestMembers nestMembers = (NestMembers) getAttributeStartsWith(outer.getAttributes(),"NestMembers");
  43. assertEquals(1,nestMembers.getClasses().length);
  44. assertEquals("Outer2$Inner2",nestMembers.getClassesNames()[0]);
  45. NestHost nestHost = (NestHost) getAttributeStartsWith(inner.getAttributes(),"NestHost");
  46. assertEquals("Outer2",nestHost.getHostClassName());
  47. }
  48. public void testCflowFinal() {
  49. runTest("no final on cflow elements");
  50. }
  51. // TODO Still to be fixed, the workaround to not mix style is good enough for now...
  52. public void xtestAroundAdvice_AnnoStyle() {
  53. runTest("around advice");
  54. }
  55. public void testAroundAdvice_CodeStyle() {
  56. runTest("around advice - 2");
  57. }
  58. public void testPTW_nonPrivileged() {
  59. runTest("ptw");
  60. }
  61. public void testPTW_nonPrivilegedSamePackage() {
  62. runTest("ptw - same package");
  63. }
  64. public void testPTW_privileged() {
  65. runTest("ptw - privileged");
  66. }
  67. public void testPTWW_privilegedSamePackage() {
  68. runTest("ptw - privileged same package");
  69. }
  70. // ---
  71. public static Test suite() {
  72. return XMLBasedAjcTestCase.loadSuite(Ajc192Tests.class);
  73. }
  74. @Override
  75. protected java.net.URL getSpecFile() {
  76. return getClassResource("ajc192.xml");
  77. }
  78. }