Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/sound/sampled/AudioSystem/DefaultProperties.java
38855 views
1
/*
2
* Copyright (c) 2003, 2020, 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
import java.io.File;
25
26
import com.sun.media.sound.JDK13Services;
27
28
/**
29
* @test
30
* @bug 4776511
31
* @build DefaultProperties
32
* @run main/othervm DefaultProperties
33
* @summary RFE: Setting the default MixerProvider. Test the retrieving and
34
* parsing of properties.
35
*/
36
public class DefaultProperties {
37
38
private static final Class[] lineTypeClasses = {
39
javax.sound.sampled.SourceDataLine.class,
40
javax.sound.sampled.TargetDataLine.class,
41
javax.sound.sampled.Clip.class,
42
javax.sound.sampled.Port.class,
43
};
44
45
public static void main(String[] args) throws Exception {
46
boolean allOk = true;
47
File file = new File(System.getProperty("test.src", "."), "testdata");
48
System.setProperty("java.home", file.getCanonicalPath());
49
50
for (int i = 0; i < lineTypeClasses.length; i++) {
51
Class cls = lineTypeClasses[i];
52
String propertyName = cls.getName();
53
String result;
54
String provClassName;
55
String instanceName;
56
57
// properties file, both provider class name and instance name
58
provClassName = "xyz";
59
instanceName = "123";
60
result = JDK13Services.getDefaultProviderClassName(cls);
61
if (! provClassName.equals(result)) {
62
out("type " + cls + " failed: provider class should be '" +
63
provClassName + "' but is '" + result + "'!");
64
allOk = false;
65
}
66
result = JDK13Services.getDefaultInstanceName(cls);
67
if (! instanceName.equals(result)) {
68
out("type " + cls + " failed: instance name should be '" +
69
instanceName + "' but is '" + result + "'!");
70
allOk = false;
71
}
72
73
// system property, provider class name only, no trailing hash
74
provClassName = "abc";
75
System.setProperty(propertyName, provClassName);
76
result = JDK13Services.getDefaultProviderClassName(cls);
77
if (! provClassName.equals(result)) {
78
out("type " + cls + " failed: provider class should be '" +
79
provClassName + "' but is '" + result + "'!");
80
allOk = false;
81
}
82
result = JDK13Services.getDefaultInstanceName(cls);
83
if (result != null) {
84
out("type " + cls + " failed: instance name should be " +
85
"null but is '" + result + "'!");
86
allOk = false;
87
}
88
89
// system property, provider class name only, trailing hash
90
provClassName = "def";
91
System.setProperty(propertyName, provClassName + "#");
92
result = JDK13Services.getDefaultProviderClassName(cls);
93
if (! provClassName.equals(result)) {
94
out("type " + cls + " failed: provider class should be '" +
95
provClassName + "' but is '" + result + "'!");
96
allOk = false;
97
}
98
result = JDK13Services.getDefaultInstanceName(cls);
99
if (result != null) {
100
out("type " + cls + " failed: instance name should be " +
101
"null but is '" + result + "'!");
102
allOk = false;
103
}
104
105
// system property, instance name only
106
instanceName = "ghi";
107
System.setProperty(propertyName, "#" + instanceName);
108
result = JDK13Services.getDefaultProviderClassName(cls);
109
if (result != null) {
110
out("type " + cls + " failed: provider class should be " +
111
"null but is '" + result + "'!");
112
allOk = false;
113
}
114
result = JDK13Services.getDefaultInstanceName(cls);
115
if (! instanceName.equals(result)) {
116
out("type " + cls + " failed: instance name should be '" +
117
instanceName + "' but is '" + result + "'!");
118
allOk = false;
119
}
120
121
// system property, both provider class and instance name
122
provClassName = "jkl";
123
instanceName = "mno";
124
System.setProperty(propertyName, provClassName + "#" + instanceName);
125
result = JDK13Services.getDefaultProviderClassName(cls);
126
if (! provClassName.equals(result)) {
127
out("type " + cls + " failed: provider class should be '" +
128
provClassName + "' but is '" + result + "'!");
129
allOk = false;
130
}
131
result = JDK13Services.getDefaultInstanceName(cls);
132
if (! instanceName.equals(result)) {
133
out("type " + cls + " failed: instance name should be '" +
134
instanceName + "' but is '" + result + "'!");
135
allOk = false;
136
}
137
138
// system property, empty
139
System.setProperty(propertyName, "");
140
result = JDK13Services.getDefaultProviderClassName(cls);
141
if (result != null) {
142
out("type " + cls + " failed: provider class should be " +
143
"null but is '" + result + "'!");
144
allOk = false;
145
}
146
result = JDK13Services.getDefaultInstanceName(cls);
147
if (result != null) {
148
out("type " + cls + " failed: instance name should be " +
149
"null but is '" + result + "'!");
150
allOk = false;
151
}
152
}
153
if (! allOk) {
154
throw new Exception("Test failed");
155
} else {
156
out("Test passed");
157
}
158
}
159
160
private static void out(String message) {
161
System.out.println(message);
162
}
163
}
164
165