Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
16679fbf
提交
16679fbf
authored
14 年前
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Test
上级
ab51dbf6
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
70 行增加
和
58 行删除
+70
-58
TestFileSystem.java
h2/src/test/org/h2/test/unit/TestFileSystem.java
+70
-58
没有找到文件。
h2/src/test/org/h2/test/unit/TestFileSystem.java
浏览文件 @
16679fbf
...
...
@@ -204,6 +204,7 @@ public class TestFileSystem extends TestBase {
}
private
void
testRandomAccess
(
String
fsBase
)
throws
Exception
{
StringBuilder
buff
=
new
StringBuilder
();
FileSystem
fs
=
FileSystem
.
getInstance
(
fsBase
);
String
s
=
fs
.
createTempFile
(
fsBase
+
"/tmp"
,
".tmp"
,
false
,
false
);
File
file
=
new
File
(
TestBase
.
BASE_TEST_DIR
+
"/tmp"
);
...
...
@@ -221,66 +222,77 @@ public class TestFileSystem extends TestBase {
f
.
sync
();
Random
random
=
new
Random
(
1
);
int
size
=
getSize
(
100
,
500
);
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
int
pos
=
random
.
nextInt
(
10000
);
switch
(
random
.
nextInt
(
7
))
{
case
0
:
{
pos
=
(
int
)
Math
.
min
(
pos
,
ra
.
length
());
trace
(
"seek "
+
pos
);
f
.
seek
(
pos
);
ra
.
seek
(
pos
);
break
;
}
case
1
:
{
byte
[]
buffer
=
new
byte
[
random
.
nextInt
(
1000
)];
random
.
nextBytes
(
buffer
);
trace
(
"write "
+
buffer
.
length
);
f
.
write
(
buffer
,
0
,
buffer
.
length
);
ra
.
write
(
buffer
,
0
,
buffer
.
length
);
break
;
}
case
2
:
{
f
.
setFileLength
(
pos
);
ra
.
setLength
(
pos
);
if
(
ra
.
getFilePointer
()
>
pos
)
{
f
.
seek
(
0
);
ra
.
seek
(
0
);
try
{
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
int
pos
=
random
.
nextInt
(
10000
);
switch
(
random
.
nextInt
(
7
))
{
case
0
:
{
pos
=
(
int
)
Math
.
min
(
pos
,
ra
.
length
());
trace
(
"seek "
+
pos
);
buff
.
append
(
"seek "
+
pos
+
"\n"
);
f
.
seek
(
pos
);
ra
.
seek
(
pos
);
break
;
}
case
1
:
{
byte
[]
buffer
=
new
byte
[
random
.
nextInt
(
1000
)];
random
.
nextBytes
(
buffer
);
trace
(
"write "
+
buffer
.
length
);
buff
.
append
(
"write "
+
buffer
.
length
+
"\n"
);
f
.
write
(
buffer
,
0
,
buffer
.
length
);
ra
.
write
(
buffer
,
0
,
buffer
.
length
);
break
;
}
case
2
:
{
f
.
setFileLength
(
pos
);
ra
.
setLength
(
pos
);
if
(
ra
.
getFilePointer
()
>
pos
)
{
f
.
seek
(
0
);
ra
.
seek
(
0
);
}
trace
(
"setLength "
+
pos
);
buff
.
append
(
"setLength "
+
pos
+
"\n"
);
break
;
}
case
3
:
{
int
len
=
random
.
nextInt
(
1000
);
len
=
(
int
)
Math
.
min
(
len
,
ra
.
length
()
-
ra
.
getFilePointer
());
byte
[]
b1
=
new
byte
[
len
];
byte
[]
b2
=
new
byte
[
len
];
ra
.
readFully
(
b1
,
0
,
len
);
f
.
readFully
(
b2
,
0
,
len
);
trace
(
"readFully "
+
len
);
buff
.
append
(
"readFully "
+
len
+
"\n"
);
assertEquals
(
b1
,
b2
);
break
;
}
case
4
:
{
trace
(
"getFilePointer"
);
buff
.
append
(
"getFilePointer\n"
);
assertEquals
(
ra
.
getFilePointer
(),
f
.
getFilePointer
());
break
;
}
case
5
:
{
trace
(
"length "
+
ra
.
length
());
buff
.
append
(
"length "
+
ra
.
length
()
+
"\n"
);
assertEquals
(
ra
.
length
(),
f
.
length
());
break
;
}
case
6
:
{
trace
(
"reopen"
);
buff
.
append
(
"reopen\n"
);
f
.
close
();
ra
.
close
();
ra
=
new
RandomAccessFile
(
file
,
"rw"
);
f
=
fs
.
openFileObject
(
s
,
"rw"
);
assertEquals
(
ra
.
length
(),
f
.
length
());
break
;
}
default
:
}
trace
(
"setLength "
+
pos
);
break
;
}
case
3
:
{
int
len
=
random
.
nextInt
(
1000
);
len
=
(
int
)
Math
.
min
(
len
,
ra
.
length
()
-
ra
.
getFilePointer
());
byte
[]
b1
=
new
byte
[
len
];
byte
[]
b2
=
new
byte
[
len
];
ra
.
readFully
(
b1
,
0
,
len
);
f
.
readFully
(
b2
,
0
,
len
);
trace
(
"readFully "
+
len
);
assertEquals
(
b1
,
b2
);
break
;
}
case
4
:
{
trace
(
"getFilePointer"
);
assertEquals
(
ra
.
getFilePointer
(),
f
.
getFilePointer
());
break
;
}
case
5
:
{
trace
(
"length "
+
ra
.
length
());
assertEquals
(
ra
.
length
(),
f
.
length
());
break
;
}
case
6
:
{
trace
(
"reopen"
);
f
.
close
();
ra
.
close
();
ra
=
new
RandomAccessFile
(
file
,
"rw"
);
f
=
fs
.
openFileObject
(
s
,
"rw"
);
assertEquals
(
ra
.
length
(),
f
.
length
());
break
;
}
default
:
}
}
catch
(
Exception
e
)
{
fail
(
"Exception: "
+
e
+
"\n"
+
buff
.
toString
());
}
f
.
close
();
ra
.
close
();
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论