Spawn threads for requests in file manager and other style fixes

This commit is contained in:
Zhen Zhang 2016-07-06 01:12:50 +08:00
parent b9af49f120
commit bf18225ba2
6 changed files with 217 additions and 164 deletions

View file

@ -41,7 +41,7 @@ fn test_filemanager() {
// Try to select a dummy file "tests/unit/net/test.txt"
let (tx, rx) = ipc::channel().unwrap();
chan.send(FileManagerThreadMsg::SelectFile(patterns.clone(), tx, origin.clone())).unwrap();
let selected = rx.recv().expect("File manager channel is broken")
let selected = rx.recv().expect("Broken channel")
.expect("The file manager failed to find test.txt");
// Expecting attributes conforming the spec
@ -53,21 +53,27 @@ fn test_filemanager() {
let (tx2, rx2) = ipc::channel().unwrap();
chan.send(FileManagerThreadMsg::ReadFile(tx2, selected.id.clone(), origin.clone())).unwrap();
let msg = rx2.recv().expect("File manager channel is broken");
let msg = rx2.recv().expect("Broken channel");
let vec = msg.expect("File manager reading failure is unexpected");
assert!(test_file_content == vec, "Read content differs");
}
// Delete the id
chan.send(FileManagerThreadMsg::DecRef(selected.id.clone(), origin.clone())).unwrap();
{
let (tx2, rx2) = ipc::channel().unwrap();
chan.send(FileManagerThreadMsg::DecRef(selected.id.clone(), origin.clone(), tx2)).unwrap();
let ret = rx2.recv().expect("Broken channel");
assert!(ret.is_ok(), "DecRef is not okay");
}
// Test by reading again, expecting read error because we invalidated the id
{
let (tx2, rx2) = ipc::channel().unwrap();
chan.send(FileManagerThreadMsg::ReadFile(tx2, selected.id.clone(), origin.clone())).unwrap();
let msg = rx2.recv().expect("File manager channel is broken");
let msg = rx2.recv().expect("Broken channel");
match msg {
Err(FileManagerThreadError::ReadFileError) => {},