diff options
Diffstat (limited to 'libjava/classpath/test/java.io/PushbackInputStreamTest.java')
-rw-r--r-- | libjava/classpath/test/java.io/PushbackInputStreamTest.java | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/libjava/classpath/test/java.io/PushbackInputStreamTest.java b/libjava/classpath/test/java.io/PushbackInputStreamTest.java new file mode 100644 index 0000000..9d67623 --- /dev/null +++ b/libjava/classpath/test/java.io/PushbackInputStreamTest.java @@ -0,0 +1,133 @@ +/************************************************************************* +/* PushbackInputStreamTest.java -- Tests PushbackInputStream's of course +/* +/* 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 PushbackInputStreamTest extends PushbackInputStream +{ + +public +PushbackInputStreamTest(InputStream is, int size) +{ + super(is, size); +} + +public static void +main(String[] argv) +{ + System.out.println("Started test of PushbackInputStream"); + + String str = "Once when I was in fourth grade, my friend Lloyd\n" + + "Saltsgaver and I got in trouble for kicking a bunch of\n" + + "Kindergartners off the horse swings so we could play a game\n" + + "of 'road hog'\n"; + + System.out.println("Test 1: Protected Variables Test"); + { + PushbackInputStreamTest pist = new PushbackInputStreamTest( + new StringBufferInputStream(str), 15); + + boolean passed = true; + if (pist.pos != pist.buf.length) + { + passed = false; + System.out.println("The pos variable is wrong. Expected " + + pist.buf.length + " but got " + pist.pos); + } + if (pist.buf.length != 15) + { + passed = false; + System.out.println("The buf.length is wrong. Expected 15" + + " but got " + pist.buf.length); + } + + if (passed) + System.out.println("PASSED: Protected Variables Test"); + else + System.out.println("FAILED: Protected Variables Test"); + } + + System.out.println("Test 2: Basic Unread Tests"); + try + { + PushbackInputStreamTest pist = new PushbackInputStreamTest( + new StringBufferInputStream(str), 15); + + byte[] read_buf1 = new byte[12]; + byte[] read_buf2 = new byte[12]; + + boolean passed = true; + + pist.read(read_buf1); + pist.unread(read_buf1); + pist.read(read_buf2); + + for (int i = 0; i < read_buf1.length; i++) + { + if (read_buf1[i] != read_buf2[i]) + passed = false; + } + + pist.unread(read_buf2, 1, read_buf2.length - 1); + pist.unread(read_buf2[0]); + + int bytes_read, total_read = 0; + while ((bytes_read = pist.read(read_buf1)) != -1) + { + System.out.print(new String(read_buf1, 0, bytes_read)); + total_read += bytes_read; + } + + if (total_read != str.length()) + passed = false; + + if (passed) + System.out.println("PASSED: Basic Unread Tests"); + else + System.out.println("FAILED: Basic Unread Tests"); + } + catch(IOException e) + { + System.out.println("FAILED: Basic Unread Tests: " + e); + } + + System.out.println("Test 3: Buffer Overflow Test"); + try + { + PushbackInputStreamTest pist = new PushbackInputStreamTest( + new StringBufferInputStream(str), 10); + + byte[] read_buf = new byte[12]; + + pist.read(read_buf); + pist.unread(read_buf); + System.out.println("FAILED: Buffer Overflow Test"); + } + catch(IOException e) + { + System.out.println("PASSED: Buffer Overflow Test: " + e); + } + + System.out.println("Finished tests of PushbackInputStream"); +} // main + +} // class PushbackInputStreamTest + |