241 lines
7.2 KiB
Java
241 lines
7.2 KiB
Java
/*************************************************************************
|
|
/* BufferedInputStreamTest.java -- Tests BufferedInputStream's
|
|
/*
|
|
/* Copyright (c) 1998 Free Software Foundation, Inc.
|
|
/* Written by Aaron M. Renn (arenn@urbanophile.com)
|
|
/*
|
|
/* This program is free software; you can redistribute it and/or modify
|
|
/* it under the terms of the GNU General Public License as published
|
|
/* by the Free Software Foundation, either version 2 of the License, or
|
|
/* (at your option) any later version.
|
|
/*
|
|
/* This program is distributed in the hope that it will be useful, but
|
|
/* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
/* GNU General Public License for more details.
|
|
/*
|
|
/* You should have received a copy of the GNU General Public License
|
|
/* along with this program; if not, write to the Free Software Foundation
|
|
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
/*************************************************************************/
|
|
|
|
import java.io.*;
|
|
|
|
public class BufferedInputStreamTest extends BufferedInputStream
|
|
{
|
|
|
|
public
|
|
BufferedInputStreamTest(InputStream in, int size)
|
|
{
|
|
super(in, size);
|
|
}
|
|
|
|
public static int
|
|
marktest(InputStream ins) throws IOException
|
|
{
|
|
BufferedInputStream bis = new BufferedInputStream(ins, 15);
|
|
|
|
int bytes_read;
|
|
int total_read = 0;
|
|
byte[] buf = new byte[12];
|
|
|
|
bytes_read = bis.read(buf);
|
|
total_read += bytes_read;
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
|
|
bytes_read = bis.read(buf);
|
|
total_read += bytes_read;
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
|
|
bis.mark(75);
|
|
bis.read();
|
|
bis.read(buf);
|
|
bis.read(buf);
|
|
bis.read(buf);
|
|
bis.reset();
|
|
|
|
bytes_read = bis.read(buf);
|
|
total_read += bytes_read;
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
|
|
bis.mark(555);
|
|
|
|
bytes_read = bis.read(buf);
|
|
total_read += bytes_read;
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
|
|
bis.reset();
|
|
|
|
bis.read(buf);
|
|
bytes_read = bis.read(buf);
|
|
total_read += bytes_read;
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
|
|
bytes_read = bis.read(buf);
|
|
total_read += bytes_read;
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
|
|
bis.mark(14);
|
|
|
|
bis.read(buf);
|
|
|
|
bis.reset();
|
|
|
|
bytes_read = bis.read(buf);
|
|
total_read += bytes_read;
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
|
|
while ((bytes_read = bis.read(buf)) != -1)
|
|
{
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
total_read += bytes_read;
|
|
}
|
|
|
|
return(total_read);
|
|
}
|
|
|
|
public static void
|
|
main(String[] argv)
|
|
{
|
|
System.out.println("Started test of BufferedInputStream");
|
|
|
|
try
|
|
{
|
|
System.out.println("Test 1: Protected Variables Test");
|
|
|
|
String str = "This is a test line of text for this pass";
|
|
|
|
StringBufferInputStream sbis = new StringBufferInputStream(str);
|
|
BufferedInputStreamTest bist = new BufferedInputStreamTest(sbis, 12);
|
|
|
|
bist.read();
|
|
bist.mark(5);
|
|
|
|
boolean passed = true;
|
|
|
|
if (bist.buf.length != 12)
|
|
{
|
|
passed = false;
|
|
System.out.println("buf.length is wrong. Expected 12, but got " +
|
|
bist.buf.length);
|
|
}
|
|
if (bist.count != 12)
|
|
{
|
|
passed = false;
|
|
System.out.println("count is wrong. Expected 12, but got " +
|
|
bist.count);
|
|
}
|
|
if (bist.marklimit != 5)
|
|
{
|
|
passed = false;
|
|
System.out.println("marklimit is wrong. Expected 5, but got " +
|
|
bist.marklimit);
|
|
}
|
|
if (bist.markpos != 1)
|
|
{
|
|
passed = false;
|
|
System.out.println("markpos is wrong. Expected 5, but got " +
|
|
bist.markpos);
|
|
}
|
|
if (bist.pos != 1)
|
|
{
|
|
passed = false;
|
|
System.out.println("pos is wrong. Expected 1, but got " +
|
|
bist.pos);
|
|
}
|
|
|
|
if (passed)
|
|
System.out.println("PASSED: Protected Variables Test");
|
|
else
|
|
System.out.println("FAILED: Protected Variables Test");
|
|
}
|
|
catch(IOException e)
|
|
{
|
|
System.out.println("FAILED: Protected Variables Test: " + e);
|
|
}
|
|
|
|
try
|
|
{
|
|
System.out.println("Test 2: Simple Read Test");
|
|
|
|
String str = "One of my 8th grade teachers was Mr. Russell.\n" +
|
|
"He used to start each year off by telling the class that the\n" +
|
|
"earth was flat. He did it to teach people to question\n" +
|
|
"things they are told. But everybody knew that he did it\n" +
|
|
"so it lost its effect.\n";
|
|
|
|
StringBufferInputStream sbis = new StringBufferInputStream(str);
|
|
BufferedInputStream bis = new BufferedInputStream(sbis, 15);
|
|
|
|
byte[] buf = new byte[12];
|
|
int bytes_read;
|
|
while((bytes_read = bis.read(buf)) != -1)
|
|
System.out.print(new String(buf, 0, bytes_read));
|
|
|
|
bis.close();
|
|
System.out.println("PASSED: Simple Read Test");
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
System.out.println("FAILED: Simple Read Test: " + e);
|
|
}
|
|
|
|
try
|
|
{
|
|
System.out.println("Test 3: First mark/reset Test");
|
|
|
|
String str = "My 6th grade teacher was named Mrs. Hostetler.\n" +
|
|
"She had a whole list of rules that you were supposed to follow\n" +
|
|
"in class and if you broke a rule she would make you write the\n" +
|
|
"rules out several times. The number varied depending on what\n" +
|
|
"rule you broke. Since I knew I would get in trouble, I would\n" +
|
|
"just go ahead and write out a few sets on the long school bus\n" +
|
|
"ride home so that if had to stay in during recess and write\n" +
|
|
"rules, five minutes later I could just tell the teacher I was\n" +
|
|
"done so I could go outside and play kickball.\n";
|
|
|
|
StringBufferInputStream sbis = new StringBufferInputStream(str);
|
|
|
|
int total_read = marktest(sbis);
|
|
|
|
if (total_read == str.length())
|
|
System.out.println("PASSED: First mark/reset Test");
|
|
else
|
|
System.out.println("FAILED: First mark/reset Test");
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
System.out.println("FAILED: First mark/reset Test: " + e);
|
|
}
|
|
|
|
try
|
|
{
|
|
System.out.println("Test 4: Second mark/reset Test");
|
|
|
|
String str = "My first day of college was fun. A bunch of us\n" +
|
|
"got pretty drunk, then this guy named Rick Flake (I'm not\n" +
|
|
"making that name up) took a piss in the bed of a Physical\n" +
|
|
"Plant dept pickup truck. Later on we were walking across\n" +
|
|
"campus, saw a cop, and took off running for no reason.\n" +
|
|
"When we got back to the dorm we found an even drunker guy\n" +
|
|
"passed out in a shopping cart outside.\n";
|
|
|
|
ByteArrayInputStream sbis = new ByteArrayInputStream(str.getBytes());
|
|
|
|
int total_read = marktest(sbis);
|
|
|
|
if (total_read == str.length())
|
|
System.out.println("PASSED: Second mark/reset Test");
|
|
else
|
|
System.out.println("FAILED: Second mark/reset Test");
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
System.out.println("FAILED: Second mark/reset Test: " + e);
|
|
}
|
|
|
|
System.out.println("Finished test of BufferedInputStream");
|
|
} // main
|
|
|
|
} // class BufferedInputStreamTest
|
|
|