SymLinks.java revision 3909
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* @test
* @bug 6595866
* @summary Test java.io.File operations with sym links
*/
public class SymLinks {
// files used by the test
/**
* Setup files, directories, and sym links used by test.
*/
static void setup() throws IOException {
// link2link2file -> link2file -> foofile
try {
} finally {
}
// link2link2dir -> link2dir -> dir
// link2link2nobody -> link2nobody -> <does-not-exist>
}
/**
* Remove files, directories, and sym links used by test.
*/
static void cleanup() throws IOException {
if (link2link2file != null)
if (link2link2dir != null)
if (link2nobody != null)
if (link2link2nobody != null)
}
/**
* Creates a sym link source->target
*/
}
/**
* Returns true if the "link" exists and is a sym link.
*/
}
/**
* Returns the last modified time of a sym link.
*/
}
/**
* Returns true if sym links are supported on the file system where
* "dir" exists.
*/
try {
return true;
} catch (UnsupportedOperationException x) {
return false;
} catch (IOException x) {
return false;
}
}
static void assertTrue(boolean v) {
if (!v) throw new RuntimeException("Test failed");
}
static void assertFalse(boolean v) {
assertTrue(!v);
}
}
/**
* Tests go here.
*/
static void go() throws IOException {
// check setup
header("createNewFile");
header("mkdir");
header("delete");
try {
} finally {
}
header("renameTo");
try {
} finally {
}
try {
} finally {
}
header("list");
try {
// access directory by following links
// files that are not directories
} finally {
}
header("isXXX");
// on Windows we test with the DOS hidden attribute set
try {
} finally {
}
}
header("length");
// these tests should follow links
header("lastModified / setLastModified");
// need time to diff between link and file
header("setXXX / canXXX");
if (file.setReadOnly()) {
}
}
if (supportsSymLinks(top)) {
try {
setup();
go();
} finally {
cleanup();
}
}
}
}