Initial load
diff --git a/test/java/io/InputStreamReader/GrowAfterEOF.java b/test/java/io/InputStreamReader/GrowAfterEOF.java
new file mode 100644
index 0000000..27d3c50
--- /dev/null
+++ b/test/java/io/InputStreamReader/GrowAfterEOF.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 1998 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+   @bug 4101707
+   @summary Test if fill() will behave correctly at EOF to
+            allow file to grow.
+*/
+
+import java.io.*;
+
+public class GrowAfterEOF {
+    public static void main(String[] args) throws Exception {
+        File input = new File(".", "TestEOFInput.txt");
+        RandomAccessFile rf = new RandomAccessFile(input, "rw");
+        BufferedReader r = new BufferedReader
+            (new InputStreamReader(new FileInputStream(input)));
+
+        // write something
+        rf.writeBytes("a line");
+
+        // read till the end of file
+        while (r.readLine() != null);
+
+        // append to the end of the file
+        rf.seek(rf.length());
+        rf.writeBytes("new line");
+
+        // now try to read again
+        boolean readMore = false;
+        while (r.readLine() != null) {
+            readMore = true;
+        }
+        if (!readMore) {
+            input.delete();
+            throw new Exception("Failed test: unable to read!");
+        } else {
+            input.delete();
+        }
+    }
+}
diff --git a/test/java/io/InputStreamReader/NullCreate.java b/test/java/io/InputStreamReader/NullCreate.java
new file mode 100644
index 0000000..6b2d3a0
--- /dev/null
+++ b/test/java/io/InputStreamReader/NullCreate.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 1998 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 4149935
+ * @summary Create with a null stream should throw an exception
+ */
+
+import java.io.*;
+
+public class NullCreate {
+
+    public static void main(String args[])
+    {
+        try{
+            InputStreamReader osw = new InputStreamReader(null);
+        } catch (NullPointerException e){
+            // No problem - null create argument caught
+            return;
+        }
+        throw new RuntimeException("Create with null did not throw an error");
+    }
+
+}
diff --git a/test/java/io/InputStreamReader/One.java b/test/java/io/InputStreamReader/One.java
new file mode 100644
index 0000000..d7e8322
--- /dev/null
+++ b/test/java/io/InputStreamReader/One.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2001 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+   @bug 4401798
+   @summary Check that single-character reads work properly
+ */
+
+
+import java.io.*;
+
+
+public class One {
+
+    private static abstract class Test {
+
+        InputStreamReader isr;
+        StringBuffer sb;
+        String expect;
+
+        Test(byte[] in, String expect) throws Exception {
+            isr = new InputStreamReader(new ByteArrayInputStream(in), "UTF-8");
+            sb = new StringBuffer(expect.length());
+            this.expect = expect;
+            go();
+        }
+
+        void go() throws Exception {
+            read();
+            if (!expect.equals(sb.toString()))
+                throw new Exception("Expected " + expect
+                                    + ", got " + sb.toString());
+        }
+
+        abstract void read() throws IOException;
+
+    }
+
+
+    private static void test(String expect) throws Exception {
+        byte[] in = expect.getBytes("UTF-8");
+
+        new Test(in, expect) {
+                public void read() throws IOException {
+                    for (;;) {
+                        int c;
+                        if ((c = isr.read()) == -1)
+                            break;
+                        sb.append((char)c);
+                    }
+                }};
+
+        new Test(in, expect) {
+                public void read() throws IOException {
+                    for (;;) {
+                        char[] cb = new char[1];
+                        if (isr.read(cb) == -1)
+                            break;
+                        sb.append(cb[0]);
+                    }
+                }};
+
+        new Test(in, expect) {
+                public void read() throws IOException {
+                    for (;;) {
+                        char[] cb = new char[2];
+                        int n;
+                        if ((n = isr.read(cb)) == -1)
+                            break;
+                        sb.append(cb[0]);
+                        if (n == 2)
+                            sb.append(cb[1]);
+                    }
+                }};
+
+    }
+
+    public static void main(String[] args) throws Exception {
+        test("x");
+        test("xy");
+        test("xyz");
+        test("\ud800\udc00");
+        test("x\ud800\udc00");
+    }
+
+}
diff --git a/test/java/io/InputStreamReader/ReadOffset.java b/test/java/io/InputStreamReader/ReadOffset.java
new file mode 100644
index 0000000..3fcc759
--- /dev/null
+++ b/test/java/io/InputStreamReader/ReadOffset.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2000 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @bug 4399447
+ * @summary Ensure that read offsets work properly
+ */
+
+import java.io.*;
+
+public class ReadOffset {
+
+    public static void main(String[] args) throws Exception {
+        InputStream is
+            = new ByteArrayInputStream("foo bar".getBytes("US-ASCII"));
+        InputStreamReader isr = new InputStreamReader(is, "US-ASCII");
+        char[] cbuf = new char[100];
+        int n;
+        System.out.println(n = isr.read(cbuf, 0, 3));
+        System.out.println(isr.read(cbuf, n, cbuf.length - n));
+    }
+
+}