| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- use async_std::{
- io,
- io::{ReadExt, WriteExt},
- stream::StreamExt,
- task,
- };
- use url::Url;
- use darkfi::net::transport::{TcpTransport, TlsTransport, Transport};
- #[async_std::test]
- async fn tcp_transport() {
- let tcp = TcpTransport::new(None, 1024);
- let url = Url::parse("tcp://127.0.0.1:5432").unwrap();
- let listener = tcp.clone().listen_on(url.clone()).unwrap().await.unwrap();
- let _ = task::spawn(async move {
- let mut incoming = listener.incoming();
- while let Some(stream) = incoming.next().await {
- let stream = stream.unwrap();
- let (reader, writer) = &mut (&stream, &stream);
- io::copy(reader, writer).await.unwrap();
- }
- });
- let payload = b"ohai tcp";
- let mut client = tcp.dial(url).unwrap().await.unwrap();
- client.write_all(payload).await.unwrap();
- let mut buf = vec![0_u8; 8];
- client.read_exact(&mut buf).await.unwrap();
- assert_eq!(buf, payload);
- }
- #[async_std::test]
- async fn tls_transport() {
- let tls = TlsTransport::new(None, 1024);
- let url = Url::parse("tls://127.0.0.1:5433").unwrap();
- let (acceptor, listener) = tls.clone().listen_on(url.clone()).unwrap().await.unwrap();
- let _ = task::spawn(async move {
- let mut incoming = listener.incoming();
- while let Some(stream) = incoming.next().await {
- let stream = stream.unwrap();
- let stream = acceptor.accept(stream).await.unwrap();
- let (mut reader, mut writer) = smol::io::split(stream);
- io::copy(&mut reader, &mut writer).await.unwrap();
- }
- });
- let payload = b"ohai tls";
- let mut client = tls.dial(url).unwrap().await.unwrap();
- client.write_all(payload).await.unwrap();
- let mut buf = vec![0_u8; 8];
- client.read_exact(&mut buf).await.unwrap();
- assert_eq!(buf, payload);
- }
|