blob: 410e372115a85e26c32a824d9f73b30f105a6635 [file] [log] [blame]
/* -*- Mode: java; tab-width: 8 -*-
* Copyright (C) 1997, 1998 Netscape Communications Corporation,
* All Rights Reserved.
*/
package com.netscape.javascript.qa.drivers;
//import netscape.security.PrivilegeManager;
import java.io.*;
/**
* Class that writes and appends test result information to a file.
*
* @author christine@netscape.com
*
*/
public class TestLog {
private String name;
private ByteArrayOutputStream outputStream;
private PrintStream printStream;
private String terminator;
/**
* Create a new TestLog and open associated streams.
*
* @param name name of the log file
* @param terminator string that will be appended to the end of each line
*
*
*/
public TestLog ( String name, String terminator ) {
this.name = name;
this.terminator = terminator;
openLog();
}
/**
* Write a string to the end TestLog file.
*/
public void writeLine( String string ) {
if ( printStream != null ) {
printStream.println( string + terminator );
try {
RandomAccessFile raf = new RandomAccessFile( name, "rw" );
raf.seek( raf.length() );
raf.write( outputStream.toByteArray() );
raf.close();
outputStream.reset();
} catch ( Exception e ) {
System.out.println( "Exception writing to "+ name +".writeLine():"+ e );
}
}
}
/**
* Override if privileges are required to write to file system.
* The default implemenation does nothing.
*/
public void enablePrivileges() {
return;
}
/**
* Close print stream associated with the TestLog file.
*/
public void closeLog() {
if ( printStream != null ) {
printStream.close();
}
}
/**
* Create streams associated with this TestLog file.
*/
public void openLog() {
enablePrivileges();
this.outputStream = new ByteArrayOutputStream();
this.printStream = new PrintStream( this.outputStream );
}
public String toString() {
return this.name;
}
}