diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-02 02:45:20 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-02 02:45:20 +0300 |
| commit | cc88b3b8e5bb9f7d9f23ed6ae85a52fd7b5b9ed6 (patch) | |
| tree | 4d37c760099070f1a1488b61c7b7271875aafef8 /tests/cli | |
| parent | 18e69891dca486d669a584facd80644bb51f54a2 (diff) | |
feat: add stable client endpoint compatibility (#3509)
* feat: add stable client endpoint compatibility
* fix: keep portable-pty patch checks composable
* ci: run maintenance checks in pull requests
* fix: reject endpoint errors from terminal clients
* feat: keep compatible servers running across updates
Diffstat (limited to 'tests/cli')
| -rw-r--r-- | tests/cli/sessions.rs | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/cli/sessions.rs b/tests/cli/sessions.rs index cc8474eb..8e5fc48f 100644 --- a/tests/cli/sessions.rs +++ b/tests/cli/sessions.rs @@ -398,7 +398,11 @@ fn status_commands_report_client_and_server_versions() { "stdout: {full_stdout}" ); assert!( - full_stdout.contains(" compatible: yes"), + full_stdout.contains(" private_protocol_compatible: yes"), + "stdout: {full_stdout}" + ); + assert!( + full_stdout.contains(" endpoint_compatible: yes"), "stdout: {full_stdout}" ); assert!( @@ -406,6 +410,10 @@ fn status_commands_report_client_and_server_versions() { "stdout: {full_stdout}" ); assert!( + full_stdout.contains(" server_binary_stale: no"), + "stdout: {full_stdout}" + ); + assert!( full_stdout.contains(&socket_path.display().to_string()), "stdout: {full_stdout}" ); @@ -422,7 +430,7 @@ fn status_commands_report_client_and_server_versions() { "stdout: {server_stdout}" ); assert!( - server_stdout.contains("protocol: 22"), + server_stdout.contains("private_protocol: 22"), "stdout: {server_stdout}" ); @@ -438,6 +446,10 @@ fn status_commands_report_client_and_server_versions() { "stdout: {client_stdout}" ); assert!( + client_stdout.contains("endpoint_protocol_generation: 1"), + "stdout: {client_stdout}" + ); + assert!( client_stdout.contains("binary: "), "stdout: {client_stdout}" ); @@ -445,25 +457,31 @@ fn status_commands_report_client_and_server_versions() { let full_json = run_cli_json(&socket_path, &["status", "--json"]); assert_eq!(full_json["client"]["version"], env!("CARGO_PKG_VERSION")); assert_eq!(full_json["client"]["protocol"], 22); + assert_eq!(full_json["client"]["endpoint_protocol_generation"], 1); assert_eq!(full_json["server"]["status"], "running"); assert_eq!(full_json["server"]["running"], true); assert_eq!(full_json["server"]["compatible"], true); + assert_eq!(full_json["server"]["endpoint_compatible"], true); assert_eq!( full_json["server"]["socket"], socket_path.display().to_string() ); assert_eq!(full_json["server"]["restart_needed"], false); + assert_eq!(full_json["server"]["server_binary_stale"], false); assert_eq!(full_json["update"]["restart_needed"], false); + assert_eq!(full_json["update"]["server_binary_stale"], false); let server_json = run_cli_json(&socket_path, &["status", "server", "--json"]); assert_eq!(server_json["status"], "running"); assert_eq!(server_json["version"], env!("CARGO_PKG_VERSION")); assert_eq!(server_json["protocol"], 22); assert_eq!(server_json["compatible"], true); + assert_eq!(server_json["endpoint_compatible"], true); let client_json = run_cli_json(&socket_path, &["status", "client", "--json"]); assert_eq!(client_json["version"], env!("CARGO_PKG_VERSION")); assert_eq!(client_json["protocol"], 22); + assert_eq!(client_json["endpoint_protocol_generation"], 1); assert!(client_json["binary"] .as_str() .is_some_and(|path| !path.is_empty())); @@ -485,6 +503,10 @@ fn status_reports_not_running_when_server_socket_is_missing() { assert!(stdout.contains(" status: not running"), "stdout: {stdout}"); assert!(stdout.contains(" restart_needed: no"), "stdout: {stdout}"); assert!( + stdout.contains(" server_binary_stale: no"), + "stdout: {stdout}" + ); + assert!( stdout.contains(&socket_path.display().to_string()), "stdout: {stdout}" ); @@ -497,7 +519,9 @@ fn status_reports_not_running_when_server_socket_is_missing() { socket_path.display().to_string() ); assert_eq!(status_json["server"]["restart_needed"], false); + assert_eq!(status_json["server"]["server_binary_stale"], false); assert_eq!(status_json["update"]["restart_needed"], false); + assert_eq!(status_json["update"]["server_binary_stale"], false); cleanup_test_base(&base); } |
