Skip to content

Commit

Permalink
Merge pull request #3 from pool2win/use-trait-and-mockall
Browse files Browse the repository at this point in the history
Use trait and mockall for noise handshake unit tests
  • Loading branch information
pool2win authored Jun 14, 2024
2 parents 4163794 + a875cfb commit db129e9
Show file tree
Hide file tree
Showing 5 changed files with 282 additions and 97 deletions.
85 changes: 85 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ futures = "0.3.30"
snow = "0.9.6"
ed25519-dalek = { version = "2.1.1", features = ["pkcs8", "pem"] }
flexbuffers = "2.0.0"
mockall = "0.12.1"
mockall_double = "0.3.1"
14 changes: 9 additions & 5 deletions src/node/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@
// along with Frost-Federation. If not, see
// <https://www.gnu.org/licenses/>.

use super::{noise_handler::NoiseHandler, reliable_sender::ReliableNetworkMessage};
use super::{
noise_handler::{run_handshake, NoiseHandler, NoiseIO},
reliable_sender::ReliableNetworkMessage,
};
use futures::sink::SinkExt; // Bring SinkExt in scope for access to `send` calls
use tokio::{
net::{
Expand All @@ -31,6 +34,8 @@ use tokio_util::{
codec::{FramedRead, FramedWrite, LengthDelimitedCodec},
};

pub(crate) type ConnectionReader = FramedRead<OwnedReadHalf, LengthDelimitedCodec>;
pub(crate) type ConnectionWriter = FramedWrite<OwnedWriteHalf, LengthDelimitedCodec>;
type ConnectionError = Box<dyn std::error::Error + Send + Sync + 'static>;
pub(crate) type ConnectionResult<T> = std::result::Result<T, ConnectionError>;
pub(crate) type ConnectionResultSender = oneshot::Sender<ConnectionResult<()>>;
Expand All @@ -49,8 +54,8 @@ pub enum ConnectionMessage {

#[derive(Debug)]
pub struct ConnectionActor {
reader: FramedRead<OwnedReadHalf, LengthDelimitedCodec>,
writer: FramedWrite<OwnedWriteHalf, LengthDelimitedCodec>,
reader: ConnectionReader,
writer: ConnectionWriter,
receiver: mpsc::Receiver<ConnectionMessage>,
subscriber: mpsc::Sender<ReliableNetworkMessage>,
noise: NoiseHandler,
Expand Down Expand Up @@ -80,8 +85,7 @@ impl ConnectionActor {

let mut noise = NoiseHandler::new(init, key);
let (framed_reader, framed_writer) =
noise.run_handshake(framed_reader, framed_writer).await;
noise.start_transport();
run_handshake(&mut noise, init, framed_reader, framed_writer).await;
log::debug!("Noise transport started");

ConnectionActor {
Expand Down
Loading

0 comments on commit db129e9

Please sign in to comment.