Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FIY695
jenkins
提交
30f00b11
J
jenkins
项目概览
FIY695
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
30f00b11
编写于
12月 09, 2014
作者:
J
Jesse Glick
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
For RunMapTest to be Groovy was pointless and aggravating.
上级
cce358bf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
74 addition
and
0 deletion
+74
-0
test/src/test/java/hudson/model/RunMapTest.java
test/src/test/java/hudson/model/RunMapTest.java
+74
-0
未找到文件。
test/src/test/
groovy/hudson/model/RunMapTest.groovy
→
test/src/test/
java/hudson/model/RunMapTest.java
浏览文件 @
30f00b11
package
hudson.model
package
hudson.model
;
import
org.jvnet.hudson.test.Bug
import
org.jvnet.hudson.test.HudsonTestCase
import
org.jvnet.hudson.test.SleepBuilder
import
org.jvnet.hudson.test.TestEnvironment
import
org.jvnet.hudson.test.Bug
;
import
org.jvnet.hudson.test.HudsonTestCase
;
import
org.jvnet.hudson.test.SleepBuilder
;
import
org.jvnet.hudson.test.TestEnvironment
;
import
javax.xml.transform.stream.StreamSource
import
javax.xml.transform.stream.StreamSource
;
/**
*
*
* @author Kohsuke Kawaguchi
*/
class
RunMapTest
extends
HudsonTestCase
{
public
class
RunMapTest
extends
HudsonTestCase
{
/**
* Makes sure that reloading the project while a build is in progress won't clobber that in-progress build.
*/
@Bug
(
12318
)
public
void
testReloadWhileBuildIsInProgress
()
{
def
p
=
createFreeStyleProject
()
public
void
testReloadWhileBuildIsInProgress
()
throws
Exception
{
FreeStyleProject
p
=
createFreeStyleProject
();
// want some completed build records
def
b1
=
assertBuildStatusSuccess
(
p
.
scheduleBuild2
(
0
))
FreeStyleBuild
b1
=
assertBuildStatusSuccess
(
p
.
scheduleBuild2
(
0
));
// now create a build that hangs until we signal the OneShotEvent
p
.
buildersList
.
add
(
new
SleepBuilder
(
9999999
));
def
b2
=
p
.
scheduleBuild2
(
0
).
waitForStart
()
assertEquals
2
,
b2
.
number
p
.
getBuildersList
()
.
add
(
new
SleepBuilder
(
9999999
));
FreeStyleBuild
b2
=
p
.
scheduleBuild2
(
0
).
waitForStart
();
assertEquals
(
2
,
b2
.
number
);
// now reload
p
.
updateByXml
(
new
StreamSource
(
p
.
configFile
.
file
))
p
.
updateByXml
(
new
StreamSource
(
p
.
getConfigFile
().
getFile
()));
// we should still see the same object for #2 because that's in progress
assertSame
p
.
getBuildByNumber
(
b2
.
number
),
b2
assertSame
(
p
.
getBuildByNumber
(
b2
.
number
),
b2
);
// build #1 should be reloaded
assertNotSame
b1
,
p
.
getBuildByNumber
(
1
)
assertNotSame
(
b1
,
p
.
getBuildByNumber
(
1
));
// and reference gets fixed up
b1
=
p
.
getBuildByNumber
(
1
)
assertSame
b1
.
nextBuild
,
b2
assertSame
b2
.
previousBuild
,
b1
b1
=
p
.
getBuildByNumber
(
1
)
;
assertSame
(
b1
.
getNextBuild
(),
b2
);
assertSame
(
b2
.
getPreviousBuild
(),
b1
);
}
/**
* Testing if the lazy loading can gracefully tolerate a RuntimeException during unmarshalling.
*/
@Bug
(
15533
)
public
void
testRuntimeExceptionInUnmarshalling
()
{
def
p
=
createFreeStyleProject
()
def
b
=
assertBuildStatusSuccess
(
p
.
scheduleBuild2
(
0
))
public
void
testRuntimeExceptionInUnmarshalling
()
throws
Exception
{
FreeStyleProject
p
=
createFreeStyleProject
();
FreeStyleBuild
b
=
assertBuildStatusSuccess
(
p
.
scheduleBuild2
(
0
));
b
.
addAction
(
new
BombAction
());
b
.
save
()
b
.
save
()
;
p
.
_getRuns
().
purgeCache
()
b
=
p
.
getBuildByNumber
(
b
.
number
)
p
.
_getRuns
().
purgeCache
()
;
b
=
p
.
getBuildByNumber
(
b
.
number
)
;
// Original test assumed that b == null, but after JENKINS-21024 this is no longer true,
// so this may not really be testing anything interesting:
assert
b
!=
null
assert
b
.
getAction
(
BombAction
.
class
)
==
null
assert
bombed
assert
NotNull
(
b
);
assert
Null
(
b
.
getAction
(
BombAction
.
class
));
assert
True
(
bombed
);
}
public
static
class
BombAction
extends
InvisibleAction
{
public
Object
readResolve
()
{
TestEnvironment
.
get
().
testCase
.
bombed
=
true
((
RunMapTest
)
TestEnvironment
.
get
().
testCase
).
bombed
=
true
;
throw
new
NullPointerException
();
}
}
boolean
bombed
;
private
boolean
bombed
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录