summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.toml2
-rw-r--r--src/tests/e2e/cases.rs30
-rw-r--r--src/tests/e2e/remote_runner.rs11
-rw-r--r--zellij-server/src/unit/tab_tests.rs2
4 files changed, 11 insertions, 34 deletions
diff --git a/Makefile.toml b/Makefile.toml
index 8cb5f4d37..df0d93ce0 100644
--- a/Makefile.toml
+++ b/Makefile.toml
@@ -69,7 +69,7 @@ args = ["run", "--", "--data-dir", "${CARGO_TARGET_DIR}/dev-data/", "@@split(CAR
# Simple clippy tweak
[tasks.clippy]
-args = ["clippy", "--", "@@split(CARGO_MAKE_TASK_ARGS,;)"]
+args = ["clippy", "--all-targets", "--", "@@split(CARGO_MAKE_TASK_ARGS,;)"]
# Release building and installing Zellij
[tasks.install]
diff --git a/src/tests/e2e/cases.rs b/src/tests/e2e/cases.rs
index 1457c0a91..ff8ac2c5b 100644
--- a/src/tests/e2e/cases.rs
+++ b/src/tests/e2e/cases.rs
@@ -79,7 +79,6 @@ pub fn starts_with_one_terminal() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size);
let last_snapshot = runner.take_snapshot_after(Step {
name: "Wait for app to load",
@@ -112,7 +111,6 @@ pub fn split_terminals_vertically() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size).add_step(Step {
name: "Split pane to the right",
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
@@ -157,7 +155,6 @@ pub fn cannot_split_terminals_vertically_when_active_terminal_is_too_small() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size).add_step(Step {
name: "Split pane to the right",
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
@@ -205,7 +202,6 @@ pub fn scrolling_inside_a_pane() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.retry_pause_ms(1000) // we need a longer retry period here because it takes some time to fill the pty buffer
.add_step(Step {
@@ -306,7 +302,6 @@ pub fn toggle_pane_fullscreen() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -371,7 +366,6 @@ pub fn open_new_tab() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -440,7 +434,6 @@ pub fn close_tab() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -524,7 +517,6 @@ pub fn close_pane() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -587,9 +579,8 @@ pub fn exit_zellij() {
rows: 24,
};
let mut test_attempts = 10;
- let last_snapshot = loop {
+ let last_snapshot = {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size).add_step(Step {
name: "Wait for app to load",
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
@@ -603,7 +594,7 @@ pub fn exit_zellij() {
},
});
runner.run_all_steps();
- break runner.take_snapshot_after(Step {
+ runner.take_snapshot_after(Step {
name: "Wait for app to exit",
instruction: |remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
@@ -614,7 +605,7 @@ pub fn exit_zellij() {
}
step_is_complete
},
- });
+ })
};
assert!(last_snapshot.contains("Bye from Zellij!"));
}
@@ -629,7 +620,6 @@ pub fn closing_last_pane_exits_zellij() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size).add_step(Step {
name: "Close pane",
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
@@ -672,7 +662,6 @@ pub fn typing_exit_closes_pane() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -738,7 +727,6 @@ pub fn resize_pane() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -803,7 +791,6 @@ pub fn lock_mode() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Enter lock mode",
@@ -864,7 +851,6 @@ pub fn resize_terminal_window() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -926,7 +912,6 @@ pub fn detach_and_attach_session() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new_mirrored_session(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -1014,7 +999,6 @@ pub fn accepts_basic_layout() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new_with_layout(fake_win_size, layout_file_name);
runner.run_all_steps();
let last_snapshot = runner.take_snapshot_after(Step {
@@ -1050,7 +1034,6 @@ fn focus_pane_with_mouse() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.add_step(Step {
name: "Split pane to the right",
@@ -1111,7 +1094,6 @@ pub fn scrolling_inside_a_pane_with_mouse() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size)
.retry_pause_ms(1000) // we need a longer retry period here because it takes some time to fill the pty buffer
.add_step(Step {
@@ -1208,7 +1190,6 @@ pub fn start_without_pane_frames() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new_without_frames(fake_win_size).add_step(Step {
name: "Split pane to the right",
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
@@ -1259,7 +1240,6 @@ pub fn mirrored_sessions() {
// here we connect with one runner, then connect with another, perform some actions and
// then make sure they were also reflected (mirrored) in the first runner afterwards
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut first_runner =
RemoteRunner::new_with_session_name(fake_win_size, session_name, true)
.dont_panic()
@@ -1409,7 +1389,6 @@ pub fn multiple_users_in_same_pane_and_tab() {
// here we connect with one runner, then connect with another, perform some actions and
// then make sure they were also reflected (mirrored) in the first runner afterwards
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut first_runner =
RemoteRunner::new_with_session_name(fake_win_size, session_name, false)
.dont_panic()
@@ -1498,7 +1477,6 @@ pub fn multiple_users_in_different_panes_and_same_tab() {
// here we connect with one runner, then connect with another, perform some actions and
// then make sure they were also reflected (mirrored) in the first runner afterwards
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut first_runner =
RemoteRunner::new_with_session_name(fake_win_size, session_name, false)
.dont_panic()
@@ -1591,7 +1569,6 @@ pub fn multiple_users_in_different_tabs() {
// here we connect with one runner, then connect with another, perform some actions and
// then make sure they were also reflected (mirrored) in the first runner afterwards
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut first_runner =
RemoteRunner::new_with_session_name(fake_win_size, session_name, false)
.dont_panic()
@@ -1690,7 +1667,6 @@ pub fn bracketed_paste() {
let mut test_attempts = 10;
let last_snapshot = loop {
RemoteRunner::kill_running_sessions(fake_win_size);
- drop(());
let mut runner = RemoteRunner::new(fake_win_size).add_step(Step {
name: "Send pasted text followed by normal text",
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
diff --git a/src/tests/e2e/remote_runner.rs b/src/tests/e2e/remote_runner.rs
index feaeecdac..66d622fad 100644
--- a/src/tests/e2e/remote_runner.rs
+++ b/src/tests/e2e/remote_runner.rs
@@ -1,3 +1,4 @@
+use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::{Arc, Mutex};
use zellij_tile::data::Palette;
@@ -135,8 +136,8 @@ fn read_from_channel(
last_snapshot: &Arc<Mutex<String>>,
cursor_coordinates: &Arc<Mutex<(usize, usize)>>,
pane_geom: &PaneGeom,
-) -> (Arc<Mutex<bool>>, std::thread::JoinHandle<()>) {
- let should_keep_running = Arc::new(Mutex::new(true));
+) -> (Arc<AtomicBool>, std::thread::JoinHandle<()>) {
+ let should_keep_running = Arc::new(AtomicBool::new(true));
let thread = std::thread::Builder::new()
.name("read_thread".into())
.spawn({
@@ -151,7 +152,7 @@ fn read_from_channel(
move || {
let mut should_sleep = false;
loop {
- if !*should_keep_running.lock().unwrap() {
+ if !should_keep_running.load(Ordering::SeqCst) {
break;
}
if should_sleep {
@@ -307,7 +308,7 @@ pub struct RemoteRunner {
panic_on_no_retries_left: bool,
last_snapshot: Arc<Mutex<String>>,
cursor_coordinates: Arc<Mutex<(usize, usize)>>, // x, y
- reader_thread: (Arc<Mutex<bool>>, std::thread::JoinHandle<()>),
+ reader_thread: (Arc<AtomicBool>, std::thread::JoinHandle<()>),
pub test_timed_out: bool,
}
@@ -606,6 +607,6 @@ impl Drop for RemoteRunner {
fn drop(&mut self) {
let _ = self.channel.lock().unwrap().close();
let reader_thread_running = &mut self.reader_thread.0;
- *reader_thread_running.lock().unwrap() = false;
+ reader_thread_running.store(false, Ordering::SeqCst);
}
}
diff --git a/zellij-server/src/unit/tab_tests.rs b/zellij-server/src/unit/tab_tests.rs
index d356cad72..13b971245 100644
--- a/zellij-server/src/unit/tab_tests.rs
+++ b/zellij-server/src/unit/tab_tests.rs
@@ -12,7 +12,7 @@ use zellij_utils::input::layout::LayoutTemplate;
use zellij_utils::ipc::IpcReceiverWithContext;
use zellij_utils::pane_size::Size;
-use std::cell::{RefCell, RefMut};
+use std::cell::RefCell;
use std::collections::HashSet;
use std::os::unix::io::RawFd;
use std::rc::Rc;