You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2011/01/21 15:59:03 UTC

svn commit: r1061833 - /tika/trunk/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java

Author: jukka
Date: Fri Jan 21 14:59:03 2011
New Revision: 1061833

URL: http://svn.apache.org/viewvc?rev=1061833&view=rev
Log:
TIKA-416: Out-of-process text extraction

More test cases

Modified:
    tika/trunk/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java

Modified: tika/trunk/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java?rev=1061833&r1=1061832&r2=1061833&view=diff
==============================================================================
--- tika/trunk/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java (original)
+++ tika/trunk/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java Fri Jan 21 14:59:03 2011
@@ -43,5 +43,56 @@ public class ForkParserTest extends Test
         }
     }
 
+    public void testSerialParsing() throws Exception {
+        ForkParser parser = new ForkParser(
+                ForkParserTest.class.getClassLoader(),
+                new ForkTestParser());
+        try {
+            ParseContext context = new ParseContext();
+            for (int i = 0; i < 10; i++) {
+                ContentHandler output = new BodyContentHandler();
+                InputStream stream = new ByteArrayInputStream(new byte[0]);
+                parser.parse(stream, output, new Metadata(), context);
+                assertEquals("Hello, World!", output.toString().trim());
+            }
+        } finally {
+            parser.close();
+        }
+    }
+
+    public void testParallelParsing() throws Exception {
+        final ForkParser parser = new ForkParser(
+                ForkParserTest.class.getClassLoader(),
+                new ForkTestParser());
+        try {
+            final ParseContext context = new ParseContext();
+
+            Thread[] threads = new Thread[10];
+            ContentHandler[] output = new ContentHandler[threads.length];
+            for (int i = 0; i < threads.length; i++) {
+                final ContentHandler o = new BodyContentHandler();
+                output[i] = o;
+                threads[i] = new Thread() {
+                    public void run() {
+                        try {
+                            InputStream stream =
+                                new ByteArrayInputStream(new byte[0]);
+                            parser.parse(stream, o, new Metadata(), context);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                };
+                threads[i].start();
+            }
+
+            for (int i = 0; i < threads.length; i++) {
+                threads[i].join();
+                assertEquals("Hello, World!", output[i].toString().trim());
+            }
+        } finally {
+            parser.close();
+        }
+    }
 
 }