Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
64d43be6
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
64d43be6
编写于
7月 16, 2011
作者:
B
Brian Anderson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Sort tests before running them. Issue #428
上级
f010f79a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
57 addition
and
0 deletion
+57
-0
src/lib/test.rs
src/lib/test.rs
+12
-0
src/test/stdtest/test.rs
src/test/stdtest/test.rs
+45
-0
未找到文件。
src/lib/test.rs
浏览文件 @
64d43be6
...
...
@@ -3,6 +3,8 @@
// simplest interface possible for representing and running tests
// while providing a base that other test frameworks may build off of.
import
sort
=
sort
::
ivector
;
export
test_name
;
export
test_fn
;
export
test_desc
;
...
...
@@ -165,6 +167,7 @@ fn write_pretty(&io::writer out, &str word, u8 color) {
fn
filter_tests
(
&
test_opts
opts
,
&
test_desc
[]
tests
)
->
test_desc
[]
{
auto
filtered
=
tests
;
// Remove tests that don't match the test filter
filtered
=
if
(
option
::
is_none
(
opts
.filter
))
{
filtered
}
else
{
...
...
@@ -183,6 +186,7 @@ fn filter_tests(&test_opts opts, &test_desc[] tests) -> test_desc[] {
ivec
::
filter_map
(
filter
,
filtered
)
};
// Maybe pull out the ignored test and unignore them
filtered
=
if
(
!
opts
.run_ignored
)
{
filtered
}
else
{
...
...
@@ -199,6 +203,14 @@ fn = test.fn,
ivec
::
filter_map
(
filter
,
filtered
)
};
// Sort the tests alphabetically
filtered
=
{
fn
lteq
(
&
test_desc
t1
,
&
test_desc
t2
)
->
bool
{
str
::
lteq
(
t1
.name
,
t2
.name
)
}
sort
::
merge_sort
(
lteq
,
filtered
)
};
ret
filtered
;
}
...
...
src/test/stdtest/test.rs
浏览文件 @
64d43be6
...
...
@@ -66,6 +66,51 @@ fn = fn() {},
assert
filtered
.
(
0
)
.ignore
==
false
;
}
#[test]
fn
sort_tests
()
{
auto
opts
=
rec
(
filter
=
option
::
none
,
run_ignored
=
false
);
auto
names
=
~
[
"sha1::test"
,
"int::test_to_str"
,
"int::test_pow"
,
"test::do_not_run_ignored_tests"
,
"test::ignored_tests_result_in_ignored"
,
"test::first_free_arg_should_be_a_filter"
,
"test::parse_ignored_flag"
,
"test::filter_for_ignored_option"
,
"test::sort_tests"
];
auto
tests
=
{
auto
testfn
=
fn
()
{};
auto
tests
=
~
[];
for
(
str
name
in
names
)
{
auto
test
=
rec
(
name
=
name
,
fn
=
testfn
,
ignore
=
false
);
tests
+=
~
[
test
];
}
tests
};
auto
filtered
=
test
::
filter_tests
(
opts
,
tests
);
auto
expected
=
~
[
"int::test_pow"
,
"int::test_to_str"
,
"sha1::test"
,
"test::do_not_run_ignored_tests"
,
"test::filter_for_ignored_option"
,
"test::first_free_arg_should_be_a_filter"
,
"test::ignored_tests_result_in_ignored"
,
"test::parse_ignored_flag"
,
"test::sort_tests"
];
auto
pairs
=
ivec
::
zip
(
expected
,
filtered
);
for
(
tup
(
str
,
test
::
test_desc
)
p
in
pairs
)
{
log_err
#
fmt
(
"e: %s a: %s"
,
p
._0
,
p
._1.name
);
assert
p
._0
==
p
._1.name
;
}
}
// Local Variables:
// mode: rust;
// fill-column: 78;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录