mirror of
https://github.com/rust-lang/cargo
synced 2024-11-05 18:50:39 +00:00
73947e5c3b
The fingerprinting code was erroneously using all sources from a manifest when calculating the fingerprint which meant that sources not yet downloaded were attempted to be fingerprinted. The correct source to fingerprint is located in the SourceId field of the resolved PackageId. Closes #259
68 lines
1.5 KiB
Rust
68 lines
1.5 KiB
Rust
use support::{project, execs};
|
|
use hamcrest::assert_that;
|
|
|
|
fn setup() {
|
|
}
|
|
|
|
test!(plugin_to_the_max {
|
|
let foo = project("foo")
|
|
.file("Cargo.toml", r#"
|
|
[package]
|
|
name = "foo"
|
|
version = "0.0.1"
|
|
authors = []
|
|
|
|
[dependencies.bar]
|
|
path = "../bar"
|
|
"#)
|
|
.file("src/main.rs", r#"
|
|
#![feature(phase)]
|
|
#[phase(plugin)] extern crate bar;
|
|
|
|
fn main() {}
|
|
"#);
|
|
let bar = project("bar")
|
|
.file("Cargo.toml", r#"
|
|
[package]
|
|
name = "bar"
|
|
version = "0.0.1"
|
|
authors = []
|
|
|
|
[[lib]]
|
|
name = "bar"
|
|
plugin = true
|
|
|
|
[dependencies.baz]
|
|
path = "../baz"
|
|
"#)
|
|
.file("src/lib.rs", r#"
|
|
#![feature(plugin_registrar)]
|
|
|
|
extern crate rustc;
|
|
extern crate baz;
|
|
|
|
use rustc::plugin::Registry;
|
|
|
|
#[plugin_registrar]
|
|
pub fn foo(reg: &mut Registry) {
|
|
println!("{}", baz::baz());
|
|
}
|
|
"#);
|
|
let baz = project("baz")
|
|
.file("Cargo.toml", r#"
|
|
[package]
|
|
name = "baz"
|
|
version = "0.0.1"
|
|
authors = []
|
|
|
|
[[lib]]
|
|
name = "baz"
|
|
crate_type = ["dylib"]
|
|
"#)
|
|
.file("src/lib.rs", "pub fn baz() -> int { 1 }");
|
|
bar.build();
|
|
baz.build();
|
|
|
|
assert_that(foo.cargo_process("cargo-build"),
|
|
execs().with_status(0));
|
|
})
|