diff options
author | Bernardo <[email protected]> | 2019-01-22 17:38:34 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-01-26 08:46:27 +0000 |
commit | be14ab217ce29542a8b2c84282e822adcc69646c (patch) | |
tree | 99fd4d871d7b14eca6604cab9f6648584d23b6f0 /crates/ra_vfs/tests | |
parent | 0a086508524bed87bb15113437e9c2b1e1be4c42 (diff) |
better test, avoid duplicated events
Diffstat (limited to 'crates/ra_vfs/tests')
-rw-r--r-- | crates/ra_vfs/tests/vfs.rs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/crates/ra_vfs/tests/vfs.rs b/crates/ra_vfs/tests/vfs.rs index b18ea74a3..d3271570a 100644 --- a/crates/ra_vfs/tests/vfs.rs +++ b/crates/ra_vfs/tests/vfs.rs | |||
@@ -1,12 +1,13 @@ | |||
1 | use std::{collections::HashSet, fs}; | 1 | use std::{collections::HashSet, fs}; |
2 | 2 | ||
3 | // use flexi_logger::Logger; | 3 | use flexi_logger::Logger; |
4 | use ra_vfs::{Vfs, VfsChange}; | 4 | use ra_vfs::{Vfs, VfsChange}; |
5 | use tempfile::tempdir; | 5 | use tempfile::tempdir; |
6 | 6 | ||
7 | fn process_tasks(vfs: &mut Vfs, num_tasks: u32) { | 7 | fn process_tasks(vfs: &mut Vfs, num_tasks: u32) { |
8 | for _ in 0..num_tasks { | 8 | for _ in 0..num_tasks { |
9 | let task = vfs.task_receiver().recv().unwrap(); | 9 | let task = vfs.task_receiver().recv().unwrap(); |
10 | log::debug!("{:?}", task); | ||
10 | vfs.handle_task(task); | 11 | vfs.handle_task(task); |
11 | } | 12 | } |
12 | } | 13 | } |
@@ -25,7 +26,7 @@ macro_rules! assert_match { | |||
25 | 26 | ||
26 | #[test] | 27 | #[test] |
27 | fn test_vfs_works() -> std::io::Result<()> { | 28 | fn test_vfs_works() -> std::io::Result<()> { |
28 | // Logger::with_str("vfs=debug,ra_vfs=debug").start().unwrap(); | 29 | Logger::with_str("vfs=debug,ra_vfs=debug").start().unwrap(); |
29 | 30 | ||
30 | let files = [ | 31 | let files = [ |
31 | ("a/foo.rs", "hello"), | 32 | ("a/foo.rs", "hello"), |
@@ -114,21 +115,21 @@ fn test_vfs_works() -> std::io::Result<()> { | |||
114 | assert_eq!(path, "spam.rs") | 115 | assert_eq!(path, "spam.rs") |
115 | ); | 116 | ); |
116 | 117 | ||
117 | fs::create_dir_all(dir.path().join("a/c")).unwrap(); | 118 | fs::create_dir_all(dir.path().join("a/sub1/sub2")).unwrap(); |
118 | fs::write(dir.path().join("a/c/new.rs"), "new hello").unwrap(); | 119 | fs::write(dir.path().join("a/sub1/sub2/new.rs"), "new hello").unwrap(); |
119 | process_tasks(&mut vfs, 4); | 120 | process_tasks(&mut vfs, 4); |
120 | assert_match!( | 121 | assert_match!( |
121 | vfs.commit_changes().as_slice(), | 122 | vfs.commit_changes().as_slice(), |
122 | [VfsChange::AddFile { text, path, .. }], | 123 | [VfsChange::AddFile { text, path, .. }], |
123 | { | 124 | { |
124 | assert_eq!(text.as_str(), "new hello"); | 125 | assert_eq!(text.as_str(), "new hello"); |
125 | assert_eq!(path, "c/new.rs"); | 126 | assert_eq!(path, "sub1/sub2/new.rs"); |
126 | } | 127 | } |
127 | ); | 128 | ); |
128 | 129 | ||
129 | fs::rename( | 130 | fs::rename( |
130 | &dir.path().join("a/c/new.rs"), | 131 | &dir.path().join("a/sub1/sub2/new.rs"), |
131 | &dir.path().join("a/c/new1.rs"), | 132 | &dir.path().join("a/sub1/sub2/new1.rs"), |
132 | ) | 133 | ) |
133 | .unwrap(); | 134 | .unwrap(); |
134 | process_tasks(&mut vfs, 4); | 135 | process_tasks(&mut vfs, 4); |
@@ -142,18 +143,18 @@ fn test_vfs_works() -> std::io::Result<()> { | |||
142 | .. | 143 | .. |
143 | }], | 144 | }], |
144 | { | 145 | { |
145 | assert_eq!(removed_path, "c/new.rs"); | 146 | assert_eq!(removed_path, "sub1/sub2/new.rs"); |
146 | assert_eq!(added_path, "c/new1.rs"); | 147 | assert_eq!(added_path, "sub1/sub2/new1.rs"); |
147 | assert_eq!(text.as_str(), "new hello"); | 148 | assert_eq!(text.as_str(), "new hello"); |
148 | } | 149 | } |
149 | ); | 150 | ); |
150 | 151 | ||
151 | fs::remove_file(&dir.path().join("a/c/new1.rs")).unwrap(); | 152 | fs::remove_file(&dir.path().join("a/sub1/sub2/new1.rs")).unwrap(); |
152 | process_tasks(&mut vfs, 2); | 153 | process_tasks(&mut vfs, 2); |
153 | assert_match!( | 154 | assert_match!( |
154 | vfs.commit_changes().as_slice(), | 155 | vfs.commit_changes().as_slice(), |
155 | [VfsChange::RemoveFile { path, .. }], | 156 | [VfsChange::RemoveFile { path, .. }], |
156 | assert_eq!(path, "c/new1.rs") | 157 | assert_eq!(path, "sub1/sub2/new1.rs") |
157 | ); | 158 | ); |
158 | 159 | ||
159 | fs::create_dir_all(dir.path().join("a/target")).unwrap(); | 160 | fs::create_dir_all(dir.path().join("a/target")).unwrap(); |