blob: 6c88cf29c270b1b91bd784849f7e8b2da37bdb75 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
23
24/* @test
25 * @bug 4398210
26 * @summary check skip method after pushing data back
27 *
28 */
29
30import java.io.*;
31
32public class Skip {
33
34 public static void main(String args[]) throws Exception {
35 test1();
36 }
37
38 private static void test1() throws Exception {
39 char[] buf = new char[20];
40 for (int i=0; i<20; i++)
41 buf[i] = (char)i;
42 CharArrayReader car = new CharArrayReader(buf);
43 PushbackReader pr = new PushbackReader(car, 10);
44 check(pr.read(), 0);
45 // Check skip without unread chars present
46 pr.skip(1);
47 check(pr.read(), 2);
48 pr.unread(2);
49 pr.unread(1);
50 // Check skip over and beyond unread chars
51 pr.skip(4);
52 check(pr.read(), 5);
53 check(pr.read(), 6);
54 pr.unread(6);
55 pr.unread(5);
56 // Check skip within unread chars
57 pr.skip(1);
58 check(pr.read(), 6);
59 check(pr.read(), 7);
60 // Check skip after unread chars have been used
61 pr.skip(3);
62 check(pr.read(), 11);
63 }
64
65 private static void check (int i, int j) {
66 if (i != j)
67 throw new RuntimeException("Test failed");
68 }
69}