Package measurements.suites

Source Code of measurements.suites.ProceedMeasurements1_micro

// $Id: ProceedMeasurements1_micro.java,v 1.1 2008/11/18 10:43:23 anicoara Exp $
// ===============================================================

package measurements.suites;

import junit.framework.Test;
import junit.framework.Assert;
import ch.ethz.inf.util.junit.PerformanceTest;
import ch.ethz.inf.util.junit.PerformanceTestSuite;
import ch.ethz.prose.ProseSystem;
import ch.ethz.prose.DefaultAspect;
import ch.ethz.prose.Aspect;
import ch.ethz.prose.crosscut.Crosscut;
import ch.ethz.prose.crosscut.MethodCut;
import ch.ethz.prose.crosscut.MethodRedefineCut;
import ch.ethz.prose.crosscut.REST;
import ch.ethz.prose.filter.PointCutter;
import ch.ethz.prose.filter.Executions;
import ch.ethz.prose.filter.Within;
import ch.ethz.jvmai.MethodEntryJoinPoint;
import ch.ethz.jvmai.MethodExitJoinPoint;
//import ch.ethz.prose.jikesrvm.JikesRVMPerformanceTest;


/**
* JoinPoint micro-measurements.
*
* Performance micro-measurements tests for method boundaries,
* fields accesses and modifications, exception handlers:
*
* 1) INVOKEVIRTUAL -> invoke a normal method
* 2) SYNC INVOKEVIRTUAL -> invoke a normal but synchronized method
* 3) INVOKEINTERFACE -> invoke a method through an interface
* 4) INVOKESPECIAL -> invoke a private method
* 5) INVOKESTATIC -> invoke a static method
*
* Each test is executed "RUNS" times.
*
* @author Angela Nicoara
*/
public class ProceedMeasurements1_micro extends PerformanceTest {
//public class ProceedMeasurements1_micro extends JikesRVMPerformanceTest {

  public boolean useProse = false;
  public boolean checkAssert = true;

  public static int counter=0;
  public static int x = 0;

  // INVOKEVIRTUAL
  public void localMethod() { x = 1; }
  public void localMethodLongO(Object ob1, Object ob2) { x = 1; }
  public void localMethodLongI(int ob1, int ob2) { x = 1; }
  public void localMethodLongL(long ob1, long ob2) { x = 1; }
  public void localMethodLongD(double ob1, double ob2) { x = 1; }

  // INVOKESPECIAL
  private void privatelocalMethod() { x = 1; }
  private void privatelocalMethodLongO(Object ob1, Object ob2) { x = 1; }
  private void privatelocalMethodLongI(int ob1, int ob2) { x = 1; }
  private void privatelocalMethodLongL(long ob1, long ob2) { x = 1; }
  private void privatelocalMethodLongD(double ob1, double ob2) { x = 1; }

  // INVOKEINTERFACE
  protected JoinPointTestInterface obInterface = new JoinPointTestClass();

  // SYNC INVOKEVIRTUAL
  protected JoinPointTestClass obSync = new JoinPointTestClass();


  //===============================================================

  //  ======= NO proceed() =======

  // METHOD REDEFINITION - no proceed()
  public class MethodRedefineAspect_noProceed_1 extends DefaultAspect {

    public Crosscut c1 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(ProceedMeasurements1_micro target, REST args)  {
        counter++;
        //target.field = 10;  //DELETE
      }

      protected PointCutter pointCutter() {
        //return ( (Within.method("^localMethod.*")) .OR (Within.method("^privatelocalMethod.*")) );  //DELETE
        return (  ( (Within.method("^localMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) ) .OR
            ( (Within.method("^privatelocalMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) )
        );

      }
    };
  }

  // METHOD REDEFINITION - no proceed()
  public class MethodRedefineAspect_noProceed_2 extends DefaultAspect {

    public Crosscut c2 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(JoinPointTestClass target, REST args)  {
        counter++;
        //target.field = 10;  //DELETE
      }

      protected PointCutter pointCutter() {
        //return ( ( (Within.method("^interfaceMethod.*")) .OR (Within.method("^syncMethod.*")) ) .OR (Within.method("^staticMethod.*")) );  //DELETE
        return (  ( (Within.method("^interfaceMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^syncMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^staticMethod.*")) .AND (Within.type("JoinPointTestClass")) )
        );
      }
    };
  }

  //  ======= ONE proceed() =======

  // METHOD REDEFINITION - one proceed()
  public class MethodRedefineAspect_oneProceed_1 extends DefaultAspect {

    public Crosscut c3 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(ProceedMeasurements1_micro target, REST args)  {
        counter++;
        //target.field = 20;
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( (Within.method("^localMethod.*")) .OR (Within.method("^privatelocalMethod.*")) );  //DELETE
        return (  ( (Within.method("^localMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) ) . OR
            ( (Within.method("^privatelocalMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) )
        );
      }
    };
  }

  // METHOD REDEFINITION - one proceed()
  public class MethodRedefineAspect_oneProceed_2 extends DefaultAspect {

    public Crosscut c4 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(JoinPointTestClass target, REST args)  {
        counter++;
        //target.field = 20;
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( ( (Within.method("^interfaceMethod.*")) .OR (Within.method("^syncMethod.*")) ) .OR (Within.method("^staticMethod.*")) );  //DELETE
        return (  ( (Within.method("^interfaceMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^syncMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^staticMethod.*")) .AND (Within.type("JoinPointTestClass")) )
        );

      }
    };
  }

  //  ======= TWO proceed() =======

  // METHOD REDEFINITION - two proceed()
  public class MethodRedefineAspect_twoProceed_1 extends DefaultAspect {

    public Crosscut c5 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(ProceedMeasurements1_micro target, REST args)  {
        counter++;
        //target.field = 30;
        proceed();
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( (Within.method("^localMethod.*")) .OR (Within.method("^privatelocalMethod.*")) );  //DELETE
        return (  ( (Within.method("^localMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) ) .OR
            ( (Within.method("^privatelocalMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) )
        );
      }
    };
  }

  // METHOD REDEFINITION - two proceed()
  public class MethodRedefineAspect_twoProceed_2 extends DefaultAspect {

    public Crosscut c6 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(JoinPointTestClass target, REST args)  {
        counter++;
        //target.field = 30;
        proceed();
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( ( (Within.method("^interfaceMethod.*")) .OR (Within.method("^syncMethod.*")) ) .OR (Within.method("^staticMethod.*")) );  //DELETE
        return (  ( (Within.method("^interfaceMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^syncMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^staticMethod.*")) .AND (Within.type("JoinPointTestClass")) )
        );
      }
    };
  }

  //  ======= THREE proceed() =======

  // METHOD REDEFINITION - three proceed()
  public class MethodRedefineAspect_threeProceed_1 extends DefaultAspect {

    public Crosscut c7 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(ProceedMeasurements1_micro target, REST args)  {
        counter++;
        //target.field = 40;
        proceed();
        proceed();
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( (Within.method("^localMethod.*")) .OR (Within.method("^privatelocalMethod.*")) );   //DELETE     
        return (  ( (Within.method("^localMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) ) .OR
            ( (Within.method("^privatelocalMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) )
        );
      }
    };
  }

  // METHOD REDEFINITION - three proceed()
  public class MethodRedefineAspect_threeProceed_2 extends DefaultAspect {

    public Crosscut c8 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(JoinPointTestClass target, REST args)  {
        counter++;
        //target.field = 40;
        proceed();
        proceed();
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( ( (Within.method("^interfaceMethod.*")) .OR (Within.method("^syncMethod.*")) ) .OR (Within.method("^staticMethod.*")) );  //DELETE
        return (  ( (Within.method("^interfaceMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^syncMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^staticMethod.*")) .AND (Within.type("JoinPointTestClass")) )
        );
      }
    };
  }

  //  ======= FOUR proceed() ======= 

  // METHOD REDEFINITION - four proceed()
  public class MethodRedefineAspect_fourProceed_1 extends DefaultAspect {

    public Crosscut c9 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(ProceedMeasurements1_micro target, REST args)  {
        counter++;
        //target.field = 50;
        proceed();
        proceed();
        proceed();
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( (Within.method("^localMethod.*")) .OR (Within.method("^privatelocalMethod.*")) );  //DELETE     
        return (  ( (Within.method("^localMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) ) .OR
            ( (Within.method("^privatelocalMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) )
        );
      }
    };
  }

  // METHOD REDEFINITION - four proceed()
  public class MethodRedefineAspect_fourProceed_2 extends DefaultAspect {

    public Crosscut c10 = new MethodRedefineCut() {
      // the new method code
      public void METHOD_ARGS(JoinPointTestClass target, REST args)  {
        counter++;
        //target.field = 50;
        proceed();
        proceed();
        proceed();
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( ( (Within.method("^interfaceMethod.*")) .OR (Within.method("^syncMethod.*")) ) .OR (Within.method("^staticMethod.*")) );  //DELETE
        return (  ( (Within.method("^interfaceMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^syncMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^staticMethod.*")) .AND (Within.type("JoinPointTestClass")) )
        );
      }
    };
  }

  //  ======= FIVE proceed() ======= 

  // METHOD REDEFINITION - five proceed()
  public class MethodRedefineAspect_fiveProceed_1 extends DefaultAspect {

    public Crosscut c11 = new MethodRedefineCut() {
      // the  new method code
      public void METHOD_ARGS(ProceedMeasurements1_micro target, REST args)  {
        counter++;
        //target.field = 60;
        proceed();
        proceed();
        proceed();
        proceed();
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( (Within.method("^localMethod.*")) .OR (Within.method("^privatelocalMethod.*")) );   //DELETE     
        return (  ( (Within.method("^localMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) ) .OR
            ( (Within.method("^privatelocalMethod.*")) .AND (Within.type("ProceedMeasurements1_micro")) )
        );
      }
    };
  }

  // METHOD REDEFINITION - five proceed()
  public class MethodRedefineAspect_fiveProceed_2 extends DefaultAspect {

    public Crosscut c12 = new MethodRedefineCut() {
      // the  new method code
      public void METHOD_ARGS(JoinPointTestClass target, REST args)  {
        counter++;
        //target.field = 60;
        proceed();
        proceed();
        proceed();
        proceed();
        proceed();
      }

      protected PointCutter pointCutter() {
        //return ( ( (Within.method("^interfaceMethod.*")) .OR (Within.method("^syncMethod.*")) ) .OR (Within.method("^staticMethod.*")) );  //DELETE
        return (  ( (Within.method("^interfaceMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^syncMethod.*")) .AND (Within.type("JoinPointTestClass")) ) .OR
            ( (Within.method("^staticMethod.*")) .AND (Within.type("JoinPointTestClass")) )
        );
      }
    };
  }


  //===============================================================

  /* 
  // METHOD ENTRY 1
  public class MethodEntryAspect_1 extends DefaultAspect {
 
    public Crosscut c1 = new MethodCut() {
      // execute the advice 'before' the methods '^localMethod.*' and '^privatelocalMethod.*'
      public void METHOD_ARGS(ProceedMeasurements1_micro target, REST args) {
        counter++;
      }

      // .. && calls('^localMethod.*' and '^privatelocalMethod.*')
      protected PointCutter pointCutter() {   
        return (  (Executions.before()) . AND
                   (
                  ( (Within.method("^localMethod.*")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
                  ( (Within.method("^privatelocalMethod.*")) . AND (Within.type("ProceedMeasurements1_micro")) )

//                  ( (Within.method("localMethod")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("localMethodLongO")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("localMethodLongI")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("localMethodLongL")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("localMethodLongD")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethod")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethodLongO")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethodLongI")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethodLongL")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethodLongD")) . AND (Within.type("ProceedMeasurements1_micro")) )

                   )
        );
      }
    };
  }
   */
  /*
  // METHOD EXIT 1
  public class MethodExitAspect_1 extends DefaultAspect {
 
    public Crosscut c2 = new MethodCut() {
      // execute the advice 'after' the method '^localMethod.*' and  '^privatelocalMethod.*'
      public void METHOD_ARGS(ProceedMeasurements1_micro target, REST args) {
        counter++;
      }

      // .. && calls('^localMethod.*' and '^privatelocalMethod.*')
      protected PointCutter pointCutter() {
        return (  (Executions.after()) . AND
                 (
                  ( (Within.method("^localMethod.*")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
                  ( (Within.method("^privatelocalMethod.*")) . AND (Within.type("ProceedMeasurements1_micro")) )

//                  ( (Within.method("localMethod")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("localMethodLongO")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("localMethodLongI")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("localMethodLongL")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("localMethodLongD")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethod")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethodLongO")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethodLongI")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethodLongL")) . AND (Within.type("ProceedMeasurements1_micro")) ) . OR
//                  ( (Within.method("privatelocalMethodLongD")) . AND (Within.type("ProceedMeasurements1_micro")) )

                 )
        );
      }
    };
  }
   */

  /* 
  // METHOD ENTRY 2
  public class MethodEntryAspect_2 extends DefaultAspect {
 
    public Crosscut c3 = new MethodCut() {
      // execute the advice 'before' the methods '^interfaceMethod.*' and  '^syncMethod.*' and '^staticMethod.*'
      public void METHOD_ARGS(JoinPointTestClass target, REST args) {
        counter++;
      }

      // .. && calls('^interfaceMethod.*' and '^syncMethod.*' and '^staticMethod.*')
      protected PointCutter pointCutter() {   
        return (  (Executions.before()) . AND
              (
                ( (Within.method("^interfaceMethod.*")) . AND (Within.type("JoinPointTestClass")) ) . OR
                ( (Within.method("^syncMethod.*")) . AND (Within.type("JoinPointTestClass")) ) . OR
                ( (Within.method("^staticMethod.*")) . AND (Within.type("JoinPointTestClass")) )
              )
        );
      }
    };
  }
   */

  /*
  // METHOD EXIT 2
  public class MethodExitAspect_2 extends DefaultAspect {
 
    public Crosscut c4 = new MethodCut() {
      // execute the advice 'after' the methods '^interfaceMethod.*' and  '^syncMethod.*' and '^staticMethod.*'
      public void METHOD_ARGS(JoinPointTestClass target, REST args) {
        counter++;
      }

      // .. && calls('^interfaceMethod.*' and '^syncMethod.*' and '^staticMethod.*')
      protected PointCutter pointCutter() {
        return (  (Executions.after()) . AND
              (
                ( (Within.method("^interfaceMethod.*")) . AND (Within.type("JoinPointTestClass")) ) . OR
                ( (Within.method("^syncMethod.*")) . AND (Within.type("JoinPointTestClass")) ) . OR
                ( (Within.method("^staticMethod.*")) . AND (Within.type("JoinPointTestClass")) )
              )
        );
      }
    };
  }
   */

  /*
  Aspect aspect1;  // METHOD ENTRY 1
  Aspect aspect2;  // METHOD EXIT 1
  Aspect aspect3;  // METHOD ENTRY 2
  Aspect aspect4;  // METHOD EXIT 2
   */

  Aspect asp_noProceed_1;     // METHOD REDEFINITION - noProceed 1
  Aspect asp_noProceed_2;     // METHOD REDEFINITION - noProceed 2
  Aspect asp_oneProceed_1;    // METHOD REDEFINITION - oneProceed 1
  Aspect asp_oneProceed_2;    // METHOD REDEFINITION - oneProceed 2
  Aspect asp_twoProceed_1;    // METHOD REDEFINITION - twoProceed 1
  Aspect asp_twoProceed_2;    // METHOD REDEFINITION - twoProceed 2
  Aspect asp_threeProceed_1;  // METHOD REDEFINITION - threeProceed 1
  Aspect asp_threeProceed_2;  // METHOD REDEFINITION - threeProceed 2
  Aspect asp_fourProceed_1;    // METHOD REDEFINITION - fourProceed 1
  Aspect asp_fourProceed_2;    // METHOD REDEFINITION - fourProceed 2
  Aspect asp_fiveProceed_1;    // METHOD REDEFINITION - fiveProceed 1
  Aspect asp_fiveProceed_2;    // METHOD REDEFINITION - fiveProceed 2


  public ProceedMeasurements1_micro(String name) {
    super(name);
    //RANGE = new int[] { 100000000 };
    //RANGE = new int[] { 1000000 };
    RANGE = new int[] { 1, 100000 };
    //RANGE = new int[] { 1 };

    String proseParam = System.getProperty("useprose");
    if (proseParam != null) useProse = true;
  }

  protected void setUp() throws Exception {
    if (!useProse) return;

    try {
      ProseSystem.startup();
    } catch (Exception e) {
      Assert.fail("ProseSystem.startup() failed");
    }
    /*     
      aspect1 = new MethodEntryAspect_1();
      aspect2 = new MethodExitAspect_1();
      aspect3 = new MethodEntryAspect_2();
      aspect4 = new MethodExitAspect_2();
     */   

    asp_noProceed_1 = new MethodRedefineAspect_noProceed_1();     // METHOD REDEFINITION - noProceed 1
    asp_noProceed_2 = new MethodRedefineAspect_noProceed_2();     // METHOD REDEFINITION - noProceed 2
    asp_oneProceed_1 = new MethodRedefineAspect_oneProceed_1();    // METHOD REDEFINITION - oneProceed 1
    asp_oneProceed_2 = new MethodRedefineAspect_oneProceed_2();    // METHOD REDEFINITION - oneProceed 2
    asp_twoProceed_1 = new MethodRedefineAspect_twoProceed_1();    // METHOD REDEFINITION - twoProceed 1
    asp_twoProceed_2 = new MethodRedefineAspect_twoProceed_2();    // METHOD REDEFINITION - twoProceed 2
    asp_threeProceed_1 = new MethodRedefineAspect_threeProceed_1()// METHOD REDEFINITION - threeProceed 1
    asp_threeProceed_2 = new MethodRedefineAspect_threeProceed_2()// METHOD REDEFINITION - threeProceed 2
    asp_fourProceed_1 = new MethodRedefineAspect_fourProceed_1();    // METHOD REDEFINITION - fourProceed 1
    asp_fourProceed_2 = new MethodRedefineAspect_fourProceed_2();    // METHOD REDEFINITION - fourProceed 2
    asp_fiveProceed_1 = new MethodRedefineAspect_fiveProceed_1();    // METHOD REDEFINITION - fiveProceed 1
    asp_fiveProceed_2 = new MethodRedefineAspect_fiveProceed_2();    // METHOD REDEFINITION - fiveProceed 2

    counter = 0;
    x = 0;
  }

  protected void tearDown() {
    if (!useProse) return;

    try {
      ProseSystem.teardown();
    } catch (Exception e) {
      Assert.fail("ProseSystem.teardown() failed");
    }
  }

  //=====================================================
  /*   
    // 1) INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testVirtualMethod_no_jp_NoArg() {
      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethod();
      stopChronometer();
    }
   */   
  /*
    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodEntry_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethod();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodExit_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethod();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_noProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_oneProceed_NoArg() {

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_twoProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_threeProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fourProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fiveProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) SYNC INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testSyncVirtualMethod_no_jp_NoArg() {
      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
      stopChronometer();
    }
   */
  /*
    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodEntry_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodExit_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_noProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_oneProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_twoProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_threeProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fourProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fiveProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKEINTERFACE - no call to weaver because the joinpoint isn't activated
    public void testInterfaceMethod_no_jp_NoArg() {
      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodEntry_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodExit_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_noProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_oneProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_twoProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_threeProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fourProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fiveProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESTATIC - no call to weaver because the joinpoint isn't activated
    public void testStaticMethod_no_jp_NoArg() {
      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodEntry_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodExit_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_noProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_oneProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_twoProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_threeProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fourProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fiveProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodShort();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESPECIAL - no call to weaver because the joinpoint isn't activated
    public void testSpecialMethod_no_jp_NoArg() {
      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethod();
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodEntry_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethod();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodExit_jp_activated_NoArg() {
      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethod();
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */
  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_noProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_oneProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_twoProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_threeProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fourProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fiveProceed_NoArg() {
    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethod();
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  //=====================================================
  //=====================================================
  //=====================================================
  //=====================================================

  // Method arguments: (Object, Object)
  //=====================================================
  /*   
    // 1) INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testVirtualMethod_LongO() {
      Object obj = new Object();
      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongO(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodEntry_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodExit_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_noProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_twoProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_threeProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fourProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fiveProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }


  //=====================================================
  /*   
    // 1) SYNC INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testSyncVirtualMethod_LongO() {
      Object obj = new Object();
      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodEntry_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodExit_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_noProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_oneProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_twoProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_threeProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fourProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fiveProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*  
    // 1) INVOKEINTERFACE - no call to weaver because the joinpoint isn't activated
    public void testInterfaceMethod_LongO() {
      Object obj = new Object();
      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodEntry_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodExit_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_noProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_oneProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_twoProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_threeProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fourProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fiveProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESTATIC - no call to weaver because the joinpoint isn't activated
    public void testStaticMethod_LongO() {
      Object obj = new Object();
      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodEntry_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodExit_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_noProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_oneProceed_LongO()  {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_twoProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_threeProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fourProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fiveProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESPECIAL - no call to weaver because the joinpoint isn't activated
    public void testSpecialMethod_LongO() {
      Object obj = new Object();
      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodEntry_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodExit_jp_activated_LongO() {
      Object obj = new Object();

      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_noProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_oneProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_twoProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_threeProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fourProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fiveProceed_LongO() {
    Object obj = new Object();

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongO(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  //=====================================================


  // Method arguments: (int, int)
  //=====================================================
  /*   
    // 1) INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testVirtualMethod_LongI() {
      int obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodEntry_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodExit_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */
  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_noProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_oneProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_twoProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_threeProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fourProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fiveProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }


  //=====================================================
  /*   
    // 1) SYNC INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testSyncVirtualMethod_LongI() {
      int obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodEntry_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodExit_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_noProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_oneProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_twoProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_threeProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fourProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fiveProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKEINTERFACE - no call to weaver because the joinpoint isn't activated
    public void testInterfaceMethod_LongI() {
      int obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodEntry_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodExit_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_noProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_oneProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_twoProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_threeProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fourProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fiveProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESTATIC - no call to weaver because the joinpoint isn't activated
    public void testStaticMethod_LongI() {
      int obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodEntry_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodExit_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_noProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_oneProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_twoProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_threeProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fourProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fiveProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESPECIAL - no call to weaver because the joinpoint isn't activated
    public void testSpecialMethod_LongI() {
      int obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodEntry_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodExit_jp_activated_LongI() {
      int obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */ 

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_noProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_oneProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_twoProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_threeProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fourProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fiveProceed_LongI() {
    int obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongI(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  //=====================================================   


  // Method arguments: (long, long)
  //=====================================================
  /*   
    // 1) INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testVirtualMethod_LongL() {
      long obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodEntry_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodExit_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */   

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_noProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_oneProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_twoProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_threeProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fourProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fiveProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) SYNC INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testSyncVirtualMethod_LongL() {
      long obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodEntry_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodExit_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_noProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_oneProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_twoProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_threeProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fourProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fiveProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKEINTERFACE - no call to weaver because the joinpoint isn't activated
    public void testInterfaceMethod_LongL() {
      long obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodEntry_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodExit_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_noProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_oneProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_twoProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_threeProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fourProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fiveProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESTATIC - no call to weaver because the joinpoint isn't activated
    public void testStaticMethod_LongL() {
      long obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodEntry_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodExit_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_noProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_oneProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_twoProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_threeProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fourProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fiveProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESPECIAL - no call to weaver because the joinpoint isn't activated
    public void testSpecialMethod_LongL() {
      long obj = 1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodEntry_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodExit_jp_activated_LongL() {
      long obj = 1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_noProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_oneProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_twoProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_threeProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fourProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fiveProceed_LongL() {
    long obj = 1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongL(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  //=====================================================   


  // Method arguments: (double, double)
  //=====================================================
  /*   
    // 1) INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testVirtualMethod_LongD() {
      double obj = 10.1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodEntry_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testVirtualMethodExit_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_noProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_oneProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_twoProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_threeProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fourProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testVirtualMethodRedefinition_fiveProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) localMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) SYNC INVOKEVIRTUAL - no call to weaver because the joinpoint isn't activated
    public void testSyncVirtualMethod_LongD() {
      double obj = 10.1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodEntry_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSyncVirtualMethodExit_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_noProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_oneProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_twoProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_threeProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fourProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) SYNC INVOKEVIRTUAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSyncVirtualMethodRedefinition_fiveProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obSync.syncMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKEINTERFACE - no call to weaver because the joinpoint isn't activated
    public void testInterfaceMethod_LongD() {
      double obj = 10.1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodEntry_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
    public void testInterfaceMethodExit_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_noProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_oneProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_twoProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_threeProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fourProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKEINTERFACE - call to empty weaver because of on active, unlocked joinpoint
  public void testInterfaceMethodRedefinition_fiveProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) obInterface.interfaceMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  /*   
    // 1) INVOKESTATIC - no call to weaver because the joinpoint isn't activated
    public void testStaticMethod_LongD() {
      double obj = 10.1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodEntry_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect3);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect3);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
    public void testStaticMethodExit_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect4);

      startChronometer();
      for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect4);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_noProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_oneProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_twoProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_threeProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fourProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESTATIC - call to empty weaver because of on active, unlocked joinpoint
  public void testStaticMethodRedefinition_fiveProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_2);

    startChronometer();
    for (int i = 0; i < RUNS; i++) JoinPointTestClass.staticMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_2);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }


  //=====================================================
  /*   
    // 1) INVOKESPECIAL - no call to weaver because the joinpoint isn't activated
    public void testSpecialMethod_LongD() {
      double obj = 10.1;
      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
      stopChronometer();
    }
   */
  /*
    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodEntry_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect1);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect1);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }

    // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
    public void testSpecialMethodExit_jp_activated_LongD() {
      double obj = 10.1;

      if (useProse) ProseSystem.getAspectManager().insert(aspect2);

      startChronometer();
      for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
      stopChronometer();

      if (useProse) ProseSystem.getAspectManager().withdraw(aspect2);

      if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
    }
   */

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_noProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_noProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_noProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_oneProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_oneProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_oneProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_twoProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_twoProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_twoProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_threeProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_threeProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_threeProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fourProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fourProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fourProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  // 3) INVOKESPECIAL - call to empty weaver because of on active, unlocked joinpoint
  public void testSpecialMethodRedefinition_fiveProceed_LongD() {
    double obj = 10.1;

    if (useProse) ProseSystem.getAspectManager().insert(asp_fiveProceed_1);

    startChronometer();
    for (int i = 0; i < RUNS; i++) privatelocalMethodLongD(obj, obj);
    stopChronometer();

    if (useProse) ProseSystem.getAspectManager().withdraw(asp_fiveProceed_1);

    if (checkAssert) assertEquals("Hook notifications", RUNS, counter);
  }

  //=====================================================
  //=====================================================   

  public static Test suite() {
    return new PerformanceTestSuite(ProceedMeasurements1_micro.class);
  }

}
TOP

Related Classes of measurements.suites.ProceedMeasurements1_micro

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.