summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorcyqsimon <28627918+cyqsimon@users.noreply.github.com>2023-10-11 17:42:06 +0800
committercyqsimon <28627918+cyqsimon@users.noreply.github.com>2023-10-11 17:42:06 +0800
commit5cb09cca196a3a23ad059dc163ce3ceb540cf894 (patch)
treef7773226d0e2d3d8bca5bbc854cf03b5d16121e9 /src
parent5884c7322f86cb87cf88161fcd5e2dd9ec206349 (diff)
Reduce repitition using default `Opts`
Diffstat (limited to 'src')
-rw-r--r--src/cli.rs4
-rw-r--r--src/tests/cases/raw_mode.rs10
-rw-r--r--src/tests/cases/test_utils.rs24
-rw-r--r--src/tests/cases/ui.rs87
4 files changed, 28 insertions, 97 deletions
diff --git a/src/cli.rs b/src/cli.rs
index d98b372..e466af9 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -2,7 +2,7 @@ use std::net::Ipv4Addr;
use clap::{Args, Parser};
-#[derive(Parser, Debug)]
+#[derive(Clone, Debug, Default, Parser)]
#[command(name = "bandwhich", version)]
pub struct Opt {
#[arg(short, long)]
@@ -29,7 +29,7 @@ pub struct Opt {
pub render_opts: RenderOpts,
}
-#[derive(Args, Debug, Copy, Clone)]
+#[derive(Copy, Clone, Debug, Default, Args)]
pub struct RenderOpts {
#[arg(short, long)]
/// Show processes table only
diff --git a/src/tests/cases/raw_mode.rs b/src/tests/cases/raw_mode.rs
index 1315e53..5108a66 100644
--- a/src/tests/cases/raw_mode.rs
+++ b/src/tests/cases/raw_mode.rs
@@ -9,7 +9,6 @@ use packet_builder::*;
use pnet::{datalink::DataLinkReceiver, packet::Packet};
use crate::{
- cli::RenderOpts,
start,
tests::{
cases::test_utils::{
@@ -580,14 +579,7 @@ fn no_resolve_mode() {
interface: Some(String::from("interface_name")),
raw: true,
no_resolve: true,
- show_dns: false,
- dns_server: None,
- render_opts: RenderOpts {
- addresses: false,
- connections: false,
- processes: false,
- total_utilization: false,
- },
+ ..Default::default()
};
start(backend, os_input, opts);
let stdout = Arc::try_unwrap(stdout).unwrap().into_inner().unwrap();
diff --git a/src/tests/cases/test_utils.rs b/src/tests/cases/test_utils.rs
index 1e70bbe..4c1d422 100644
--- a/src/tests/cases/test_utils.rs
+++ b/src/tests/cases/test_utils.rs
@@ -12,7 +12,6 @@ use pnet_base::MacAddr;
use rstest::fixture;
use crate::{
- cli::RenderOpts,
network::dns::Client,
tests::fakes::{
create_fake_dns_client, get_interfaces, get_open_sockets, NetworkFrames, TerminalEvent,
@@ -269,28 +268,19 @@ pub fn os_input_output_factory(
}
pub fn opts_raw() -> Opt {
- opts_factory(true)
+ Opt {
+ interface: Some(String::from("interface_name")),
+ raw: true,
+ ..Default::default()
+ }
}
-
pub fn opts_ui() -> Opt {
- opts_factory(false)
-}
-
-fn opts_factory(raw: bool) -> Opt {
Opt {
interface: Some(String::from("interface_name")),
- raw,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
- render_opts: RenderOpts {
- addresses: false,
- connections: false,
- processes: false,
- total_utilization: false,
- },
+ ..Default::default()
}
}
+
type BackendWithStreams = (
Arc<Mutex<Vec<TerminalEvent>>>,
Arc<Mutex<Vec<String>>>,
diff --git a/src/tests/cases/ui.rs b/src/tests/cases/ui.rs
index b8717e3..01fe8d1 100644
--- a/src/tests/cases/ui.rs
+++ b/src/tests/cases/ui.rs
@@ -156,17 +156,11 @@ fn basic_only_processes() {
let (_, terminal_draw_events, backend) = test_backend_factory(190, 50);
let os_input = os_input_output(network_frames, 1);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
render_opts: RenderOpts {
- addresses: false,
- connections: false,
processes: true,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);
@@ -183,17 +177,12 @@ fn basic_processes_with_dns_queries() {
let (_, terminal_draw_events, backend) = test_backend_factory(190, 50);
let os_input = os_input_output(network_frames, 1);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
show_dns: true,
- dns_server: None,
render_opts: RenderOpts {
- addresses: false,
- connections: false,
processes: true,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);
@@ -210,17 +199,11 @@ fn basic_only_connections() {
let (_, terminal_draw_events, backend) = test_backend_factory(190, 50);
let os_input = os_input_output(network_frames, 1);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
render_opts: RenderOpts {
- addresses: false,
connections: true,
- processes: false,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);
@@ -237,17 +220,11 @@ fn basic_only_addresses() {
let (_, terminal_draw_events, backend) = test_backend_factory(190, 50);
let os_input = os_input_output(network_frames, 1);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
render_opts: RenderOpts {
addresses: true,
- connections: false,
- processes: false,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);
@@ -260,17 +237,11 @@ fn two_packets_only_processes(frames: Vec<Box<dyn DataLinkReceiver>>) {
let (_, terminal_draw_events, backend) = test_backend_factory(190, 50);
let os_input = os_input_output(frames, 2);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
render_opts: RenderOpts {
- addresses: false,
- connections: false,
processes: true,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);
@@ -284,17 +255,11 @@ fn two_packets_only_connections(frames: Vec<Box<dyn DataLinkReceiver>>) {
let (_, terminal_draw_events, backend) = test_backend_factory(190, 50);
let os_input = os_input_output(frames, 2);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
render_opts: RenderOpts {
- addresses: false,
connections: true,
- processes: false,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);
@@ -308,17 +273,11 @@ fn two_packets_only_addresses(frames: Vec<Box<dyn DataLinkReceiver>>) {
let (_, terminal_draw_events, backend) = test_backend_factory(190, 50);
let os_input = os_input_output(frames, 2);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
render_opts: RenderOpts {
addresses: true,
- connections: false,
- processes: false,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);
@@ -336,17 +295,12 @@ fn two_windows_split_horizontally() {
let (_, terminal_draw_events, backend) = test_backend_factory(60, 50);
let os_input = os_input_output(network_frames, 2);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
render_opts: RenderOpts {
addresses: true,
connections: true,
- processes: false,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);
@@ -363,17 +317,12 @@ fn two_windows_split_vertically() {
let (_, terminal_draw_events, backend) = test_backend_factory(190, 50);
let os_input = os_input_output(network_frames, 1);
let opts = Opt {
- interface: Some(String::from("interface_name")),
- raw: false,
- no_resolve: false,
- show_dns: false,
- dns_server: None,
render_opts: RenderOpts {
addresses: true,
connections: true,
- processes: false,
- total_utilization: false,
+ ..Default::default()
},
+ ..opts_ui()
};
start(backend, os_input, opts);