Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
b91a43a4
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b91a43a4
编写于
10月 15, 2013
作者:
M
mgerdin
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
42d36526
911fa9dc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
111 addition
and
4 deletion
+111
-4
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+6
-4
test/gc/arguments/TestHeapFreeRatio.java
test/gc/arguments/TestHeapFreeRatio.java
+105
-0
未找到文件。
src/share/vm/runtime/arguments.cpp
浏览文件 @
b91a43a4
...
...
@@ -2694,8 +2694,9 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
FLAG_SET_CMDLINE
(
uintx
,
MaxHeapSize
,
(
uintx
)
long_max_heap_size
);
// Xmaxf
}
else
if
(
match_option
(
option
,
"-Xmaxf"
,
&
tail
))
{
int
maxf
=
(
int
)(
atof
(
tail
)
*
100
);
if
(
maxf
<
0
||
maxf
>
100
)
{
char
*
err
;
int
maxf
=
(
int
)(
strtod
(
tail
,
&
err
)
*
100
);
if
(
*
err
!=
'\0'
||
maxf
<
0
||
maxf
>
100
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
"Bad max heap free percentage size: %s
\n
"
,
option
->
optionString
);
...
...
@@ -2705,8 +2706,9 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
}
// Xminf
}
else
if
(
match_option
(
option
,
"-Xminf"
,
&
tail
))
{
int
minf
=
(
int
)(
atof
(
tail
)
*
100
);
if
(
minf
<
0
||
minf
>
100
)
{
char
*
err
;
int
minf
=
(
int
)(
strtod
(
tail
,
&
err
)
*
100
);
if
(
*
err
!=
'\0'
||
minf
<
0
||
minf
>
100
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
"Bad min heap free percentage size: %s
\n
"
,
option
->
optionString
);
...
...
test/gc/arguments/TestHeapFreeRatio.java
0 → 100644
浏览文件 @
b91a43a4
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* 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 TestHeapFreeRatio
* @key gc
* @bug 8025661
* @summary Test parsing of -Xminf and -Xmaxf
* @library /testlibrary
* @run main/othervm TestHeapFreeRatio
*/
import
com.oracle.java.testlibrary.*
;
public
class
TestHeapFreeRatio
{
enum
Validation
{
VALID
,
MIN_INVALID
,
MAX_INVALID
,
COMBINATION_INVALID
}
private
static
void
testMinMaxFreeRatio
(
String
min
,
String
max
,
Validation
type
)
throws
Exception
{
ProcessBuilder
pb
=
ProcessTools
.
createJavaProcessBuilder
(
"-Xminf"
+
min
,
"-Xmaxf"
+
max
,
"-version"
);
OutputAnalyzer
output
=
new
OutputAnalyzer
(
pb
.
start
());
switch
(
type
)
{
case
VALID:
output
.
shouldNotContain
(
"Error"
);
output
.
shouldHaveExitValue
(
0
);
break
;
case
MIN_INVALID:
output
.
shouldContain
(
"Bad min heap free percentage size: -Xminf"
+
min
);
output
.
shouldContain
(
"Error"
);
output
.
shouldHaveExitValue
(
1
);
break
;
case
MAX_INVALID:
output
.
shouldContain
(
"Bad max heap free percentage size: -Xmaxf"
+
max
);
output
.
shouldContain
(
"Error"
);
output
.
shouldHaveExitValue
(
1
);
break
;
case
COMBINATION_INVALID:
output
.
shouldContain
(
"must be less than or equal to MaxHeapFreeRatio"
);
output
.
shouldContain
(
"Error"
);
output
.
shouldHaveExitValue
(
1
);
break
;
default
:
throw
new
IllegalStateException
(
"Must specify expected validation type"
);
}
System
.
out
.
println
(
output
.
getOutput
());
}
public
static
void
main
(
String
args
[])
throws
Exception
{
testMinMaxFreeRatio
(
"0.1"
,
"0.5"
,
Validation
.
VALID
);
testMinMaxFreeRatio
(
".1"
,
".5"
,
Validation
.
VALID
);
testMinMaxFreeRatio
(
"0.5"
,
"0.5"
,
Validation
.
VALID
);
testMinMaxFreeRatio
(
"-0.1"
,
"0.5"
,
Validation
.
MIN_INVALID
);
testMinMaxFreeRatio
(
"1.1"
,
"0.5"
,
Validation
.
MIN_INVALID
);
testMinMaxFreeRatio
(
"=0.1"
,
"0.5"
,
Validation
.
MIN_INVALID
);
testMinMaxFreeRatio
(
"0.1f"
,
"0.5"
,
Validation
.
MIN_INVALID
);
testMinMaxFreeRatio
(
"INVALID"
,
"0.5"
,
Validation
.
MIN_INVALID
);
testMinMaxFreeRatio
(
"2147483647"
,
"0.5"
,
Validation
.
MIN_INVALID
);
testMinMaxFreeRatio
(
"0.1"
,
"-0.5"
,
Validation
.
MAX_INVALID
);
testMinMaxFreeRatio
(
"0.1"
,
"1.5"
,
Validation
.
MAX_INVALID
);
testMinMaxFreeRatio
(
"0.1"
,
"0.5f"
,
Validation
.
MAX_INVALID
);
testMinMaxFreeRatio
(
"0.1"
,
"=0.5"
,
Validation
.
MAX_INVALID
);
testMinMaxFreeRatio
(
"0.1"
,
"INVALID"
,
Validation
.
MAX_INVALID
);
testMinMaxFreeRatio
(
"0.1"
,
"2147483647"
,
Validation
.
MAX_INVALID
);
testMinMaxFreeRatio
(
"0.5"
,
"0.1"
,
Validation
.
COMBINATION_INVALID
);
testMinMaxFreeRatio
(
".5"
,
".10"
,
Validation
.
COMBINATION_INVALID
);
testMinMaxFreeRatio
(
"0.12"
,
"0.100"
,
Validation
.
COMBINATION_INVALID
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录