mirror of
https://github.com/imsnif/bandwhich.git
synced 2026-02-09 01:59:18 +08:00
Compact tests using rstest
This commit is contained in:
106
Cargo.lock
generated
106
Cargo.lock
generated
@@ -162,6 +162,7 @@ dependencies = [
|
||||
"ratatui",
|
||||
"regex",
|
||||
"resolv-conf",
|
||||
"rstest",
|
||||
"sysinfo",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
@@ -567,6 +568,21 @@ dependencies = [
|
||||
"percent-encoding",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
|
||||
dependencies = [
|
||||
"futures-channel",
|
||||
"futures-core",
|
||||
"futures-executor",
|
||||
"futures-io",
|
||||
"futures-sink",
|
||||
"futures-task",
|
||||
"futures-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-channel"
|
||||
version = "0.3.28"
|
||||
@@ -574,6 +590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -582,26 +599,65 @@ version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
|
||||
|
||||
[[package]]
|
||||
name = "futures-executor"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-task",
|
||||
"futures-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-io"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
|
||||
|
||||
[[package]]
|
||||
name = "futures-macro"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-sink"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
|
||||
|
||||
[[package]]
|
||||
name = "futures-task"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
|
||||
|
||||
[[package]]
|
||||
name = "futures-timer"
|
||||
version = "3.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
|
||||
|
||||
[[package]]
|
||||
name = "futures-util"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
|
||||
dependencies = [
|
||||
"futures-channel",
|
||||
"futures-core",
|
||||
"futures-io",
|
||||
"futures-macro",
|
||||
"futures-sink",
|
||||
"futures-task",
|
||||
"memchr",
|
||||
"pin-project-lite",
|
||||
"pin-utils",
|
||||
"slab",
|
||||
@@ -1375,6 +1431,12 @@ version = "0.7.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
|
||||
|
||||
[[package]]
|
||||
name = "relative-path"
|
||||
version = "1.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca"
|
||||
|
||||
[[package]]
|
||||
name = "resolv-conf"
|
||||
version = "0.7.0"
|
||||
@@ -1385,12 +1447,50 @@ dependencies = [
|
||||
"quick-error",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rstest"
|
||||
version = "0.18.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
|
||||
dependencies = [
|
||||
"futures",
|
||||
"futures-timer",
|
||||
"rstest_macros",
|
||||
"rustc_version",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rstest_macros"
|
||||
version = "0.18.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"glob",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"regex",
|
||||
"relative-path",
|
||||
"rustc_version",
|
||||
"syn 2.0.38",
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc-demangle"
|
||||
version = "0.1.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
|
||||
|
||||
[[package]]
|
||||
name = "rustc_version"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
|
||||
dependencies = [
|
||||
"semver",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "0.36.15"
|
||||
@@ -1462,6 +1562,12 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "semver"
|
||||
version = "1.0.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.188"
|
||||
|
||||
@@ -48,6 +48,7 @@ procfs = "0.15.1"
|
||||
insta = "1.33.0"
|
||||
pnet_base = "0.34.0"
|
||||
packet-builder = { version = "0.7.0", git = "https://github.com/cyqsimon/packet_builder.git", branch = "patch-update" }
|
||||
rstest = "0.18.2"
|
||||
|
||||
[target.'cfg(target_os="windows")'.build-dependencies]
|
||||
anyhow = "1.0.75"
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
source: src/tests/cases/ui.rs
|
||||
assertion_line: 1580
|
||||
expression: "&terminal_draw_events_mirror[1]"
|
||||
---
|
||||
98Bps
|
||||
|
||||
|
||||
5 0Bps / 28Bps
|
||||
4 0Bps / 26Bps
|
||||
1 0Bps / 22Bps
|
||||
2 0Bps / 21Bps
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3.3.3.3 0Bps / 28Bps
|
||||
2.2.2.2 0Bps / 26Bps
|
||||
1.1.1.1 0Bps / 22Bps
|
||||
4.4.4.4 0Bps / 21Bps
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
source: src/tests/cases/ui.rs
|
||||
assertion_line: 1579
|
||||
expression: "&terminal_draw_events_mirror[0]"
|
||||
---
|
||||
Total Up / Down: 0Bps / 0Bps
|
||||
┌Utilization by process name────────────────────┐
|
||||
│Process Up / Down │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
└───────────────────────────────────────────────┘
|
||||
┌Utilization by remote address──────────────────┐
|
||||
│Remote Address Up / Down │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
└───────────────────────────────────────────────┘
|
||||
Press <SPACE> to pause.
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
source: src/tests/cases/ui.rs
|
||||
expression: "&terminal_draw_events_mirror[0]"
|
||||
---
|
||||
Total Up / Down: 0Bps / 0Bps
|
||||
┌Utilization by process name─────────────────────┐
|
||||
│Process Up / Down │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
└────────────────────────────────────────────────┘
|
||||
┌Utilization by remote address───────────────────┐
|
||||
│Remote Address Up / Down │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
└────────────────────────────────────────────────┘
|
||||
Press <SPACE> to pause.
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
source: src/tests/cases/ui.rs
|
||||
expression: "&terminal_draw_events_mirror[1]"
|
||||
---
|
||||
98Bps
|
||||
|
||||
|
||||
5 0Bps / 28Bps
|
||||
4 0Bps / 26Bps
|
||||
1 0Bps / 22Bps
|
||||
2 0Bps / 21Bps
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3.3.3.3 0Bps / 28Bps
|
||||
2.2.2.2 0Bps / 26Bps
|
||||
1.1.1.1 0Bps / 22Bps
|
||||
4.4.4.4 0Bps / 21Bps
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ use crossterm::event::{Event, KeyCode, KeyEvent, KeyModifiers};
|
||||
use packet_builder::*;
|
||||
use pnet::{datalink::DataLinkReceiver, packet::Packet};
|
||||
use pnet_base::MacAddr;
|
||||
use rstest::fixture;
|
||||
|
||||
use crate::{
|
||||
network::dns::Client,
|
||||
@@ -56,7 +57,8 @@ pub fn build_tcp_packet(
|
||||
pkt.packet().to_vec()
|
||||
}
|
||||
|
||||
pub fn sample_frames() -> Vec<Box<dyn DataLinkReceiver>> {
|
||||
#[fixture]
|
||||
pub fn sample_frames_short() -> Vec<Box<dyn DataLinkReceiver>> {
|
||||
vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
@@ -82,6 +84,125 @@ pub fn sample_frames() -> Vec<Box<dyn DataLinkReceiver>> {
|
||||
]) as Box<dyn DataLinkReceiver>]
|
||||
}
|
||||
|
||||
#[fixture]
|
||||
pub fn sample_frames_sustained_one_process() -> Vec<Box<dyn DataLinkReceiver>> {
|
||||
vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Same here, but one second later",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>]
|
||||
}
|
||||
|
||||
#[fixture]
|
||||
pub fn sample_frames_sustained_multiple_processes() -> Vec<Box<dyn DataLinkReceiver>> {
|
||||
vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I come from 3.3.3.3",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1 one second later",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I come 3.3.3.3 one second later",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>]
|
||||
}
|
||||
|
||||
#[fixture]
|
||||
pub fn sample_frames_sustained_long() -> Vec<Box<dyn DataLinkReceiver>> {
|
||||
vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"omw to 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I was just there!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Is it nice there? I think 1.1.1.1 is dull",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"Well, I heard 1.1.1.1 is all the rage",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"Wait for me!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"They're waiting for you...",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"1.1.1.1 forever!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"10.0.0.2 forever!",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>]
|
||||
}
|
||||
|
||||
pub fn os_input_output(
|
||||
network_frames: Vec<Box<dyn DataLinkReceiver>>,
|
||||
sleep_num: usize,
|
||||
|
||||
@@ -3,12 +3,15 @@ use std::{collections::HashMap, iter, net::IpAddr};
|
||||
use crossterm::event::{Event, KeyCode, KeyEvent, KeyModifiers};
|
||||
use insta::assert_snapshot;
|
||||
use pnet::datalink::DataLinkReceiver;
|
||||
use rstest::rstest;
|
||||
|
||||
use crate::{
|
||||
start,
|
||||
tests::{
|
||||
cases::test_utils::{
|
||||
build_tcp_packet, opts_ui, os_input_output, os_input_output_factory, sample_frames,
|
||||
build_tcp_packet, opts_ui, os_input_output, os_input_output_factory,
|
||||
sample_frames_short, sample_frames_sustained_long,
|
||||
sample_frames_sustained_multiple_processes, sample_frames_sustained_one_process,
|
||||
sleep_and_quit_events, sleep_resize_and_quit_events, test_backend_factory,
|
||||
},
|
||||
fakes::{
|
||||
@@ -266,12 +269,10 @@ fn basic_only_addresses() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[0]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn two_packets_only_processes() {
|
||||
let network_frames = sample_frames();
|
||||
|
||||
#[rstest(sample_frames_short as frames)]
|
||||
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(network_frames, 2);
|
||||
let os_input = os_input_output(frames, 2);
|
||||
let opts = Opt {
|
||||
interface: Some(String::from("interface_name")),
|
||||
raw: false,
|
||||
@@ -292,12 +293,10 @@ fn two_packets_only_processes() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn two_packets_only_connections() {
|
||||
let network_frames = sample_frames();
|
||||
|
||||
#[rstest(sample_frames_short as frames)]
|
||||
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(network_frames, 2);
|
||||
let os_input = os_input_output(frames, 2);
|
||||
let opts = Opt {
|
||||
interface: Some(String::from("interface_name")),
|
||||
raw: false,
|
||||
@@ -318,12 +317,10 @@ fn two_packets_only_connections() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn two_packets_only_addresses() {
|
||||
let network_frames = sample_frames();
|
||||
|
||||
#[rstest(sample_frames_short as frames)]
|
||||
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(network_frames, 2);
|
||||
let os_input = os_input_output(frames, 2);
|
||||
let opts = Opt {
|
||||
interface: Some(String::from("interface_name")),
|
||||
raw: false,
|
||||
@@ -426,12 +423,10 @@ fn one_packet_of_traffic() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bi_directional_traffic() {
|
||||
let network_frames = sample_frames();
|
||||
|
||||
#[rstest(sample_frames_short as frames)]
|
||||
fn bi_directional_traffic(frames: Vec<Box<dyn DataLinkReceiver>>) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
let os_input = os_input_output(network_frames, 2);
|
||||
let os_input = os_input_output(frames, 2);
|
||||
let opts = opts_ui();
|
||||
start(backend, os_input, opts);
|
||||
let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
|
||||
@@ -653,29 +648,11 @@ fn multiple_connections_from_remote_address() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sustained_traffic_from_one_process() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Same here, but one second later",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
#[rstest(sample_frames_sustained_one_process as frames)]
|
||||
fn sustained_traffic_from_one_process(frames: Vec<Box<dyn DataLinkReceiver>>) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let os_input = os_input_output(network_frames, 3);
|
||||
let os_input = os_input_output(frames, 3);
|
||||
let opts = opts_ui();
|
||||
start(backend, os_input, opts);
|
||||
let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
|
||||
@@ -694,29 +671,11 @@ fn sustained_traffic_from_one_process() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sustained_traffic_from_one_process_total() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Same here, but one second later",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
#[rstest(sample_frames_sustained_one_process as frames)]
|
||||
fn sustained_traffic_from_one_process_total(frames: Vec<Box<dyn DataLinkReceiver>>) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let os_input = os_input_output(network_frames, 3);
|
||||
let os_input = os_input_output(frames, 3);
|
||||
let mut opts = opts_ui();
|
||||
opts.render_opts.total_utilization = true;
|
||||
start(backend, os_input, opts);
|
||||
@@ -736,43 +695,11 @@ fn sustained_traffic_from_one_process_total() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2].replace("1 \n", "2 \n"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sustained_traffic_from_multiple_processes() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I come from 3.3.3.3",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1 one second later",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I come 3.3.3.3 one second later",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
#[rstest(sample_frames_sustained_multiple_processes as frames)]
|
||||
fn sustained_traffic_from_multiple_processes(frames: Vec<Box<dyn DataLinkReceiver>>) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let os_input = os_input_output(network_frames, 3);
|
||||
let os_input = os_input_output(frames, 3);
|
||||
let opts = opts_ui();
|
||||
start(backend, os_input, opts);
|
||||
let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
|
||||
@@ -791,43 +718,11 @@ fn sustained_traffic_from_multiple_processes() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sustained_traffic_from_multiple_processes_total() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I come from 3.3.3.3",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1 one second later",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I come 3.3.3.3 one second later",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
#[rstest(sample_frames_sustained_multiple_processes as frames)]
|
||||
fn sustained_traffic_from_multiple_processes_total(frames: Vec<Box<dyn DataLinkReceiver>>) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let os_input = os_input_output(network_frames, 3);
|
||||
let os_input = os_input_output(frames, 3);
|
||||
let mut opts = opts_ui();
|
||||
opts.render_opts.total_utilization = true;
|
||||
start(backend, os_input, opts);
|
||||
@@ -847,71 +742,13 @@ fn sustained_traffic_from_multiple_processes_total() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2].replace("1 \n", "2 \n"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sustained_traffic_from_multiple_processes_bi_directional() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"omw to 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I was just there!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Is it nice there? I think 1.1.1.1 is dull",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"Well, I heard 1.1.1.1 is all the rage",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"Wait for me!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"They're waiting for you...",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"1.1.1.1 forever!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"10.0.0.2 forever!",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
#[rstest(sample_frames_sustained_long as frames)]
|
||||
fn sustained_traffic_from_multiple_processes_bi_directional(
|
||||
frames: Vec<Box<dyn DataLinkReceiver>>,
|
||||
) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let os_input = os_input_output(network_frames, 3);
|
||||
let os_input = os_input_output(frames, 3);
|
||||
let opts = opts_ui();
|
||||
start(backend, os_input, opts);
|
||||
let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
|
||||
@@ -930,71 +767,13 @@ fn sustained_traffic_from_multiple_processes_bi_directional() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sustained_traffic_from_multiple_processes_bi_directional_total() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"omw to 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I was just there!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Is it nice there? I think 1.1.1.1 is dull",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"Well, I heard 1.1.1.1 is all the rage",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"Wait for me!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"They're waiting for you...",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"1.1.1.1 forever!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"10.0.0.2 forever!",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
#[rstest(sample_frames_sustained_long as frames)]
|
||||
fn sustained_traffic_from_multiple_processes_bi_directional_total(
|
||||
frames: Vec<Box<dyn DataLinkReceiver>>,
|
||||
) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let os_input = os_input_output(network_frames, 3);
|
||||
let os_input = os_input_output(frames, 3);
|
||||
let mut opts = opts_ui();
|
||||
opts.render_opts.total_utilization = true;
|
||||
start(backend, os_input, opts);
|
||||
@@ -1014,68 +793,8 @@ fn sustained_traffic_from_multiple_processes_bi_directional_total() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2].replace("1 \n", "2 \n"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn traffic_with_host_names() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"omw to 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I was just there!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Is it nice there? I think 1.1.1.1 is dull",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"Well, I heard 1.1.1.1 is all the rage",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"Wait for me!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"They're waiting for you...",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"1.1.1.1 forever!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"10.0.0.2 forever!",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
#[rstest(sample_frames_sustained_long as network_frames)]
|
||||
fn traffic_with_host_names(network_frames: Vec<Box<dyn DataLinkReceiver>>) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let mut ips_to_hostnames = HashMap::new();
|
||||
@@ -1120,68 +839,8 @@ fn traffic_with_host_names() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn truncate_long_hostnames() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"omw to 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I was just there!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Is it nice there? I think 1.1.1.1 is dull",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"Well, I heard 1.1.1.1 is all the rage",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"Wait for me!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"They're waiting for you...",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"1.1.1.1 forever!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"10.0.0.2 forever!",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
#[rstest(sample_frames_sustained_long as network_frames)]
|
||||
fn truncate_long_hostnames(network_frames: Vec<Box<dyn DataLinkReceiver>>) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let mut ips_to_hostnames = HashMap::new();
|
||||
@@ -1226,67 +885,8 @@ fn truncate_long_hostnames() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn no_resolve_mode() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"omw to 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"I was just there!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"Is it nice there? I think 1.1.1.1 is dull",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"Well, I heard 1.1.1.1 is all the rage",
|
||||
)),
|
||||
None, // sleep
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"3.3.3.3",
|
||||
4435,
|
||||
1337,
|
||||
b"Wait for me!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"They're waiting for you...",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"1.1.1.1 forever!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"10.0.0.2",
|
||||
"1.1.1.1",
|
||||
443,
|
||||
12345,
|
||||
b"10.0.0.2 forever!",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
#[rstest(sample_frames_sustained_long as network_frames)]
|
||||
fn no_resolve_mode(network_frames: Vec<Box<dyn DataLinkReceiver>>) {
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
|
||||
|
||||
let mut ips_to_hostnames = HashMap::new();
|
||||
@@ -1373,8 +973,13 @@ fn traffic_with_winch_event() {
|
||||
assert_snapshot!(&terminal_draw_events_mirror[2]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn layout_full_width_under_30_height() {
|
||||
#[rstest]
|
||||
#[case("full-width-under-30-height", 190, 29)]
|
||||
#[case("under-120-width-full-height", 119, 50)]
|
||||
#[case("under-120-width-under-30-height", 119, 29)]
|
||||
#[case("under-50-width-under-50-height", 50, 50)]
|
||||
#[case("under-70-width-under-30-height", 69, 29)]
|
||||
fn layout(#[case] name: &str, #[case] width: u16, #[case] height: u16) {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
@@ -1406,7 +1011,7 @@ fn layout_full_width_under_30_height() {
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 29);
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(width, height);
|
||||
|
||||
let os_input = os_input_output(network_frames, 2);
|
||||
let opts = opts_ui();
|
||||
@@ -1422,211 +1027,6 @@ fn layout_full_width_under_30_height() {
|
||||
);
|
||||
|
||||
assert_eq!(terminal_draw_events_mirror.len(), 2);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[0]);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn layout_under_120_width_full_height() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"Greetings traveller, I'm from 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"2.2.2.2",
|
||||
"10.0.0.2",
|
||||
54321,
|
||||
4434,
|
||||
b"You know, 2.2.2.2 is really nice!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"4.4.4.4",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4432,
|
||||
b"I'm partial to 4.4.4.4",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(119, 50);
|
||||
|
||||
let os_input = os_input_output(network_frames, 2);
|
||||
let opts = opts_ui();
|
||||
start(backend, os_input, opts);
|
||||
let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
|
||||
|
||||
let expected_terminal_events = vec![
|
||||
Clear, HideCursor, Draw, HideCursor, Flush, Draw, HideCursor, Flush, ShowCursor,
|
||||
];
|
||||
assert_eq!(
|
||||
&terminal_events.lock().unwrap()[..],
|
||||
&expected_terminal_events[..]
|
||||
);
|
||||
|
||||
assert_eq!(terminal_draw_events_mirror.len(), 2);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[0]);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn layout_under_120_width_under_30_height() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"Greetings traveller, I'm from 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"2.2.2.2",
|
||||
"10.0.0.2",
|
||||
54321,
|
||||
4434,
|
||||
b"You know, 2.2.2.2 is really nice!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"4.4.4.4",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4432,
|
||||
b"I'm partial to 4.4.4.4",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(119, 29);
|
||||
let os_input = os_input_output(network_frames, 2);
|
||||
let opts = opts_ui();
|
||||
start(backend, os_input, opts);
|
||||
let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
|
||||
|
||||
let expected_terminal_events = vec![
|
||||
Clear, HideCursor, Draw, HideCursor, Flush, Draw, HideCursor, Flush, ShowCursor,
|
||||
];
|
||||
assert_eq!(
|
||||
&terminal_events.lock().unwrap()[..],
|
||||
&expected_terminal_events[..]
|
||||
);
|
||||
|
||||
assert_eq!(terminal_draw_events_mirror.len(), 2);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[0]);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn layout_under_50_width_under_50_height() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"Greetings traveller, I'm from 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"2.2.2.2",
|
||||
"10.0.0.2",
|
||||
54321,
|
||||
4434,
|
||||
b"You know, 2.2.2.2 is really nice!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"4.4.4.4",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4432,
|
||||
b"I'm partial to 4.4.4.4",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(49, 49);
|
||||
let os_input = os_input_output(network_frames, 2);
|
||||
let opts = opts_ui();
|
||||
start(backend, os_input, opts);
|
||||
let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
|
||||
|
||||
let expected_terminal_events = vec![
|
||||
Clear, HideCursor, Draw, HideCursor, Flush, Draw, HideCursor, Flush, ShowCursor,
|
||||
];
|
||||
assert_eq!(
|
||||
&terminal_events.lock().unwrap()[..],
|
||||
&expected_terminal_events[..]
|
||||
);
|
||||
|
||||
assert_eq!(terminal_draw_events_mirror.len(), 2);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[0]);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn layout_under_70_width_under_30_height() {
|
||||
let network_frames = vec![NetworkFrames::new(vec![
|
||||
Some(build_tcp_packet(
|
||||
"1.1.1.1",
|
||||
"10.0.0.2",
|
||||
12345,
|
||||
443,
|
||||
b"I have come from 1.1.1.1",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"3.3.3.3",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4435,
|
||||
b"Greetings traveller, I'm from 3.3.3.3",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"2.2.2.2",
|
||||
"10.0.0.2",
|
||||
54321,
|
||||
4434,
|
||||
b"You know, 2.2.2.2 is really nice!",
|
||||
)),
|
||||
Some(build_tcp_packet(
|
||||
"4.4.4.4",
|
||||
"10.0.0.2",
|
||||
1337,
|
||||
4432,
|
||||
b"I'm partial to 4.4.4.4",
|
||||
)),
|
||||
]) as Box<dyn DataLinkReceiver>];
|
||||
let (terminal_events, terminal_draw_events, backend) = test_backend_factory(69, 29);
|
||||
let os_input = os_input_output(network_frames, 2);
|
||||
let opts = opts_ui();
|
||||
start(backend, os_input, opts);
|
||||
let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
|
||||
|
||||
let expected_terminal_events = vec![
|
||||
Clear, HideCursor, Draw, HideCursor, Flush, Draw, HideCursor, Flush, ShowCursor,
|
||||
];
|
||||
assert_eq!(
|
||||
&terminal_events.lock().unwrap()[..],
|
||||
&expected_terminal_events[..]
|
||||
);
|
||||
|
||||
assert_eq!(terminal_draw_events_mirror.len(), 2);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[0]);
|
||||
assert_snapshot!(&terminal_draw_events_mirror[1]);
|
||||
assert_snapshot!(format!("{name}-0"), &terminal_draw_events_mirror[0]);
|
||||
assert_snapshot!(format!("{name}-1"), &terminal_draw_events_mirror[1]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user