diff -r f1112f777ce9 -r 96906a986c3b testdev/ite/test/com.nokia.testfw.launch.test/src/com/nokia/testfw/launch/monitor/TailFileInputStreamTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdev/ite/test/com.nokia.testfw.launch.test/src/com/nokia/testfw/launch/monitor/TailFileInputStreamTest.java Tue Mar 30 14:39:29 2010 +0800 @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of the License "Symbian Foundation License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ +package com.nokia.testfw.launch.monitor; + +import junit.framework.TestCase; + +/** + * @author xiaoma + * + */ +public class TailFileInputStreamTest extends TestCase { + + private static final String TESTFILE = "tailstream.test"; + + // private File testFile; + + // during setup, we will start a thread to write to disk file + protected void setUp() throws Exception { + // testFile = new File(TESTFILE); + LogFileWriter logWriter; + // write log every second in separate thread, last for 10 seconds + logWriter = new LogFileWriter(TESTFILE, 10); + Thread writerThread = new Thread(logWriter); + writerThread.start(); + } + + protected void tearDown() throws Exception { + // testFile.delete(); + } + + public void testTailFile() { + // use tail stream to read the file while other app is writing. + TailFileInputStream tis; + boolean finished = false; + StringBuffer sb = new StringBuffer(); + try { + tis = new TailFileInputStream(TESTFILE); + byte[] bytes = new byte[10]; + System.out.println("begin to read log file"); + while (!finished) { + if (tis.available() > 0) { + int count = 0; + while ((count = tis.read(bytes)) != -1) { + String line = new String(bytes, 0, count).trim(); + System.out.println("read log :" + line); + sb.append(line); + if (line.equalsIgnoreCase("test10")) { + finished = true; + break; + } + } + Thread.sleep(100); + } + } + tis.close(); + } catch (Exception e) { + e.printStackTrace(); + fail(e.toString()); + } + + String content = sb.toString(); + System.out.println("log file content:" + content); + assertTrue(content.indexOf("oldtest") < 0); + assertTrue(content.indexOf("test4") > 0); + assertTrue(content.indexOf("test9") > 0); + } + +}