Rename to btest-rs, add LICENSE and README with full credits
- Rename package to btest-rs (Rust convention for reimplementations) - MIT license matching the original btest-opensource license - LICENSE explicitly credits Alex Samorukov's original work - Comprehensive README with usage, performance numbers, and credits - CLI --help references the original project Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@ async fn start_test_server(port: u16, auth_user: Option<&str>, auth_pass: Option
|
||||
let user = auth_user.map(String::from);
|
||||
let pass = auth_pass.map(String::from);
|
||||
tokio::spawn(async move {
|
||||
let _ = mikrotik_btest::server::run_server(port, user, pass).await;
|
||||
let _ = btest_rs::server::run_server(port, user, pass).await;
|
||||
});
|
||||
tokio::time::sleep(Duration::from_millis(100)).await;
|
||||
}
|
||||
@@ -41,9 +41,9 @@ async fn test_server_command_and_noauth() {
|
||||
assert_eq!(buf, [0x01, 0x00, 0x00, 0x00]);
|
||||
|
||||
// CMD_DIR_TX (0x02) = server should transmit data to us
|
||||
let cmd = mikrotik_btest::protocol::Command::new(
|
||||
mikrotik_btest::protocol::CMD_PROTO_TCP,
|
||||
mikrotik_btest::protocol::CMD_DIR_TX,
|
||||
let cmd = btest_rs::protocol::Command::new(
|
||||
btest_rs::protocol::CMD_PROTO_TCP,
|
||||
btest_rs::protocol::CMD_DIR_TX,
|
||||
);
|
||||
stream.write_all(&cmd.serialize()).await.unwrap();
|
||||
stream.flush().await.unwrap();
|
||||
@@ -72,9 +72,9 @@ async fn test_server_auth_challenge() {
|
||||
assert_eq!(buf, [0x01, 0x00, 0x00, 0x00]);
|
||||
|
||||
// CMD_DIR_TX = server transmits
|
||||
let cmd = mikrotik_btest::protocol::Command::new(
|
||||
mikrotik_btest::protocol::CMD_PROTO_TCP,
|
||||
mikrotik_btest::protocol::CMD_DIR_TX,
|
||||
let cmd = btest_rs::protocol::Command::new(
|
||||
btest_rs::protocol::CMD_PROTO_TCP,
|
||||
btest_rs::protocol::CMD_DIR_TX,
|
||||
);
|
||||
stream.write_all(&cmd.serialize()).await.unwrap();
|
||||
stream.flush().await.unwrap();
|
||||
@@ -85,7 +85,7 @@ async fn test_server_auth_challenge() {
|
||||
let mut challenge = [0u8; 16];
|
||||
stream.read_exact(&mut challenge).await.unwrap();
|
||||
|
||||
let hash = mikrotik_btest::auth::compute_auth_hash("test", &challenge);
|
||||
let hash = btest_rs::auth::compute_auth_hash("test", &challenge);
|
||||
let mut response = [0u8; 48];
|
||||
response[0..16].copy_from_slice(&hash);
|
||||
response[16..21].copy_from_slice(b"admin");
|
||||
@@ -109,9 +109,9 @@ async fn test_server_auth_failure() {
|
||||
let mut buf = [0u8; 4];
|
||||
stream.read_exact(&mut buf).await.unwrap();
|
||||
|
||||
let cmd = mikrotik_btest::protocol::Command::new(
|
||||
mikrotik_btest::protocol::CMD_PROTO_TCP,
|
||||
mikrotik_btest::protocol::CMD_DIR_TX,
|
||||
let cmd = btest_rs::protocol::Command::new(
|
||||
btest_rs::protocol::CMD_PROTO_TCP,
|
||||
btest_rs::protocol::CMD_DIR_TX,
|
||||
);
|
||||
stream.write_all(&cmd.serialize()).await.unwrap();
|
||||
stream.flush().await.unwrap();
|
||||
@@ -122,7 +122,7 @@ async fn test_server_auth_failure() {
|
||||
let mut challenge = [0u8; 16];
|
||||
stream.read_exact(&mut challenge).await.unwrap();
|
||||
|
||||
let hash = mikrotik_btest::auth::compute_auth_hash("wrongpassword", &challenge);
|
||||
let hash = btest_rs::auth::compute_auth_hash("wrongpassword", &challenge);
|
||||
let mut response = [0u8; 48];
|
||||
response[0..16].copy_from_slice(&hash);
|
||||
response[16..21].copy_from_slice(b"admin");
|
||||
@@ -143,10 +143,10 @@ async fn test_loopback_tcp_rx() {
|
||||
start_test_server(port, None, None).await;
|
||||
|
||||
let handle = tokio::spawn(async move {
|
||||
mikrotik_btest::client::run_client(
|
||||
btest_rs::client::run_client(
|
||||
"127.0.0.1",
|
||||
port,
|
||||
mikrotik_btest::protocol::CMD_DIR_TX, // server TX = client RX
|
||||
btest_rs::protocol::CMD_DIR_TX, // server TX = client RX
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
@@ -167,10 +167,10 @@ async fn test_loopback_tcp_tx() {
|
||||
start_test_server(port, None, None).await;
|
||||
|
||||
let handle = tokio::spawn(async move {
|
||||
mikrotik_btest::client::run_client(
|
||||
btest_rs::client::run_client(
|
||||
"127.0.0.1",
|
||||
port,
|
||||
mikrotik_btest::protocol::CMD_DIR_RX, // server RX = client TX
|
||||
btest_rs::protocol::CMD_DIR_RX, // server RX = client TX
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
@@ -191,10 +191,10 @@ async fn test_loopback_tcp_both() {
|
||||
start_test_server(port, None, None).await;
|
||||
|
||||
let handle = tokio::spawn(async move {
|
||||
mikrotik_btest::client::run_client(
|
||||
btest_rs::client::run_client(
|
||||
"127.0.0.1",
|
||||
port,
|
||||
mikrotik_btest::protocol::CMD_DIR_BOTH,
|
||||
btest_rs::protocol::CMD_DIR_BOTH,
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
@@ -215,10 +215,10 @@ async fn test_loopback_tcp_with_auth() {
|
||||
start_test_server(port, Some("admin"), Some("secret")).await;
|
||||
|
||||
let handle = tokio::spawn(async move {
|
||||
mikrotik_btest::client::run_client(
|
||||
btest_rs::client::run_client(
|
||||
"127.0.0.1",
|
||||
port,
|
||||
mikrotik_btest::protocol::CMD_DIR_TX, // server TX = client RX
|
||||
btest_rs::protocol::CMD_DIR_TX, // server TX = client RX
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
|
||||
Reference in New Issue
Block a user