Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
eeac871b
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
eeac871b
编写于
11月 21, 2013
作者:
D
dxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8028628: java/nio/channels/FileChannel/Size.java failed once in the same binary run
Reviewed-by: alanb, chegar, mchung, lancea
上级
28b17b74
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
35 addition
and
45 deletion
+35
-45
test/java/nio/channels/FileChannel/Size.java
test/java/nio/channels/FileChannel/Size.java
+35
-45
未找到文件。
test/java/nio/channels/FileChannel/Size.java
浏览文件 @
eeac871b
/*
* Copyright (c) 2000, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 201
3
, 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
...
...
@@ -39,67 +39,57 @@ import java.util.Random;
public
class
Size
{
private
static
Random
generator
=
new
Random
();
private
static
File
blah
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
test
1
();
test
2
();
test
SmallFile
();
test
LargeFile
();
}
private
static
void
test
1
()
throws
Exception
{
blah
=
File
.
createTempFile
(
"blah"
,
null
);
blah
.
deleteOnExit
();
private
static
void
test
SmallFile
()
throws
Exception
{
File
smallFile
=
new
File
(
"smallFileTest"
);
Random
generator
=
new
Random
();
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
long
testSize
=
generator
.
nextInt
(
1000
);
initTestFile
(
blah
,
testSize
);
FileInputStream
fis
=
new
FileInputStream
(
blah
);
FileChannel
c
=
fis
.
getChannel
();
if
(
c
.
size
()
!=
testSize
)
throw
new
RuntimeException
(
"Size failed"
);
c
.
close
();
fis
.
close
();
initTestFile
(
smallFile
,
testSize
);
try
(
FileChannel
c
=
new
FileInputStream
(
smallFile
).
getChannel
())
{
if
(
c
.
size
()
!=
testSize
)
{
throw
new
RuntimeException
(
"Size failed in testSmallFile. "
+
"Expect size "
+
testSize
+
", actual size "
+
c
.
size
());
}
}
}
blah
.
delete
();
smallFile
.
deleteOnExit
();
}
// Test for bug 4563125
private
static
void
test2
()
throws
Exception
{
// Windows and Linux can't handle the really large file sizes for a truncate
// or a positional write required by the test for 4563125
String
osName
=
System
.
getProperty
(
"os.name"
);
if
(
osName
.
startsWith
(
"SunOS"
)
||
osName
.
contains
(
"OS X"
))
{
blah
=
File
.
createTempFile
(
"blah"
,
null
);
private
static
void
testLargeFile
()
throws
Exception
{
File
largeFile
=
new
File
(
"largeFileTest"
);
long
testSize
=
((
long
)
Integer
.
MAX_VALUE
)
*
2
;
initTestFile
(
blah
,
10
);
RandomAccessFile
raf
=
new
RandomAccessFile
(
blah
,
"rw"
);
FileChannel
fc
=
raf
.
getChannel
();
initTestFile
(
largeFile
,
10
);
try
(
FileChannel
fc
=
new
RandomAccessFile
(
largeFile
,
"rw"
).
getChannel
())
{
fc
.
size
();
fc
.
map
(
FileChannel
.
MapMode
.
READ_WRITE
,
testSize
,
10
);
if
(
fc
.
size
()
!=
testSize
+
10
)
throw
new
RuntimeException
(
"Size failed "
+
fc
.
size
());
fc
.
close
();
raf
.
close
();
blah
.
delete
();
if
(
fc
.
size
()
!=
testSize
+
10
)
{
throw
new
RuntimeException
(
"Size failed in testLargeFile. "
+
"Expect size "
+
(
testSize
+
10
)
+
", actual size "
+
fc
.
size
());
}
}
largeFile
.
deleteOnExit
();
}
/**
* Create
s file blah of
specified size in bytes.
* Create
a file with the
specified size in bytes.
*
*/
private
static
void
initTestFile
(
File
blah
,
long
size
)
throws
Exception
{
if
(
blah
.
exists
())
blah
.
delete
();
FileOutputStream
fos
=
new
FileOutputStream
(
blah
);
BufferedWriter
awriter
=
new
BufferedWriter
(
new
OutputStreamWriter
(
fos
,
"8859_1"
));
private
static
void
initTestFile
(
File
f
,
long
size
)
throws
Exception
{
try
(
BufferedWriter
awriter
=
new
BufferedWriter
(
new
OutputStreamWriter
(
new
FileOutputStream
(
f
),
"8859_1"
)))
{
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
awriter
.
write
(
"e"
);
}
awriter
.
flush
();
awriter
.
close
();
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录