in tools/hakari/src/toml_out.rs [526:567]
fn alternate_registries() {
let fixture = JsonFixture::metadata_alternate_registries();
let mut builder =
HakariBuilder::new(fixture.graph(), None).expect("builder initialization succeeded");
builder.set_output_single_feature(true);
let hakari = builder.compute();
// Not plugging in the registry should generate an error.
let output_options = HakariOutputOptions::new();
hakari
.to_toml_string(&output_options)
.expect_err("no alternate registry specified => error");
let mut builder =
HakariBuilder::new(fixture.graph(), None).expect("builder initialization succeeded");
builder.set_output_single_feature(true);
builder.add_registries([("alt-registry", METADATA_ALTERNATE_REGISTRY_URL)]);
let hakari = builder.compute();
let output = hakari
.to_toml_string(&output_options)
.expect("alternate registry specified => success");
static MATCH_STRINGS: &[&str] = &[
// Two copies of serde, one from the main registry and one from the alt
r#"serde-e7e45184a9cd0878 = { package = "serde", version = "1", registry = "alt-registry", default-features = false, "#,
r#"serde-dff4ba8e3ae991db = { package = "serde", version = "1", default-features = false, "#,
// serde_derive only in the alt registry
r#"serde_derive = { version = "1", registry = "alt-registry" }"#,
// itoa only from the main registry
r#"itoa = { version = "0.4", default-features = false }"#,
];
for &needle in MATCH_STRINGS {
assert!(
output.contains(needle),
"output did not contain string '{}', actual output follows:\n***\n{}\n",
needle,
output
);
}
}