From 8d27ace14a1dd9b9899fedec818b789081e33e83 Mon Sep 17 00:00:00 2001
From: Siri Hansen
Date: Wed, 17 May 2017 16:13:00 +0200
Subject: [ct] Add ct_ssh:shell/2,3
---
lib/common_test/doc/src/ct_ssh.xml | 27 +++++++++++++++++++++++++++
lib/common_test/src/ct_ssh.erl | 28 +++++++++++++++++++++++++++-
2 files changed, 54 insertions(+), 1 deletion(-)
(limited to 'lib')
diff --git a/lib/common_test/doc/src/ct_ssh.xml b/lib/common_test/doc/src/ct_ssh.xml
index 137e4c3f1d..63627d8840 100644
--- a/lib/common_test/doc/src/ct_ssh.xml
+++ b/lib/common_test/doc/src/ct_ssh.xml
@@ -1033,6 +1033,33 @@ ChannelId, 0, Data, End, Timeout).
+
+ shell(SSH, ChannelId) -> ok | {error, Reason}
+ Equivalent to shell(SSH, ChannelId, DefaultTimeout).
+
+ Equivalent to
+ ct_ssh:shell(SSH, ChannelId,
+ DefaultTimeout).
+
+
+
+
+ shell(SSH, ChannelId, Timeout) -> ok | {error, Reason}
+ Requests that the user default shell is executed at the
+ server end.
+
+ SSH = connection()
+ ChannelId = integer()
+ Timeout = integer()
+ Reason = term()
+
+
+ Requests that the user default shell (typically defined in
+ /etc/passwd in Unix systems) is executed at the
+ server end.
+
+
+
subsystem(SSH, ChannelId, Subsystem) -> Status | {error, Reason}
Equivalent to subsystem(SSH, ChannelId, Subsystem,
diff --git a/lib/common_test/src/ct_ssh.erl b/lib/common_test/src/ct_ssh.erl
index 6ab3bf036c..5ac91f396b 100644
--- a/lib/common_test/src/ct_ssh.erl
+++ b/lib/common_test/src/ct_ssh.erl
@@ -68,7 +68,8 @@
send_and_receive/3, send_and_receive/4, send_and_receive/5,
send_and_receive/6,
exec/2, exec/3, exec/4,
- subsystem/3, subsystem/4]).
+ subsystem/3, subsystem/4,
+ shell/2, shell/3]).
%% STFP Functions
-export([sftp_connect/1,
@@ -94,6 +95,7 @@
-record(state, {ssh_ref, conn_type, target}).
+-type handle() :: pid().
%%%-----------------------------------------------------------------
%%%------------------------ SSH COMMANDS ---------------------------
@@ -490,6 +492,22 @@ subsystem(SSH, ChannelId, Subsystem, Timeout) ->
call(SSH, {subsystem,ChannelId,Subsystem,Timeout}).
+-spec shell(SSH, ChannelId) -> Result when
+ SSH :: handle() | ct:target_name(),
+ ChannelId :: ssh:ssh_channel_id(),
+ Result :: ok | {error,term()}.
+shell(SSH, ChannelId) ->
+ shell(SSH, ChannelId, ?DEFAULT_TIMEOUT).
+
+-spec shell(SSH, ChannelId, Timeout) -> Result when
+ SSH :: handle() | ct:target_name(),
+ ChannelId :: ssh:ssh_channel_id(),
+ Timeout :: timeout(),
+ Result :: ok | {error,term()}.
+shell(SSH, ChannelId, Timeout) ->
+ call(SSH, {shell,ChannelId,Timeout}).
+
+
%%%-----------------------------------------------------------------
%%%------------------------ SFTP COMMANDS --------------------------
@@ -1067,6 +1085,14 @@ handle_msg({subsystem,Chn,Subsystem,TO}, State) ->
Result = ssh_connection:subsystem(SSHRef, Chn, Subsystem, TO),
{Result,State};
+handle_msg({shell,Chn,TO}, State) ->
+ #state{ssh_ref=SSHRef, target=Target} = State,
+ try_log(heading(shell,Target),
+ "SSH Ref: ~p, Chn: ~p, Timeout: ~p",
+ [SSHRef,Chn,TO]),
+ Result = ssh_connection:shell(SSHRef, Chn),
+ {Result,State};
+
%% --- SFTP Commands ---
handle_msg({read_file,Srv,File}=Cmd, S=#state{ssh_ref=SSHRef}) ->
--
cgit v1.2.3