Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/nio/file/attribute/DosFileAttributeView/Basic.java
41159 views
1
/*
2
* Copyright (c) 2008, 2011, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/* @test
25
* @bug 4313887 6838333
26
* @summary Unit test for java.nio.file.attribute.DosFileAttributeView
27
* @library ../..
28
*/
29
30
import java.nio.file.*;
31
import static java.nio.file.LinkOption.*;
32
import java.nio.file.attribute.*;
33
import java.util.*;
34
import java.io.IOException;
35
36
public class Basic {
37
38
static void check(boolean okay) {
39
if (!okay)
40
throw new RuntimeException("Test failed");
41
}
42
43
// exercise each setter/getter method, leaving all attributes unset
44
static void testAttributes(DosFileAttributeView view) throws IOException {
45
view.setReadOnly(true);
46
check(view.readAttributes().isReadOnly());
47
view.setReadOnly(false);
48
check(!view.readAttributes().isReadOnly());
49
view.setHidden(true);
50
check(view.readAttributes().isHidden());
51
view.setHidden(false);
52
check(!view.readAttributes().isHidden());
53
view.setArchive(true);
54
check(view.readAttributes().isArchive());
55
view.setArchive(false);
56
check(!view.readAttributes().isArchive());
57
view.setSystem(true);
58
check(view.readAttributes().isSystem());
59
view.setSystem(false);
60
check(!view.readAttributes().isSystem());
61
}
62
63
// set the value of all attributes
64
static void setAll(DosFileAttributeView view, boolean value)
65
throws IOException
66
{
67
view.setReadOnly(value);
68
view.setHidden(value);
69
view.setArchive(value);
70
view.setSystem(value);
71
}
72
73
// read and write FAT attributes
74
static void readWriteTests(Path dir) throws IOException {
75
76
// create "foo" and test that we can read/write each FAT attribute
77
Path file = Files.createFile(dir.resolve("foo"));
78
try {
79
testAttributes(Files.getFileAttributeView(file, DosFileAttributeView.class));
80
81
// Following tests use a symbolic link so skip if not supported
82
if (!TestUtil.supportsLinks(dir))
83
return;
84
85
Path link = dir.resolve("link");
86
Files.createSymbolicLink(link, file);
87
88
// test following links
89
testAttributes(Files.getFileAttributeView(link, DosFileAttributeView.class));
90
91
// test not following links
92
try {
93
try {
94
testAttributes(Files
95
.getFileAttributeView(link, DosFileAttributeView.class, NOFOLLOW_LINKS));
96
} catch (IOException x) {
97
// access to link attributes not supported
98
return;
99
}
100
101
// set all attributes on link
102
// run test on target of link (which leaves them all un-set)
103
// check that attributes of link remain all set
104
setAll(Files
105
.getFileAttributeView(link, DosFileAttributeView.class, NOFOLLOW_LINKS), true);
106
testAttributes(Files
107
.getFileAttributeView(link, DosFileAttributeView.class));
108
DosFileAttributes attrs =
109
Files.getFileAttributeView(link, DosFileAttributeView.class, NOFOLLOW_LINKS)
110
.readAttributes();
111
check(attrs.isReadOnly());
112
check(attrs.isHidden());
113
check(attrs.isArchive());
114
check(attrs.isSystem());
115
setAll(Files
116
.getFileAttributeView(link, DosFileAttributeView.class, NOFOLLOW_LINKS), false);
117
118
// set all attributes on target
119
// run test on link (which leaves them all un-set)
120
// check that attributes of target remain all set
121
setAll(Files.getFileAttributeView(link, DosFileAttributeView.class), true);
122
testAttributes(Files
123
.getFileAttributeView(link, DosFileAttributeView.class, NOFOLLOW_LINKS));
124
attrs = Files.getFileAttributeView(link, DosFileAttributeView.class).readAttributes();
125
check(attrs.isReadOnly());
126
check(attrs.isHidden());
127
check(attrs.isArchive());
128
check(attrs.isSystem());
129
setAll(Files.getFileAttributeView(link, DosFileAttributeView.class), false);
130
} finally {
131
TestUtil.deleteUnchecked(link);
132
}
133
} finally {
134
TestUtil.deleteUnchecked(file);
135
}
136
}
137
138
public static void main(String[] args) throws IOException {
139
// create temporary directory to run tests
140
Path dir = TestUtil.createTemporaryDirectory();
141
142
try {
143
// skip test if DOS file attributes not supported
144
if (!Files.getFileStore(dir).supportsFileAttributeView("dos")) {
145
System.out.println("DOS file attribute not supported.");
146
return;
147
}
148
readWriteTests(dir);
149
} finally {
150
TestUtil.removeAll(dir);
151
}
152
}
153
}
154
155