You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2012/06/07 22:54:51 UTC
svn commit: r1347789 -
/commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java
Author: sebb
Date: Thu Jun 7 20:54:50 2012
New Revision: 1347789
URL: http://svn.apache.org/viewvc?rev=1347789&view=rev
Log:
Add extra tests from IO-278
Modified:
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java
Modified: commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java?rev=1347789&r1=1347788&r2=1347789&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java (original)
+++ commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java Thu Jun 7 20:54:50 2012
@@ -21,7 +21,9 @@ import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
+import java.io.Writer;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.concurrent.ScheduledThreadPoolExecutor;
@@ -50,6 +52,57 @@ public class TailerTest extends FileBase
Thread.sleep(1000);
}
FileUtils.deleteDirectory(getTestDirectory());
+ Thread.sleep(1000);
+ }
+
+ public void testLongFile() throws Exception {
+ long delay = 50;
+
+ File file = new File(getTestDirectory(), "testLongFile.txt");
+ createFile(file, 0);
+ Writer writer = new FileWriter(file, true);
+ for (int i = 0; i < 100000; i++) {
+ writer.write("LineLineLineLineLineLineLineLineLineLine\n");
+ }
+ writer.write("SBTOURIST\n");
+ IOUtils.closeQuietly(writer);
+
+ TestTailerListener listener = new TestTailerListener();
+ tailer = new Tailer(file, listener, delay, false);
+
+ long start = System.currentTimeMillis();
+
+ Thread thread = new Thread(tailer);
+ thread.start();
+
+ List<String> lines = listener.getLines();
+ while (lines.isEmpty() || !lines.get(lines.size() - 1).equals("SBTOURIST")) {
+ lines = listener.getLines();
+ }
+ System.out.println("Elapsed: " + (System.currentTimeMillis() - start));
+
+ listener.clear();
+ }
+
+ public void testBufferBreak() throws Exception {
+ long delay = 50;
+
+ File file = new File(getTestDirectory(), "testBufferBreak.txt");
+ createFile(file, 0);
+ writeString(file, "SBTOURIST\n");
+
+ TestTailerListener listener = new TestTailerListener();
+ tailer = new Tailer(file, listener, delay, false, 1);
+
+ Thread thread = new Thread(tailer);
+ thread.start();
+
+ List<String> lines = listener.getLines();
+ while (lines.isEmpty() || !lines.get(lines.size() - 1).equals("SBTOURIST")) {
+ lines = listener.getLines();
+ }
+
+ listener.clear();
}
public void testTailerEof() throws Exception {
@@ -242,7 +295,8 @@ public class TailerTest extends FileBase
*/
private static class TestTailerListener implements TailerListener {
- private final List<String> lines = new ArrayList<String>();
+ // Must be synchronised because it is written by one thread and read by another
+ private final List<String> lines = Collections.synchronizedList(new ArrayList<String>());
volatile Exception exception = null;