Revision: 8388
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=8388&view=rev
Author:   dnaber
Date:     2012-11-12 23:03:17 +0000 (Mon, 12 Nov 2012)
Log Message:
-----------
make load test work with > 1 thread

Modified Paths:
--------------
    
trunk/JLanguageTool/src/test/java/org/languagetool/server/ExampleSentenceProvider.java
    
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPSServerTesting.java

Modified: 
trunk/JLanguageTool/src/test/java/org/languagetool/server/ExampleSentenceProvider.java
===================================================================
--- 
trunk/JLanguageTool/src/test/java/org/languagetool/server/ExampleSentenceProvider.java
      2012-11-12 22:15:26 UTC (rev 8387)
+++ 
trunk/JLanguageTool/src/test/java/org/languagetool/server/ExampleSentenceProvider.java
      2012-11-12 23:03:17 UTC (rev 8388)
@@ -70,7 +70,7 @@
   }
 
   List<ExampleSentence> getRandomSentences(Language lang) {
-    final List<ExampleSentence> sentences = languageToExamples.get(lang);
+    final List<ExampleSentence> sentences = new 
ArrayList<ExampleSentence>(languageToExamples.get(lang));
     final int sentenceCount = rnd.nextInt(Math.max(1, maxSentences - 
minSentences)) + minSentences;
     Collections.shuffle(sentences);
     return sentences.subList(0, Math.min(sentences.size(), sentenceCount));

Modified: 
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPSServerTesting.java
===================================================================
--- 
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPSServerTesting.java
   2012-11-12 22:15:26 UTC (rev 8387)
+++ 
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPSServerTesting.java
   2012-11-12 23:03:17 UTC (rev 8388)
@@ -42,7 +42,7 @@
   private static final String SERVER_URL = "https://localhost:8081";;
   //private static final String SERVER_URL = "https://languagetool.org:8081";;
   private static final int REPEAT_COUNT = 100;
-  private static final int THREAD_COUNT = 1;
+  private static final int THREAD_COUNT = 3;
 
   private final ExampleSentenceProvider provider = new 
ExampleSentenceProvider(1, 500);
   private final Random rnd = new Random(10);
@@ -57,7 +57,7 @@
       final ExecutorService executorService = 
Executors.newFixedThreadPool(THREAD_COUNT);
       final List<Future> futures = new ArrayList<Future>();
       for (int i = 0; i < THREAD_COUNT; i++) {
-        final Future<?> future = executorService.submit(new TestRunnable());
+        final Future<?> future = executorService.submit(new TestRunnable(i));
         futures.add(future);
       }
       for (Future future : futures) {
@@ -74,11 +74,17 @@
   }
 
   private class TestRunnable implements Runnable {
+    private final int threadNumber;
+
+    public TestRunnable(int threadNumber) {
+      this.threadNumber = threadNumber;
+    }
+
     @Override
     public void run() {
       try {
         for (int i = 0; i < REPEAT_COUNT; i++) {
-          runTests();
+          runTests(threadNumber);
         }
       } catch (Exception e) {
         throw new RuntimeException(e);
@@ -86,15 +92,15 @@
     }
   }
 
-  private void runTests() throws IOException {
+  private void runTests(int threadNumber) throws IOException {
     final Language[] languages = Language.REAL_LANGUAGES;
     final Language lang = languages[rnd.nextInt(languages.length)];
     final List<ExampleSentence> sentences = provider.getRandomSentences(lang);
     final String text = getSentencesAsText(sentences);
     final String data = "language=" + lang.getShortNameWithVariant() + 
"&text=" + URLEncoder.encode(text, "utf-8");
-    final String resultXml = checkAtUrl(new URL(SERVER_URL), data);
+    final String resultXml = checkAtUrl(new URL(SERVER_URL), data, 
threadNumber);
     for (ExampleSentence sentence : sentences) {
-      assertTrue("Expected " + sentence.getRuleId() + " for '" + text + "'", 
resultXml.contains(sentence.getRuleId()));
+      assertTrue("Expected " + sentence.getRuleId() + " for '" + text + "' (" 
+ sentences.size() + " sentences)", resultXml.contains(sentence.getRuleId()));
     }
   }
 
@@ -109,14 +115,14 @@
     return sb.toString();
   }
 
-  private String checkAtUrl(URL url, String data) throws IOException {
+  private String checkAtUrl(URL url, String data, int threadNumber) throws 
IOException {
     final long startTime = System.currentTimeMillis();
     final String startOfData = data.substring(0, Math.min(30, data.length()));
     synchronized(this) {
       checkCount++;
     }
     final String result = HTTPTools.checkAtUrlByPost(url, data);
-    System.out.println(checkCount + ". Got " + url + " with data (" + 
data.length() + " bytes) " + startOfData
+    System.out.println(checkCount + ". [" + threadNumber + "] Got " + url + " 
with data (" + data.length() + " bytes) " + startOfData
             + "...: " + (System.currentTimeMillis() - startTime) + "ms");
     return result;
   }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits

Reply via email to