mirror of
https://github.com/corda/corda.git
synced 2025-01-01 02:36:44 +00:00
9bb3d6b972
git-subtree-dir: sgx-jvm/avian git-subtree-mainline:f978eab8d1
git-subtree-split:09e4fe60d0
101 lines
2.6 KiB
Java
101 lines
2.6 KiB
Java
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
|
|
public class Files {
|
|
private static final boolean IsWindows
|
|
= System.getProperty("os.name").equals("Windows");
|
|
|
|
private static void expect(boolean v) {
|
|
if (! v) throw new RuntimeException();
|
|
}
|
|
|
|
private static void isAbsoluteTest(boolean absolutePath) {
|
|
File file = new File("test.txt");
|
|
if (absolutePath) {
|
|
file = file.getAbsoluteFile();
|
|
}
|
|
|
|
boolean isAbsolute = file.isAbsolute();
|
|
|
|
if (absolutePath) {
|
|
expect(isAbsolute);
|
|
} else {
|
|
expect(!isAbsolute);
|
|
}
|
|
|
|
}
|
|
|
|
private static void setExecutableTestWithPermissions(boolean executable)
|
|
throws Exception
|
|
{
|
|
File file = File.createTempFile("avian.", null);
|
|
try {
|
|
file.setExecutable(executable);
|
|
if (executable) {
|
|
expect(file.canExecute());
|
|
} else {
|
|
// Commented out because this will fail on Windows - both on Avian and on OpenJDK
|
|
// The implementation for Windows considers canExecute() to be the same as canRead()
|
|
// expect(!file.canExecute());
|
|
}
|
|
} finally {
|
|
expect(file.delete());
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args) throws Exception {
|
|
isAbsoluteTest(true);
|
|
isAbsoluteTest(false);
|
|
setExecutableTestWithPermissions(true);
|
|
setExecutableTestWithPermissions(false);
|
|
|
|
{ File f = new File("test.txt");
|
|
f.createNewFile();
|
|
expect(! f.createNewFile());
|
|
f.delete();
|
|
}
|
|
|
|
{ File f = new File("test.txt");
|
|
FileOutputStream out = new FileOutputStream(f);
|
|
try {
|
|
byte[] message = "hello, world!\n".getBytes();
|
|
out.write(message);
|
|
out.close();
|
|
|
|
expect(f.lastModified() > 0);
|
|
|
|
FileInputStream in = new FileInputStream(f);
|
|
try {
|
|
expect(in.available() == message.length);
|
|
|
|
for (int i = 0; i < message.length; ++i) {
|
|
in.read();
|
|
expect(in.available() == message.length - i - 1);
|
|
}
|
|
|
|
expect(in.read() == -1);
|
|
expect(in.available() == 0);
|
|
} finally {
|
|
in.close();
|
|
}
|
|
} finally {
|
|
f.delete();
|
|
}
|
|
}
|
|
|
|
if(IsWindows) {
|
|
expect(new File("/c:\\test").getPath().equals("c:\\test"));
|
|
} else {
|
|
expect(new File("/c:\\test").getPath().equals("/c:\\test"));
|
|
}
|
|
|
|
expect(new File("foo/bar").getParent().equals("foo"));
|
|
expect(new File("foo/bar/").getParent().equals("foo"));
|
|
expect(new File("foo/bar//").getParent().equals("foo"));
|
|
|
|
expect(new File("foo/nonexistent-directory").listFiles() == null);
|
|
}
|
|
|
|
}
|