summaryrefslogtreecommitdiffstats
path: root/ignore
diff options
context:
space:
mode:
authorAndrew Gallant <jamslam@gmail.com>2018-12-15 08:37:52 -0500
committerAndrew Gallant <jamslam@gmail.com>2018-12-15 08:40:04 -0500
commit662a9bc73dc01c529de93c991584035bbba38549 (patch)
tree35eae0d6e46a9d75359fe35152247c4995bdae9c /ignore
parent401add0a9964ff0b154171553ce6d80934461ca0 (diff)
deps: update to crossbeam-channel 0.3
This also requires corresponding updates to both rand and rand_core. Doing an update of rand without doing an update of rand_core results in compilation errors because two distinct versions of rand_core are included in the build, and the traits they expose are distinct and incompatible. We also switch over to using tempfile instead of tempdir, which drops the last remaining thing keeping rand 0.4 in the build. Fixes #1141, Fixes #1142
Diffstat (limited to 'ignore')
-rw-r--r--ignore/Cargo.toml5
-rw-r--r--ignore/examples/walk.rs6
-rw-r--r--ignore/src/dir.rs42
-rw-r--r--ignore/src/lib.rs2
-rw-r--r--ignore/src/walk.rs44
5 files changed, 54 insertions, 45 deletions
diff --git a/ignore/Cargo.toml b/ignore/Cargo.toml
index 164a8518..f2c8cf4d 100644
--- a/ignore/Cargo.toml
+++ b/ignore/Cargo.toml
@@ -18,7 +18,7 @@ name = "ignore"
bench = false
[dependencies]
-crossbeam-channel = "0.2.4"
+crossbeam-channel = "0.3.3"
globset = { version = "0.4.2", path = "../globset" }
lazy_static = "1.1.0"
log = "0.4.5"
@@ -32,7 +32,8 @@ walkdir = "2.2.5"
version = "0.1.1"
[dev-dependencies]
-tempdir = "0.3.7"
+# tempdir = "0.3.7"
+tempfile = "3.0.5"
[features]
simd-accel = ["globset/simd-accel"]
diff --git a/ignore/examples/walk.rs b/ignore/examples/walk.rs
index 67432b71..1f2a3cea 100644
--- a/ignore/examples/walk.rs
+++ b/ignore/examples/walk.rs
@@ -37,19 +37,19 @@ fn main() {
Box::new(move |result| {
use ignore::WalkState::*;
- tx.send(DirEntry::Y(result.unwrap()));
+ tx.send(DirEntry::Y(result.unwrap())).unwrap();
Continue
})
});
} else if simple {
let walker = WalkDir::new(path);
for result in walker {
- tx.send(DirEntry::X(result.unwrap()));
+ tx.send(DirEntry::X(result.unwrap())).unwrap();
}
} else {
let walker = WalkBuilder::new(path).build();
for result in walker {
- tx.send(DirEntry::Y(result.unwrap()));
+ tx.send(DirEntry::Y(result.unwrap())).unwrap();
}
}
drop(tx);
diff --git a/ignore/src/dir.rs b/ignore/src/dir.rs
index 162b4c03..66b18635 100644
--- a/ignore/src/dir.rs
+++ b/ignore/src/dir.rs
@@ -661,7 +661,7 @@ mod tests {
use std::io::Write;
use std::path::Path;
- use tempdir::TempDir;
+ use tempfile::{self, TempDir};
use dir::IgnoreBuilder;
use gitignore::Gitignore;
@@ -683,9 +683,13 @@ mod tests {
}
}
+ fn tmpdir(prefix: &str) -> TempDir {
+ tempfile::Builder::new().prefix(prefix).tempdir().unwrap()
+ }
+
#[test]
fn explicit_ignore() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
wfile(td.path().join("not-an-ignore"), "foo\n!bar");
let (gi, err) = Gitignore::new(td.path().join("not-an-ignore"));
@@ -700,7 +704,7 @@ mod tests {
#[test]
fn git_exclude() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
mkdirp(td.path().join(".git/info"));
wfile(td.path().join(".git/info/exclude"), "foo\n!bar");
@@ -713,7 +717,7 @@ mod tests {
#[test]
fn gitignore() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
mkdirp(td.path().join(".git"));
wfile(td.path().join(".gitignore"), "foo\n!bar");
@@ -726,7 +730,7 @@ mod tests {
#[test]
fn gitignore_no_git() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
wfile(td.path().join(".gitignore"), "foo\n!bar");
let (ig, err) = IgnoreBuilder::new().build().add_child(td.path());
@@ -738,7 +742,7 @@ mod tests {
#[test]
fn ignore() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
wfile(td.path().join(".ignore"), "foo\n!bar");
let (ig, err) = IgnoreBuilder::new().build().add_child(td.path());
@@ -750,7 +754,7 @@ mod tests {
#[test]
fn custom_ignore() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
let custom_ignore = ".customignore";
wfile(td.path().join(custom_ignore), "foo\n!bar");
@@ -766,7 +770,7 @@ mod tests {
// Tests that a custom ignore file will override an .ignore.
#[test]
fn custom_ignore_over_ignore() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
let custom_ignore = ".customignore";
wfile(td.path().join(".ignore"), "foo");
wfile(td.path().join(custom_ignore), "!foo");
@@ -781,7 +785,7 @@ mod tests {
// Tests that earlier custom ignore files have lower precedence than later.
#[test]
fn custom_ignore_precedence() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
let custom_ignore1 = ".customignore1";
let custom_ignore2 = ".customignore2";
wfile(td.path().join(custom_ignore1), "foo");
@@ -798,7 +802,7 @@ mod tests {
// Tests that an .ignore will override a .gitignore.
#[test]
fn ignore_over_gitignore() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
wfile(td.path().join(".gitignore"), "foo");
wfile(td.path().join(".ignore"), "!foo");
@@ -810,7 +814,7 @@ mod tests {
// Tests that exclude has lower precedent than both .ignore and .gitignore.
#[test]
fn exclude_lowest() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
wfile(td.path().join(".gitignore"), "!foo");
wfile(td.path().join(".ignore"), "!bar");
mkdirp(td.path().join(".git/info"));
@@ -825,7 +829,7 @@ mod tests {
#[test]
fn errored() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
wfile(td.path().join(".gitignore"), "f**oo");
let (_, err) = IgnoreBuilder::new().build().add_child(td.path());
@@ -834,7 +838,7 @@ mod tests {
#[test]
fn errored_both() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
wfile(td.path().join(".gitignore"), "f**oo");
wfile(td.path().join(".ignore"), "fo**o");
@@ -844,7 +848,7 @@ mod tests {
#[test]
fn errored_partial() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
mkdirp(td.path().join(".git"));
wfile(td.path().join(".gitignore"), "f**oo\nbar");
@@ -855,7 +859,7 @@ mod tests {
#[test]
fn errored_partial_and_ignore() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
wfile(td.path().join(".gitignore"), "f**oo\nbar");
wfile(td.path().join(".ignore"), "!bar");
@@ -866,7 +870,7 @@ mod tests {
#[test]
fn not_present_empty() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
let (_, err) = IgnoreBuilder::new().build().add_child(td.path());
assert!(err.is_none());
@@ -876,7 +880,7 @@ mod tests {
fn stops_at_git_dir() {
// This tests that .gitignore files beyond a .git barrier aren't
// matched, but .ignore files are.
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
mkdirp(td.path().join(".git"));
mkdirp(td.path().join("foo/.git"));
wfile(td.path().join(".gitignore"), "foo");
@@ -897,7 +901,7 @@ mod tests {
#[test]
fn absolute_parent() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
mkdirp(td.path().join(".git"));
mkdirp(td.path().join("foo"));
wfile(td.path().join(".gitignore"), "bar");
@@ -920,7 +924,7 @@ mod tests {
#[test]
fn absolute_parent_anchored() {
- let td = TempDir::new("ignore-test-").unwrap();
+ let td = tmpdir("ignore-test-");
mkdirp(td.path().join(".git"));
mkdirp(td.path().join("src/llvm"));
wfile(td.path().join(".gitignore"), "/llvm/\nfoo");
diff --git a/ignore/src/lib.rs b/ignore/src/lib.rs
index ee313685..d0c8d2fc 100644
--- a/ignore/src/lib.rs
+++ b/ignore/src/lib.rs
@@ -56,7 +56,7 @@ extern crate memchr;
extern crate regex;
extern crate same_file;
#[cfg(test)]
-extern crate tempdir;
+extern crate tempfile;
extern crate thread_local;
extern crate walkdir;
#[cfg(windows)]
diff --git a/ignore/src/walk.rs b/ignore/src/walk.rs
index 3a4515cd..aee7a881 100644
--- a/ignore/src/walk.rs
+++ b/ignore/src/walk.rs
@@ -1118,7 +1118,7 @@ impl WalkParallel {
dent: dent,
ignore: self.ig_root.clone(),
root_device: root_device,
- }));
+ })).unwrap();
any_work = true;
}
// ... but there's no need to start workers if we don't need them.
@@ -1431,7 +1431,7 @@ impl Worker {
dent: dent,
ignore: ig.clone(),
root_device: root_device,
- }));
+ })).unwrap();
}
WalkState::Continue
}
@@ -1446,12 +1446,12 @@ impl Worker {
return None;
}
match self.rx.try_recv() {
- Some(Message::Work(work)) => {
+ Ok(Message::Work(work)) => {
self.waiting(false);
self.quitting(false);
return Some(work);
}
- Some(Message::Quit) => {
+ Ok(Message::Quit) => {
// We can't just quit because a Message::Quit could be
// spurious. For example, it's possible to observe that
// all workers are waiting even if there's more work to
@@ -1482,12 +1482,12 @@ impl Worker {
// Otherwise, spin.
}
}
- None => {
+ Err(_) => {
self.waiting(true);
self.quitting(false);
if self.num_waiting() == self.threads {
for _ in 0..self.threads {
- self.tx.send(Message::Quit);
+ self.tx.send(Message::Quit).unwrap();
}
} else {
// You're right to consider this suspicious, but it's
@@ -1702,7 +1702,7 @@ mod tests {
use std::path::Path;
use std::sync::{Arc, Mutex};
- use tempdir::TempDir;
+ use tempfile::{self, TempDir};
use super::{DirEntry, WalkBuilder, WalkState};
@@ -1789,6 +1789,10 @@ mod tests {
paths
}
+ fn tmpdir(prefix: &str) -> TempDir {
+ tempfile::Builder::new().prefix(prefix).tempdir().unwrap()
+ }
+
fn assert_paths(
prefix: &Path,
builder: &WalkBuilder,
@@ -1802,7 +1806,7 @@ mod tests {
#[test]
fn no_ignores() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
mkdirp(td.path().join("a/b/c"));
mkdirp(td.path().join("x/y"));
wfile(td.path().join("a/b/foo"), "");
@@ -1815,7 +1819,7 @@ mod tests {
#[test]
fn custom_ignore() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
let custom_ignore = ".customignore";
mkdirp(td.path().join("a"));
wfile(td.path().join(custom_ignore), "foo");
@@ -1831,7 +1835,7 @@ mod tests {
#[test]
fn custom_ignore_exclusive_use() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
let custom_ignore = ".customignore";
mkdirp(td.path().join("a"));
wfile(td.path().join(custom_ignore), "foo");
@@ -1851,7 +1855,7 @@ mod tests {
#[test]
fn gitignore() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
mkdirp(td.path().join(".git"));
mkdirp(td.path().join("a"));
wfile(td.path().join(".gitignore"), "foo");
@@ -1867,7 +1871,7 @@ mod tests {
#[test]
fn explicit_ignore() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
let igpath = td.path().join(".not-an-ignore");
mkdirp(td.path().join("a"));
wfile(&igpath, "foo");
@@ -1883,7 +1887,7 @@ mod tests {
#[test]
fn explicit_ignore_exclusive_use() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
let igpath = td.path().join(".not-an-ignore");
mkdirp(td.path().join("a"));
wfile(&igpath, "foo");
@@ -1901,7 +1905,7 @@ mod tests {
#[test]
fn gitignore_parent() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
mkdirp(td.path().join(".git"));
mkdirp(td.path().join("a"));
wfile(td.path().join(".gitignore"), "foo");
@@ -1914,7 +1918,7 @@ mod tests {
#[test]
fn max_depth() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
mkdirp(td.path().join("a/b/c"));
wfile(td.path().join("foo"), "");
wfile(td.path().join("a/foo"), "");
@@ -1934,7 +1938,7 @@ mod tests {
#[test]
fn max_filesize() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
mkdirp(td.path().join("a/b"));
wfile_size(td.path().join("foo"), 0);
wfile_size(td.path().join("bar"), 400);
@@ -1961,7 +1965,7 @@ mod tests {
#[cfg(unix)] // because symlinks on windows are weird
#[test]
fn symlinks() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
mkdirp(td.path().join("a/b"));
symlink(td.path().join("a/b"), td.path().join("z"));
wfile(td.path().join("a/b/foo"), "");
@@ -1978,7 +1982,7 @@ mod tests {
#[cfg(unix)] // because symlinks on windows are weird
#[test]
fn first_path_not_symlink() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
mkdirp(td.path().join("foo"));
let dents = WalkBuilder::new(td.path().join("foo"))
@@ -1999,7 +2003,7 @@ mod tests {
#[cfg(unix)] // because symlinks on windows are weird
#[test]
fn symlink_loop() {
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
mkdirp(td.path().join("a/b"));
symlink(td.path().join("a"), td.path().join("a/b/c"));
@@ -2029,7 +2033,7 @@ mod tests {
// If our test directory actually isn't a different volume from /sys,
// then this test is meaningless and we shouldn't run it.
- let td = TempDir::new("walk-test-").unwrap();
+ let td = tmpdir("walk-test-");
if device_num(td.path()).unwrap() == device_num("/sys").unwrap() {
return;
}