mirror of
https://github.com/rust-lang/cargo
synced 2024-08-25 10:35:53 +00:00
parent
dd761226d9
commit
915b49d969
|
@ -283,7 +283,12 @@ impl SourceId {
|
|||
Ok(p) => p,
|
||||
Err(()) => panic!("path sources cannot be remote"),
|
||||
};
|
||||
Ok(Box::new(RegistrySource::local(self, &path, config)))
|
||||
Ok(Box::new(RegistrySource::local(
|
||||
self,
|
||||
&path,
|
||||
yanked_whitelist,
|
||||
config,
|
||||
)))
|
||||
}
|
||||
Kind::Directory => {
|
||||
let path = match self.inner.url.to_file_path() {
|
||||
|
|
|
@ -404,7 +404,12 @@ impl<'cfg> RegistrySource<'cfg> {
|
|||
)
|
||||
}
|
||||
|
||||
pub fn local(source_id: SourceId, path: &Path, config: &'cfg Config) -> RegistrySource<'cfg> {
|
||||
pub fn local(
|
||||
source_id: SourceId,
|
||||
path: &Path,
|
||||
yanked_whitelist: &HashSet<PackageId>,
|
||||
config: &'cfg Config,
|
||||
) -> RegistrySource<'cfg> {
|
||||
let name = short_name(source_id);
|
||||
let ops = local::LocalRegistry::new(path, config, &name);
|
||||
RegistrySource::new(
|
||||
|
@ -412,7 +417,7 @@ impl<'cfg> RegistrySource<'cfg> {
|
|||
config,
|
||||
&name,
|
||||
Box::new(ops),
|
||||
&HashSet::new(),
|
||||
yanked_whitelist,
|
||||
false,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ use std::fs::{self, File};
|
|||
use std::io::prelude::*;
|
||||
|
||||
use crate::support::paths::{self, CargoPathExt};
|
||||
use crate::support::registry::Package;
|
||||
use crate::support::registry::{registry_path, Package};
|
||||
use crate::support::{basic_manifest, project};
|
||||
|
||||
fn setup() {
|
||||
|
@ -61,6 +61,45 @@ fn simple() {
|
|||
p.cargo("test").run();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn depend_on_yanked() {
|
||||
setup();
|
||||
Package::new("bar", "0.0.1").local(true).publish();
|
||||
|
||||
let p = project()
|
||||
.file(
|
||||
"Cargo.toml",
|
||||
r#"
|
||||
[project]
|
||||
name = "foo"
|
||||
version = "0.0.1"
|
||||
authors = []
|
||||
|
||||
[dependencies]
|
||||
bar = "0.0.1"
|
||||
"#,
|
||||
)
|
||||
.file("src/lib.rs", "")
|
||||
.build();
|
||||
|
||||
// Run cargo to create lock file.
|
||||
p.cargo("check").run();
|
||||
|
||||
registry_path().join("index").join("3").rm_rf();
|
||||
Package::new("bar", "0.0.1")
|
||||
.local(true)
|
||||
.yanked(true)
|
||||
.publish();
|
||||
|
||||
p.cargo("check")
|
||||
.with_stderr(
|
||||
"\
|
||||
[FINISHED] [..]
|
||||
",
|
||||
)
|
||||
.run();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn multiple_versions() {
|
||||
setup();
|
||||
|
|
Loading…
Reference in a new issue