From 308112618fa492626a219981907c919e27c765ab Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Tue, 22 Nov 2022 13:41:32 +0100 Subject: [PATCH] Get around circular-dependency This was causing an issue in rust-analyzer, and probably would fail in other ways via cargo. In any case it wasn't a good idea. Signed-off-by: Alexis Sellier --- Cargo.lock | 1 - radicle-node/src/control.rs | 27 +++++++++++++++++++++++++++ radicle/Cargo.toml | 7 +------ radicle/src/node.rs | 35 ----------------------------------- 4 files changed, 28 insertions(+), 42 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 26b68c2f..dd8228bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1687,7 +1687,6 @@ dependencies = [ "radicle-cob", "radicle-crypto", "radicle-git-ext", - "radicle-node", "radicle-ssh", "serde", "serde_json", diff --git a/radicle-node/src/control.rs b/radicle-node/src/control.rs index 8163798f..3a5c9437 100644 --- a/radicle-node/src/control.rs +++ b/radicle-node/src/control.rs @@ -213,6 +213,8 @@ mod tests { use super::*; use crate::identity::Id; + use crate::node::Handle; + use crate::node::Node; use crate::test; #[test] @@ -247,4 +249,29 @@ mod tests { assert!(handle.updates.lock().unwrap().contains(proj)); } } + + #[test] + fn test_track_untrack() { + let tmp = tempfile::tempdir().unwrap(); + let socket = tmp.path().join("node.sock"); + let proj = test::arbitrary::gen::(1); + + thread::spawn({ + let socket = socket.clone(); + let handle = crate::test::handle::Handle::default(); + + move || crate::control::listen(socket, handle) + }); + + let handle = loop { + if let Ok(conn) = Node::connect(&socket) { + break conn; + } + }; + + assert!(handle.track(&proj).unwrap()); + assert!(!handle.track(&proj).unwrap()); + assert!(handle.untrack(&proj).unwrap()); + assert!(!handle.untrack(&proj).unwrap()); + } } diff --git a/radicle/Cargo.toml b/radicle/Cargo.toml index 4050badb..eaa3fbd1 100644 --- a/radicle/Cargo.toml +++ b/radicle/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [features] default = [] -test = ["quickcheck", "radicle-crypto/test", "radicle-node/test"] +test = ["quickcheck", "radicle-crypto/test"] sql = ["sqlite"] [dependencies] @@ -67,8 +67,3 @@ quickcheck = { version = "1", default-features = false } path = "../radicle-crypto" version = "0" features = ["test"] - -[dev-dependencies.radicle-node] -path = "../radicle-node" -version = "0" -features = ["test"] diff --git a/radicle/src/node.rs b/radicle/src/node.rs index 9c9b31f7..5fefbac8 100644 --- a/radicle/src/node.rs +++ b/radicle/src/node.rs @@ -131,38 +131,3 @@ impl Handle for Node { pub fn connect>(path: P) -> Result { Node::connect(path) } - -#[cfg(test)] -mod tests { - use std::thread; - - use super::*; - use crate::test; - - #[test] - fn test_track_untrack() { - let tmp = tempfile::tempdir().unwrap(); - let socket = tmp.path().join("node.sock"); - let proj = test::arbitrary::gen::(1); - - thread::spawn({ - use radicle_node as node; - - let socket = socket.clone(); - let handle = node::test::handle::Handle::default(); - - move || node::control::listen(socket, handle) - }); - - let handle = loop { - if let Ok(conn) = Node::connect(&socket) { - break conn; - } - }; - - assert!(handle.track(&proj).unwrap()); - assert!(!handle.track(&proj).unwrap()); - assert!(handle.untrack(&proj).unwrap()); - assert!(!handle.untrack(&proj).unwrap()); - } -}