Skip to content
This repository was archived by the owner on Nov 24, 2023. It is now read-only.

Commit df678eb

Browse files
authored
Merge pull request #99 from alexcrichton/some-tests
Add tests for some edition lints
2 parents 5649ad4 + f1f2bbd commit df678eb

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

cargo-fix/tests/all/edition_upgrade.rs

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,127 @@ fn prepare_for_2018() {
4444
assert!(p.read("src/lib.rs").contains("use crate::foo::FOO;"));
4545
assert!(p.read("src/lib.rs").contains("let x = crate::foo::FOO;"));
4646
}
47+
48+
#[test]
49+
fn local_paths() {
50+
let p = project()
51+
.file(
52+
"src/lib.rs",
53+
r#"
54+
#![feature(rust_2018_preview)]
55+
56+
use test::foo;
57+
58+
mod test {
59+
pub fn foo() {}
60+
}
61+
62+
pub fn f() {
63+
foo();
64+
}
65+
"#,
66+
)
67+
.build();
68+
69+
let stderr = "\
70+
[CHECKING] foo v0.1.0 (CWD)
71+
[FIXING] src/lib.rs (1 fix)
72+
[FINISHED] dev [unoptimized + debuginfo]
73+
";
74+
p.expect_cmd("cargo-fix fix --prepare-for 2018")
75+
.stdout("")
76+
.stderr(stderr)
77+
.run();
78+
79+
println!("{}", p.read("src/lib.rs"));
80+
assert!(p.read("src/lib.rs").contains("use crate::test::foo;"));
81+
}
82+
83+
#[test]
84+
fn local_paths_no_fix() {
85+
let p = project()
86+
.file(
87+
"src/lib.rs",
88+
r#"
89+
use test::foo;
90+
91+
mod test {
92+
pub fn foo() {}
93+
}
94+
95+
pub fn f() {
96+
foo();
97+
}
98+
"#,
99+
)
100+
.build();
101+
102+
let stderr = "\
103+
[CHECKING] foo v0.1.0 (CWD)
104+
[FINISHED] dev [unoptimized + debuginfo]
105+
";
106+
p.expect_cmd("cargo-fix fix --prepare-for 2018")
107+
.stdout("")
108+
.stderr(stderr)
109+
.run();
110+
}
111+
112+
#[test]
113+
fn upgrade_extern_crate() {
114+
let p = project()
115+
.file(
116+
"Cargo.toml",
117+
r#"
118+
cargo-features = ["edition"]
119+
120+
[package]
121+
name = "foo"
122+
version = "0.1.0"
123+
edition = '2018'
124+
125+
[workspace]
126+
127+
[dependencies]
128+
bar = { path = 'bar' }
129+
"#,
130+
)
131+
.file(
132+
"src/lib.rs",
133+
r#"
134+
#![warn(rust_2018_migration)]
135+
136+
extern crate bar;
137+
138+
use bar::bar;
139+
140+
pub fn foo() {
141+
::bar::bar();
142+
bar();
143+
}
144+
"#,
145+
)
146+
.file(
147+
"bar/Cargo.toml",
148+
r#"
149+
[package]
150+
name = "bar"
151+
version = "0.1.0"
152+
"#,
153+
)
154+
.file("bar/src/lib.rs", "pub fn bar() {}")
155+
.build();
156+
157+
let stderr = "\
158+
[CHECKING] bar v0.1.0 (CWD/bar)
159+
[CHECKING] foo v0.1.0 (CWD)
160+
[FIXING] src/lib.rs (1 fix)
161+
[FINISHED] dev [unoptimized + debuginfo]
162+
";
163+
p.expect_cmd("cargo-fix fix")
164+
.stdout("")
165+
.stderr(stderr)
166+
.run();
167+
168+
println!("{}", p.read("src/lib.rs"));
169+
assert!(!p.read("src/lib.rs").contains("extern crate"));
170+
}

0 commit comments

Comments
 (0)