[jboss-svn-commits] JBL Code SVN: r13133 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/integrationtests and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 5 20:36:54 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-07-05 20:36:53 -0400 (Thu, 05 Jul 2007)
New Revision: 13133

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessStressTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/thread_class_test.drl
Log:
tests for stress testing (commented out by default)

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessStressTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessStressTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessStressTest.java	2007-07-06 00:36:53 UTC (rev 13133)
@@ -0,0 +1,96 @@
+package org.drools.integrationtests;
+
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.Address;
+import org.drools.Person;
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatelessSession;
+import org.drools.compiler.PackageBuilder;
+
+import junit.framework.TestCase;
+
+/**
+ * This is for testing possible PermSpace issues (leaking) when spawning lots of sessions in concurrent threads.
+ * Normally this test will be XXX'ed out, as when running it will not terminate.
+ * @author Michael Neale
+ */
+public class StatelessStressTest extends TestCase {
+
+    public void testDummy() {
+        
+    }
+    
+    
+    public void XXXtestLotsOfStateless() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "thread_class_test.drl" ) ) );
+        assertFalse(builder.hasErrors());
+
+        
+        
+
+        final RuleBase rb  = RuleBaseFactory.newRuleBase();
+        rb.addPackage( builder.getPackage() );
+        
+      
+        
+        int numThreads = 100;
+        Thread[] ts = new Thread[numThreads];
+        
+        
+            for (int i=0; i<numThreads; i++) {
+                Runnable run = new Runnable() {
+    
+                    public void run() {
+                        
+                        long start = 0;
+                        long previous = 0;
+                        
+                        while (true) {
+                            start = System.currentTimeMillis();
+                            StatelessSession sess = rb.newStatelessSession();
+                            Person p = new Person();
+                            p.setName( "Michael" ); 
+                            Address add1 = new Address();
+                            add1.setStreet( "High" );
+                            Address add2 = new Address();
+                            add2.setStreet( "Low" );
+                            List l = new ArrayList();
+                            l.add( add1 ); l.add( add2 );
+                            p.setAddresses( l );        
+                            sess.execute( p );
+                            
+                            long current = System.currentTimeMillis() - start;
+                            if (previous != 0) {
+                                float f = current/previous;
+                                if (f > 1) {
+                                    System.err.println("SLOWDOWN");
+                                }
+                            }
+                            
+                            previous = current;
+                        }
+                    }
+                    
+                };
+                
+                Thread t = new Thread(run);
+                t.start();
+                ts[i] = t;
+            }
+            
+            for ( int i = 0; i < ts.length; i++ ) {
+                ts[i].join();
+            }
+        
+        
+        
+        
+    }
+    
+    
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessStressTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/thread_class_test.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/thread_class_test.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/thread_class_test.drl	2007-07-06 00:36:53 UTC (rev 13133)
@@ -0,0 +1,17 @@
+package nesting;
+
+#dialect "mvel"
+
+import org.drools.Person
+import org.drools.Address
+
+
+
+rule "test something"
+	
+	when
+		p: Person( name=="Michael", addresses != null)
+	then
+		p.setName("goo");
+		System.out.println(p.getName());	
+end


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/thread_class_test.drl
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list