Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
fca6dbd9
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,发现更多精彩内容 >>
提交
fca6dbd9
编写于
4月 27, 2022
作者:
J
Joshua Nelson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add tests for fixed bugs
上级
0da0a219
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
40 addition
and
4 deletion
+40
-4
src/bootstrap/builder.rs
src/bootstrap/builder.rs
+4
-0
src/bootstrap/builder/tests.rs
src/bootstrap/builder/tests.rs
+36
-4
未找到文件。
src/bootstrap/builder.rs
浏览文件 @
fca6dbd9
...
...
@@ -348,7 +348,11 @@ fn run(v: &[StepDescription], builder: &Builder<'_>, paths: &[PathBuf]) {
eprintln!
(
"note: if you are adding a new Step to bootstrap itself, make sure you register it with `describe!`"
);
#[cfg(not(test))]
std
::
process
::
exit
(
1
);
#[cfg(test)]
// so we can use #[should_panic]
panic!
()
}
}
}
...
...
src/bootstrap/builder/tests.rs
浏览文件 @
fca6dbd9
...
...
@@ -3,7 +3,11 @@
use
std
::
thread
;
fn
configure
(
cmd
:
&
str
,
host
:
&
[
&
str
],
target
:
&
[
&
str
])
->
Config
{
let
mut
config
=
Config
::
parse
(
&
[
cmd
.to_owned
()]);
configure_with_args
(
&
[
cmd
.to_owned
()],
host
,
target
)
}
fn
configure_with_args
(
cmd
:
&
[
String
],
host
:
&
[
&
str
],
target
:
&
[
&
str
])
->
Config
{
let
mut
config
=
Config
::
parse
(
cmd
);
// don't save toolstates
config
.save_toolstates
=
None
;
config
.dry_run
=
true
;
...
...
@@ -46,11 +50,39 @@ fn run_build(paths: &[PathBuf], config: Config) -> Cache {
builder
.cache
}
fn
check_cli
<
const
N
:
usize
>
(
paths
:
[
&
str
;
N
])
{
run_build
(
&
paths
.map
(
PathBuf
::
from
),
configure_with_args
(
&
paths
.map
(
String
::
from
),
&
[
"A"
],
&
[
"A"
]),
);
}
#[test]
fn
test_valid
()
{
// make sure multi suite paths are accepted
check_cli
([
"test"
,
"src/test/ui/attr-start.rs"
,
"src/test/ui/attr-shebang.rs"
]);
}
#[test]
#[should_panic]
fn
test_invalid
()
{
// make sure that invalid paths are caught, even when combined with valid paths
check_cli
([
"test"
,
"library/std"
,
"x"
]);
}
#[test]
fn
test_intersection
()
{
let
set
=
PathSet
::
Set
([
"library/core"
,
"library/alloc"
,
"library/std"
]
.into_iter
()
.map
(
TaskPath
::
parse
)
.collect
());
let
subset
=
set
.intersection
(
&
[
Path
::
new
(
"library/core"
),
Path
::
new
(
"library/alloc"
),
Path
::
new
(
"library/stdarch"
)],
None
);
assert_eq!
(
subset
,
PathSet
::
Set
([
"library/core"
,
"library/alloc"
]
.into_iter
()
.map
(
TaskPath
::
parse
)
.collect
()));
let
set
=
PathSet
::
Set
(
[
"library/core"
,
"library/alloc"
,
"library/std"
]
.into_iter
()
.map
(
TaskPath
::
parse
)
.collect
(),
);
let
mut
command_paths
=
vec!
[
Path
::
new
(
"library/core"
),
Path
::
new
(
"library/alloc"
),
Path
::
new
(
"library/stdarch"
)];
let
subset
=
set
.intersection_removing_matches
(
&
mut
command_paths
,
None
);
assert_eq!
(
subset
,
PathSet
::
Set
([
"library/core"
,
"library/alloc"
]
.into_iter
()
.map
(
TaskPath
::
parse
)
.collect
())
);
assert_eq!
(
command_paths
,
vec!
[
Path
::
new
(
"library/stdarch"
)]);
}
#[test]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录