提交 9c88e5ef 编写于 作者: B Brian Anderson

test: Refactor the crateresolve tests

Keep their aux builds from stomping on each other
上级 5dd1677b
#[link(name = "crateresolve",
#[link(name = "crateresolve1",
vers = "0.1")];
#[crate_type = "lib"];
......
#[link(name = "crateresolve",
#[link(name = "crateresolve1",
vers = "0.2")];
#[crate_type = "lib"];
......
#[link(name = "crateresolve",
#[link(name = "crateresolve1",
vers = "0.3")];
#[crate_type = "lib"];
......
#[link(name = "crateresolve2",
vers = "0.1")];
#[crate_type = "lib"];
fn f() -> int { 10 }
#[link(name = "crateresolve2",
vers = "0.2")];
#[crate_type = "lib"];
fn f() -> int { 20 }
#[link(name = "crateresolve2",
vers = "0.3")];
#[crate_type = "lib"];
fn f() -> int { 30 }
// aux-build:crateresolve-1.rs
// aux-build:crateresolve-2.rs
// aux-build:crateresolve-3.rs
// error-pattern:multiple matching crates for `crateresolve`
use crateresolve;
fn main() {
}
// aux-build:crateresolve1-1.rs
// aux-build:crateresolve1-2.rs
// aux-build:crateresolve1-3.rs
// error-pattern:multiple matching crates for `crateresolve1`
use crateresolve1;
fn main() {
}
// aux-build:crateresolve2-1.rs
// aux-build:crateresolve2-2.rs
// aux-build:crateresolve2-3.rs
// error-pattern:using multiple versions of crate `crateresolve2`
use crateresolve2(vers = "0.1");
mod m {
use crateresolve2(vers = "0.2");
}
fn main() {
let x: int = false;
}
// xfail-fast
// aux-build:crateresolve-1.rs
// aux-build:crateresolve-2.rs
// aux-build:crateresolve-3.rs
use crateresolve(vers = "0.2");
fn main() {
assert crateresolve::f() == 20;
}
// xfail-fast
// aux-build:crateresolve1-1.rs
// aux-build:crateresolve1-2.rs
// aux-build:crateresolve1-3.rs
use crateresolve1(vers = "0.2");
fn main() {
assert crateresolve1::f() == 20;
}
// xfail-fast
// xfail-test
// aux-build:crateresolve-1.rs
// aux-build:crateresolve-2.rs
// aux-build:crateresolve-3.rs
// aux-build:crateresolve2-1.rs
// aux-build:crateresolve2-2.rs
// aux-build:crateresolve2-3.rs
mod a {
use crateresolve(vers = "0.1");
fn f() { assert crateresolve::f() == 10; }
use crateresolve2(vers = "0.1");
fn f() { assert crateresolve2::f() == 10; }
}
mod b {
use crateresolve(vers = "0.2");
fn f() { assert crateresolve::f() == 20; }
use crateresolve2(vers = "0.2");
fn f() { assert crateresolve2::f() == 20; }
}
mod c {
use crateresolve(vers = "0.3");
fn f() { assert crateresolve::f() == 30; }
use crateresolve2(vers = "0.3");
fn f() { assert crateresolve2::f() == 30; }
}
fn main() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册