diff options
author | Tom Tromey <tromey@gcc.gnu.org> | 2005-07-16 00:30:23 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2005-07-16 00:30:23 +0000 |
commit | f911ba985aa7fe0096c386c5be385ac5825ea527 (patch) | |
tree | a0b991cf5866ae1d616639b906ac001811d74508 /libjava/classpath/test/java.io/FileTest.java | |
parent | 6f4434b39b261de5317dc81ddfdd94d2e1d62b11 (diff) | |
download | gcc-f911ba985aa7fe0096c386c5be385ac5825ea527.zip gcc-f911ba985aa7fe0096c386c5be385ac5825ea527.tar.gz gcc-f911ba985aa7fe0096c386c5be385ac5825ea527.tar.bz2 |
Initial revision
From-SVN: r102074
Diffstat (limited to 'libjava/classpath/test/java.io/FileTest.java')
-rw-r--r-- | libjava/classpath/test/java.io/FileTest.java | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/libjava/classpath/test/java.io/FileTest.java b/libjava/classpath/test/java.io/FileTest.java new file mode 100644 index 0000000..838b99e --- /dev/null +++ b/libjava/classpath/test/java.io/FileTest.java @@ -0,0 +1,205 @@ +/************************************************************************* +/* File.java -- Tests File class +/* +/* 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, version 2. (see COPYING) +/* +/* 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 FileTest +{ + +static PrintWriter pw; + +public static void +dumpFile(File f) throws IOException +{ + pw.println("Name: " + f.getName()); + pw.println("Parent: " + f.getParent()); + pw.println("Path: " + f.getPath()); + pw.println("Absolute: " + f.getAbsolutePath()); + pw.println("Canonical: " + f.getCanonicalPath()); + pw.println("String: " + f.toString()); +} + +public static void +deleteTempDirs() throws IOException +{ + File f = new File("tempfiletest/tmp/tmp"); + if (!f.delete()) + throw new IOException("Could not delete " + f.getPath()); + + f = new File("tempfiletest/tmp"); + if (!f.delete()) + throw new IOException("Could not delete " + f.getPath()); + + f = new File("tempfiletest/"); + if (!f.delete()) + throw new IOException("Could not delete " + f.getPath()); +} + +public static void main(String[] argv) +{ + System.out.println("Started test of File"); + + // This test writes a bunch of things to a file. That file should + // be "diff-ed" against one generated when this test is run against + // the JDK java.io package. + System.out.println("Test 1: Path Operations Test"); + try + { + pw = new PrintWriter(new OutputStreamWriter(new + FileOutputStream("./file-test.out"))); + + dumpFile(new File("/")); + dumpFile(new File("~arenn/foo")); + dumpFile(new File("foo")); + dumpFile(new File("../../../jcl/")); + dumpFile(new File("/tmp/bar.txt")); + dumpFile(new File("/usr")); + dumpFile(new File("../..")); + pw.flush(); + + File f = new File("gimme"); + if (f.isAbsolute()) + throw new IOException("isAbsolute() failed"); + + f = new File("/etc/services"); + if (!f.isFile()) + throw new IOException("isFile() failed"); + + pw.println("length: " + f.length()); + pw.println("lastModified: " + f.lastModified()); + pw.println("hashCode: " + f.hashCode()); + + f = new File("/etc/"); + if (!f.isDirectory()) + throw new IOException("isDirectory() failed"); + + pw.close(); + System.out.println("PASSED: Conditionally Passed Path Operations Test"); + } + catch(IOException e) + { + System.out.println("FAILED: Path Operations Test: " + e); + pw.close(); + } + + System.out.println("Test 2: File/Directory Manipulation Test"); + try + { + File f = new File("filetest"); + if (!f.exists()) + throw new IOException("The filetest directory doesn't exist"); + + String[] filelist = f.list(); + if ((filelist == null) || (filelist.length != 3)) + throw new IOException("Failed to read directory list"); + + for (int i = 0; i < filelist.length; i++) + System.out.println(filelist[i]); + + System.out.println("Listing /etc/"); + f = new File("/etc/"); + filelist = f.list(); + for (int i = 0; i < filelist.length; i++) + System.out.println(filelist[i]); + + f = new File("tempfiletest/tmp/tmp"); + if (!f.mkdirs()) + throw new IOException("Failed to create directories: " + f.getPath()); + + deleteTempDirs(); + + f = new File("tempfiletest/tmp/tmp/"); + if (!f.mkdirs()) + throw new IOException("Failed to create directories: " + f.getPath()); + + deleteTempDirs(); + + //f = File.createTempFile("tempfile#old", new File(".")); + f = new File("000000"); + + if (!f.renameTo(new File("tempfiletemp"))) + throw new IOException("Failed to rename file: " + f.getPath()); + + if (!f.delete()) + throw new IOException("Failed to delete file: " + f.getPath()); + + System.out.println("PASSED: File/Directory Manipulation Test"); + } + catch(IOException e) + { + System.out.println("FAILED: File/Directory Manipulation Test: " + e); + } + + System.out.println("Test 3: Read/Write Permissions Test"); + try + { + if ((new File("/")).canWrite() == true) + throw new IOException("Permission to write / unexpectedly"); + + if ((new File("/etc/services")).canRead() == false) + throw new IOException("No permission to read /etc/services"); + + System.out.println("PASSED: Read/Write Permissions Test"); + } + catch (IOException e) + { + System.out.println("FAILED: Read/Write Permissions Test: " + e); + } + + System.out.println("Test 4: Name Comparison Tests"); + try + { + File f1, f2; + + f1 = new File("/etc/"); + f2 = new File("/etc/"); + if (!f1.equals(f2)) + throw new IOException(f1 + " " + f2); + + f2 = new File("/etc"); + if (f1.equals(f2)) + throw new IOException(f1 + " " + f2); +/* + f1 = new File("a"); + f2 = new File("b"); + if (f1.compareTo(f2) >= 0) + throw new IOException(f1 + " " + f2); + + f1 = new File("z"); + f2 = new File("y"); + if (f1.compareTo(f2) <= 0) + throw new IOException(f1 + " " + f2); + + f1 = new File("../../jcl/"); + f2 = new File(".././.././jcl/."); + if (f1.compareTo(f2) != 0) + throw new IOException(f1 + " " + f2); +*/ + System.out.println("PASSED: Name Comparison Tests"); + } + catch (IOException e) + { + System.out.println("FAILED: Name Comparison Tests: " + e); + } + + System.out.println("Finished test of File"); +} +} + |