User: starksm 
  Date: 01/07/17 20:26:27

  Modified:    src/main/org/jboss/test/lock/test Tag: Branch_2_2 Main.java
  Added:       src/main/org/jboss/test/lock/test Tag: Branch_2_2
                        EnterpriseEntityTest.java TestSpin.java
  Log:
  Update the lock contention tests
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.3.4.1   +56 -165   jbosstest/src/main/org/jboss/test/lock/test/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosstest/src/main/org/jboss/test/lock/test/Main.java,v
  retrieving revision 1.3
  retrieving revision 1.3.4.1
  diff -u -r1.3 -r1.3.4.1
  --- Main.java 2001/04/18 19:48:28     1.3
  +++ Main.java 2001/07/18 03:26:27     1.3.4.1
  @@ -1,171 +1,62 @@
   package org.jboss.test.lock.test;
   
  -import java.rmi.*;
  +import junit.extensions.TestSetup;
  +import junit.framework.Test;
  +import junit.framework.TestCase;
  +import junit.framework.TestSuite;
   
  -import java.util.HashMap;
  -import java.util.StringTokenizer;
  +import org.jboss.test.util.Deploy;
   
  -import javax.naming.Context;
  -import javax.naming.InitialContext;
  -
  -import javax.ejb.FinderException;
  -
  -import org.jboss.test.lock.interfaces.EnterpriseEntityHome;
  -import org.jboss.test.lock.interfaces.EnterpriseEntity;
  -
  -
  -public class Main extends junit.framework.TestCase
  +public class Main extends TestCase
   {
  -     
  -     boolean deployed = false;
  -     int nbThreads;
  -     int iterations;
  -     boolean b2b;
  -    boolean nodeploy;
  -     
  -     HashMap param = new HashMap();
  -     EnterpriseEntity entity;
  -     
  -     public static void main(String arg[]) throws Exception {
  -             Main main = new Main(arg);
  -             
  -             main.testLock();
  -     }
  -
  -     public Main(String arg[]) {
  -             super("main");
  -             // scanning parameters
  -             int i = 0;
  -             while (i < arg.length) {
  -                     StringTokenizer st = new StringTokenizer (arg[i++], "=");
  -                     param.put (st.nextToken (),     st.hasMoreTokens () ? 
st.nextToken () : "");
  -             }
  -             if (param.containsKey("help") || param.containsKey("-help")) {
  -                     System.out.println("Valid Parameters:");
  -                     System.out.println("  threads=<t>     run <t> threads 
concurrently (default 2)");
  -                     System.out.println("  iterations=<n>  each thread will perform 
<n> calls (default 10)");
  -                     System.out.println("  b2b             use bean to bean calls 
(default: single bean call)");
  -                     System.out.println();
  -                     System.exit(0);
  -             }
  -     }
  -
  -    public Main(String name)
  -    {
  -        super(name);
  -    }
  -
  -    protected void setUp() throws Exception
  -    {
  -        init();       // get params
  -        if( nodeploy == false )
  -            deploy();     // deploy the bean
  -    }
  -
  -    public void testLock() throws Exception
  -    {                
  -        Context ctx = new InitialContext();
  -        EnterpriseEntityHome home = 
(EnterpriseEntityHome)ctx.lookup("EnterpriseEntity");
  -                     
  -        try {
  -            entity = home.findByPrimaryKey("seb");
  -        } catch (FinderException e) {
  -            entity = home.create("seb");
  -        }
  -                     
  -        if (b2b) entity.setNextEntity("daniel");
  -                     
  -        Worker[] threads = new Worker[nbThreads];
  -                     
  -        System.out.println("Spawning " + nbThreads + " threads for " + 
  -                iterations + " iterations" + 
  -                (b2b ? " with bean to bean call" : " with single bean call")); 
  -                     
  -        for (int i=0; i<nbThreads; i++) {
  -            threads[i] = new Worker("thread no " + (i+1));
  -            threads[i].start();
  -        }
  -                     
  -        for (int i=0; i<nbThreads; i++) threads[i].join();   
  -    }
  -
  -     
  -     private void init() {
  -             nbThreads = 2;
  -             try {
  -                     nbThreads = Integer.parseInt((String)param.get("threads"));
  -             } catch (Exception e) {
  -                     // ignore
  -             }
  -     
  -             iterations = 10;
  -             try {
  -                     iterations = Integer.parseInt((String)param.get("iterations"));
  -             } catch (Exception e) {
  -                     // ignore
  -             }
  -             
  -             b2b = param.containsKey("b2b");
  -             nodeploy = param.containsKey("nodeploy");
  -             
  -     }
  -     
  -     
  -     protected void deploy() throws Exception {
  -             if (deployed) return;
  -                     
  -             System.out.println("_____________________________________________");
  -             System.out.println();
  -             System.out.println("jBoss, the EJB Open Source Server");
  -             System.out.println("Copyright (C), The jBoss Organization, 2000");
  -             System.out.println("_____________________________________________");
  -             System.out.println();
  -             System.out.println("Welcome to the lock test v0.1");
  -             System.out.println("_____________________________________________");
  -             System.out.println();
  -             System.out.print("Deploying the bean...");
  -             System.out.flush();
  -             new org.jboss.jmx.client.Deployer().deploy("../deploy/locktest.jar");
  -             deployed = true;
  -             System.out.println("done!");
  -     }
  -     
  -     
  -     public class Worker extends Thread {
  -             public String name;
  -             public boolean running;
  -             
  -             public Worker(String name) {
  -                     this.name = name;
  -                     running = true;
  -             }
  -             
  -             public void run() {
  -                     long start = System.currentTimeMillis();
  -                     int i;
  -                     
  -                     for (i=0; i<iterations; i++) {
  -                             if (!running) break;
  -                                     
  -                             try { 
  -                                     if (b2b) {
  -                                             entity.setAndCopyField(name+" i="+i);
  -                                 
  -                                     } else {
  -                                             entity.setField(name+" i="+i);
  -                                     
  -                                     }
  -                                 System.out.println(name + " " + (i+1) + " 
iterations done");
  -                             } catch (Exception e) {
  -                                     System.out.println(name + " caught an 
exception, dying");
  -                                     e.printStackTrace();
  -                                     running = false;
  -                             }
  -                     }
  -                     
  -                     long end = System.currentTimeMillis();
  -                     System.out.println(name + ": did " + i + " iterations in " + 
(end-start) + "ms");
  -             }
  -     }          
  +   public Main(String name)
  +   {
  +      super(name);
  +   }
  +
  +   /**
  +    * Setup the test suite.
  +    */
  +   public static Test suite()
  +   {
  +      TestSuite suite = new TestSuite();
  +      final String filename = "locktest.jar";
  +
  +      suite.addTest(new TestSuite(Entity_Option_A_Test.class));
  +      suite.addTest(new TestSuite(Entity_Option_B_Test.class));
  +      suite.addTest(new TestSuite(Entity_Option_C_Test.class));
  +      TestSetup setup = new TestSetup(suite)
  +      {
  +         protected void setUp() throws Exception
  +         {
  +            System.out.println("+++ Performing the TestSuite setup");
  +            Deploy.deploy(filename);
  +         }
  +      };
  +      return setup;
  +   }
  +
  +   public static class Entity_Option_A_Test extends EnterpriseEntityTest
  +   {
  +      public Entity_Option_A_Test(String name)
  +      {
  +         super(name, "EnterpriseEntity_A");
  +      }
  +   }
  +   
  +   public static class Entity_Option_B_Test extends EnterpriseEntityTest
  +   {
  +      public Entity_Option_B_Test(String name)
  +      {
  +         super(name, "EnterpriseEntity_B");
  +      }
  +   }
  +   
  +   public static class Entity_Option_C_Test extends EnterpriseEntityTest
  +   {
  +      public Entity_Option_C_Test(String name)
  +      {
  +         super(name, "EnterpriseEntity_C");
  +      }
  +   }
   }
  -
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.2.2.1   +229 -229  
jbosstest/src/main/org/jboss/test/lock/test/EnterpriseEntityTest.java
  
  Index: EnterpriseEntityTest.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbosstest/src/main/org/jboss/test/lock/test/EnterpriseEntityTest.java,v
  retrieving revision 1.2
  retrieving revision 1.2.2.1
  diff -u -r1.2 -r1.2.2.1
  --- EnterpriseEntityTest.java 2001/07/11 21:44:22     1.2
  +++ EnterpriseEntityTest.java 2001/07/18 03:26:27     1.2.2.1
  @@ -1,229 +1,229 @@
  -package org.jboss.test.lock.test;
  -
  -import java.rmi.*;
  -
  -import java.util.HashMap;
  -import java.util.StringTokenizer;
  -
  -import javax.naming.Context;
  -import javax.naming.InitialContext;
  -
  -import javax.ejb.FinderException;
  -
  -import org.jboss.test.lock.interfaces.EnterpriseEntityHome;
  -import org.jboss.test.lock.interfaces.EnterpriseEntity;
  -
  -import junit.framework.Test;
  -import junit.framework.Assert;
  -import junit.framework.TestCase;
  -import junit.framework.TestSuite;
  -
  -import org.jboss.test.util.Deploy;
  -
  -public abstract class EnterpriseEntityTest
  -   extends TestCase
  -{
  -   public static final int DEFAULT_THREAD_COUNT = 20;
  -   public static final int DEFAULT_ITERATIONS = 10;
  -
  -   private String jndiname;
  -   
  -   /** The number of threads to test with. */
  -   private int nbThreads;
  -   private int completedThreads;
  -
  -   /** The number of iterations each thread will go through */
  -   private int iterations;
  -
  -   private Worker[] threads;
  -   
  -   private HashMap param = new HashMap();
  -   
  -   private EnterpriseEntity entity;
  -
  -   private boolean failed;
  -   
  -   public EnterpriseEntityTest(final String name,
  -                               final String jndiname)
  -   {
  -      super(name);
  -      this.jndiname = jndiname;
  -   }
  -
  -   protected void setUp() throws Exception
  -   {
  -      nbThreads = DEFAULT_THREAD_COUNT;
  -      iterations = DEFAULT_ITERATIONS;
  -      System.out.println("+++ Setting up: "+getClass().getName()+" test: "+name());
  -      // get a handle on an entity bean
  -      Context ctx = new InitialContext();
  -      try
  -      {
  -         EnterpriseEntityHome home =
  -            (EnterpriseEntityHome)ctx.lookup(jndiname);
  -                     
  -         try
  -         {
  -            entity = home.findByPrimaryKey("seb");
  -         }
  -         catch (FinderException e)
  -         {
  -            entity = home.create("seb");
  -         }
  -      }
  -      finally
  -      {
  -         ctx.close();
  -      }
  -
  -      // setup the threads
  -      threads = new Worker[nbThreads];
  -   }
  -
  -   protected void tearDown() throws Exception
  -   {
  -      // ???
  -   }
  -
  -   protected void startAll(Task prototype) throws Exception
  -   {
  -      completedThreads = 0;
  -      for (int i=0; i<nbThreads; i++)
  -      {
  -         Task task = (Task)prototype.clone();
  -         threads[i] = new Worker("Thread #" + (i+1), task);
  -         threads[i].start();
  -      }
  -   }
  -
  -   protected void joinAll() throws Exception
  -   {
  -      // wait for all the threads to finish
  -      for (int i=0; i<nbThreads; i++)
  -      {
  -         threads[i].join();
  -      }
  -   }
  -
  -   protected void run(Task prototype) throws Exception
  -   {
  -      startAll(prototype);
  -      joinAll();
  -      Assert.assert(!failed);
  -   }
  -   
  -   protected synchronized void setFailed()
  -   {
  -      failed = true;
  -   }
  -
  -   protected boolean hasFailed()
  -   {
  -      return failed;
  -   }
  -
  -   public void testSingleBean() throws Exception
  -   {         
  -      System.out.println("Spawning " + nbThreads + " threads for " + 
  -                         iterations + " iterations with single bean call");
  -
  -      Task prototype = new Task()
  -      {
  -            public void run(String name, int i) throws Exception
  -            {
  -               entity.setField(name+" i="+i);
  -            }
  -      };
  -
  -      run(prototype);
  -   }
  -
  -   public void testB2B() throws Exception
  -   {         
  -      System.out.println("Spawning " + nbThreads + " threads for " + 
  -                         iterations + " iterations with bean to bean call");
  -
  -      entity.setNextEntity("daniel");
  -                     
  -      Task prototype = new Task()
  -      {      
  -            public void run(String name, int i) throws Exception
  -            {
  -               entity.setAndCopyField(name+" i="+i);
  -            }
  -         };
  -
  -      run(prototype);      
  -   }
  -   
  -   
  -   /////////////////////////////////////////////////////////////////////////
  -   //                        Iteration Worker & Task                      //
  -   /////////////////////////////////////////////////////////////////////////
  -   
  -   public abstract class Task
  -      implements Cloneable
  -   {
  -      public abstract void run(String name, int i) throws Exception;
  -
  -      public Object clone()
  -      {
  -         try
  -         {
  -            return super.clone();
  -         }
  -         catch (CloneNotSupportedException e)
  -         {
  -            throw new InternalError();
  -         }
  -      }
  -   }
  -   
  -   public class Worker
  -      extends Thread
  -   {
  -      public String name;
  -      public boolean running;
  -      public Task task;
  -      
  -      public Worker(final String name, final Task task)
  -      {
  -         this.name = name;
  -         this.task = task;
  -         running = true;
  -      }
  -      
  -      public void run()
  -      {
  -         long start = System.currentTimeMillis();
  -         int i;
  -         
  -         for (i=0; i<iterations; i++)
  -         {
  -            if (!running || hasFailed()) break;
  -            
  -            try
  -            {
  -               task.run(name, i); 
  -               // System.out.println(name + " " + (i+1) + " iterations done");
  -            }
  -            catch (Throwable t)
  -            {
  -               System.out.println(name + " caught an exception, dying");
  -               t.printStackTrace();
  -               running = false;
  -               setFailed();
  -            }
  -         }
  -
  -         synchronized(this)
  -         {
  -            completedThreads ++;
  -         }
  -         long end = System.currentTimeMillis();
  -         System.out.println(name + ": did " + i +
  -                            " iterations in " + (end-start) + "ms, 
complete="+completedThreads);
  -      }
  -   }
  -}
  -
  +package org.jboss.test.lock.test;
  +
  +import java.rmi.*;
  +
  +import java.util.HashMap;
  +import java.util.StringTokenizer;
  +
  +import javax.naming.Context;
  +import javax.naming.InitialContext;
  +
  +import javax.ejb.FinderException;
  +
  +import org.jboss.test.lock.interfaces.EnterpriseEntityHome;
  +import org.jboss.test.lock.interfaces.EnterpriseEntity;
  +
  +import junit.framework.Test;
  +import junit.framework.Assert;
  +import junit.framework.TestCase;
  +import junit.framework.TestSuite;
  +
  +import org.jboss.test.util.Deploy;
  +
  +public abstract class EnterpriseEntityTest
  +   extends TestCase
  +{
  +   public static final int DEFAULT_THREAD_COUNT = 20;
  +   public static final int DEFAULT_ITERATIONS = 10;
  +
  +   private String jndiname;
  +   
  +   /** The number of threads to test with. */
  +   private int nbThreads;
  +   private int completedThreads;
  +
  +   /** The number of iterations each thread will go through */
  +   private int iterations;
  +
  +   private Worker[] threads;
  +   
  +   private HashMap param = new HashMap();
  +   
  +   private EnterpriseEntity entity;
  +
  +   private boolean failed;
  +   
  +   public EnterpriseEntityTest(final String name,
  +                               final String jndiname)
  +   {
  +      super(name);
  +      this.jndiname = jndiname;
  +   }
  +
  +   protected void setUp() throws Exception
  +   {
  +      nbThreads = DEFAULT_THREAD_COUNT;
  +      iterations = DEFAULT_ITERATIONS;
  +      System.out.println("+++ Setting up: "+getClass().getName()+" test: "+name());
  +      // get a handle on an entity bean
  +      Context ctx = new InitialContext();
  +      try
  +      {
  +         EnterpriseEntityHome home =
  +            (EnterpriseEntityHome)ctx.lookup(jndiname);
  +                     
  +         try
  +         {
  +            entity = home.findByPrimaryKey("seb");
  +         }
  +         catch (FinderException e)
  +         {
  +            entity = home.create("seb");
  +         }
  +      }
  +      finally
  +      {
  +         ctx.close();
  +      }
  +
  +      // setup the threads
  +      threads = new Worker[nbThreads];
  +   }
  +
  +   protected void tearDown() throws Exception
  +   {
  +      // ???
  +   }
  +
  +   protected void startAll(Task prototype) throws Exception
  +   {
  +      completedThreads = 0;
  +      for (int i=0; i<nbThreads; i++)
  +      {
  +         Task task = (Task)prototype.clone();
  +         threads[i] = new Worker("Thread #" + (i+1), task);
  +         threads[i].start();
  +      }
  +   }
  +
  +   protected void joinAll() throws Exception
  +   {
  +      // wait for all the threads to finish
  +      for (int i=0; i<nbThreads; i++)
  +      {
  +         threads[i].join();
  +      }
  +   }
  +
  +   protected void run(Task prototype) throws Exception
  +   {
  +      startAll(prototype);
  +      joinAll();
  +      Assert.assert(!failed);
  +   }
  +   
  +   protected synchronized void setFailed()
  +   {
  +      failed = true;
  +   }
  +
  +   protected boolean hasFailed()
  +   {
  +      return failed;
  +   }
  +
  +   public void testSingleBean() throws Exception
  +   {         
  +      System.out.println("Spawning " + nbThreads + " threads for " + 
  +                         iterations + " iterations with single bean call");
  +
  +      Task prototype = new Task()
  +      {
  +            public void run(String name, int i) throws Exception
  +            {
  +               entity.setField(name+" i="+i);
  +            }
  +      };
  +
  +      run(prototype);
  +   }
  +
  +   public void testB2B() throws Exception
  +   {         
  +      System.out.println("Spawning " + nbThreads + " threads for " + 
  +                         iterations + " iterations with bean to bean call");
  +
  +      entity.setNextEntity("daniel");
  +                     
  +      Task prototype = new Task()
  +      {      
  +            public void run(String name, int i) throws Exception
  +            {
  +               entity.setAndCopyField(name+" i="+i);
  +            }
  +         };
  +
  +      run(prototype);      
  +   }
  +   
  +   
  +   /////////////////////////////////////////////////////////////////////////
  +   //                        Iteration Worker & Task                      //
  +   /////////////////////////////////////////////////////////////////////////
  +   
  +   public abstract class Task
  +      implements Cloneable
  +   {
  +      public abstract void run(String name, int i) throws Exception;
  +
  +      public Object clone()
  +      {
  +         try
  +         {
  +            return super.clone();
  +         }
  +         catch (CloneNotSupportedException e)
  +         {
  +            throw new InternalError();
  +         }
  +      }
  +   }
  +   
  +   public class Worker
  +      extends Thread
  +   {
  +      public String name;
  +      public boolean running;
  +      public Task task;
  +      
  +      public Worker(final String name, final Task task)
  +      {
  +         this.name = name;
  +         this.task = task;
  +         running = true;
  +      }
  +      
  +      public void run()
  +      {
  +         long start = System.currentTimeMillis();
  +         int i;
  +         
  +         for (i=0; i<iterations; i++)
  +         {
  +            if (!running || hasFailed()) break;
  +            
  +            try
  +            {
  +               task.run(name, i); 
  +               // System.out.println(name + " " + (i+1) + " iterations done");
  +            }
  +            catch (Throwable t)
  +            {
  +               System.out.println(name + " caught an exception, dying");
  +               t.printStackTrace();
  +               running = false;
  +               setFailed();
  +            }
  +         }
  +
  +         synchronized(this)
  +         {
  +            completedThreads ++;
  +         }
  +         long end = System.currentTimeMillis();
  +         System.out.println(name + ": did " + i +
  +                            " iterations in " + (end-start) + "ms, 
complete="+completedThreads);
  +      }
  +   }
  +}
  +
  
  
  
  1.1.2.1   +178 -0    jbosstest/src/main/org/jboss/test/lock/test/Attic/TestSpin.java
  
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to