From 9922940791d0f14a48d8582515fda5e5add6a2f9 Mon Sep 17 00:00:00 2001 From: Luca Cominardi Date: Mon, 18 Sep 2023 12:07:58 +0200 Subject: [PATCH] Move UsrPwd config test in dedicated test --- .../unicast/establishment/ext/auth/usrpwd.rs | 59 +++++++++++++++++++ .../tests/unicast_authenticator.rs | 48 --------------- 2 files changed, 59 insertions(+), 48 deletions(-) diff --git a/io/zenoh-transport/src/unicast/establishment/ext/auth/usrpwd.rs b/io/zenoh-transport/src/unicast/establishment/ext/auth/usrpwd.rs index 004f34c0ed..4787020958 100644 --- a/io/zenoh-transport/src/unicast/establishment/ext/auth/usrpwd.rs +++ b/io/zenoh-transport/src/unicast/establishment/ext/auth/usrpwd.rs @@ -442,3 +442,62 @@ impl<'a> AcceptFsm for AuthUsrPwdFsm<'a> { Ok(Some(ZExtUnit::new())) } } + +mod tests { + #[test] + fn authenticator_usrpwd_config() { + async fn inner() { + use super::AuthUsrPwd; + use std::{fs::File, io::Write}; + use zenoh_config::UsrPwdConf; + + /* [CONFIG] */ + let f1 = "zenoh-test-auth-usrpwd.txt"; + + let mut config = UsrPwdConf::default(); + config.set_user(Some("usr1".to_owned())).unwrap(); + config.set_password(Some("pwd1".to_owned())).unwrap(); + config.set_dictionary_file(Some(f1.to_owned())).unwrap(); + + macro_rules! zconfig { + () => { + File::options() + .create(true) + .write(true) + .truncate(true) + .open(f1) + .unwrap() + }; + } + // Valid config + let mut c = zconfig!(); + writeln!(c, "usr1:pwd1").unwrap(); + drop(c); + assert!(AuthUsrPwd::from_config(&config).await.unwrap().is_some()); + // Invalid config + let mut c = zconfig!(); + writeln!(c, "usr1").unwrap(); + drop(c); + assert!(AuthUsrPwd::from_config(&config).await.is_err()); + // Empty password + let mut c = zconfig!(); + writeln!(c, "usr1:").unwrap(); + drop(c); + assert!(AuthUsrPwd::from_config(&config).await.is_err()); + // Empty user + let mut c = zconfig!(); + writeln!(c, ":pwd1").unwrap(); + drop(c); + assert!(AuthUsrPwd::from_config(&config).await.is_err()); + // Empty user and password + let mut c = zconfig!(); + writeln!(c, ":").unwrap(); + drop(c); + assert!(AuthUsrPwd::from_config(&config).await.is_err()); + + let _ = std::fs::remove_file(f1); + } + + async_std::task::block_on(inner()); + } +} diff --git a/io/zenoh-transport/tests/unicast_authenticator.rs b/io/zenoh-transport/tests/unicast_authenticator.rs index 0d2b888c5b..33b35d52d2 100644 --- a/io/zenoh-transport/tests/unicast_authenticator.rs +++ b/io/zenoh-transport/tests/unicast_authenticator.rs @@ -407,58 +407,10 @@ async fn auth_pubkey(endpoint: &EndPoint, #[cfg(feature = "shared-memory")] shm_ #[cfg(feature = "auth_usrpwd")] async fn auth_usrpwd(endpoint: &EndPoint, #[cfg(feature = "shared-memory")] shm_transport: bool) { - use std::{fs::File, io::Write}; - use zenoh_config::UsrPwdConf; use zenoh_transport::test_helpers::make_basic_transport_manager_builder; use zenoh_transport::unicast::establishment::ext::auth::AuthUsrPwd; use zenoh_transport::TransportManager; - /* [CONFIG] */ - let f1 = "zenoh-test-auth-usrpwd.txt"; - - let mut config = UsrPwdConf::default(); - config.set_user(Some("usr1".to_owned())).unwrap(); - config.set_password(Some("pwd1".to_owned())).unwrap(); - config.set_dictionary_file(Some(f1.to_owned())).unwrap(); - - macro_rules! zconfig { - () => { - File::options() - .create(true) - .write(true) - .truncate(true) - .open(f1) - .unwrap() - }; - } - // Valid config - let mut c = zconfig!(); - writeln!(c, "usr1:pwd1").unwrap(); - drop(c); - assert!(AuthUsrPwd::from_config(&config).await.unwrap().is_some()); - // Invalid config - let mut c = zconfig!(); - writeln!(c, "usr1").unwrap(); - drop(c); - assert!(AuthUsrPwd::from_config(&config).await.is_err()); - // Empty password - let mut c = zconfig!(); - writeln!(c, "usr1:").unwrap(); - drop(c); - assert!(AuthUsrPwd::from_config(&config).await.is_err()); - // Empty user - let mut c = zconfig!(); - writeln!(c, ":pwd1").unwrap(); - drop(c); - assert!(AuthUsrPwd::from_config(&config).await.is_err()); - // Empty user and password - let mut c = zconfig!(); - writeln!(c, ":").unwrap(); - drop(c); - assert!(AuthUsrPwd::from_config(&config).await.is_err()); - - let _ = std::fs::remove_file(f1); - /* [CLIENT] */ let client01_id = ZenohId::try_from([2]).unwrap(); let user01 = "user01".to_string();