aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/test/property_test/ssh_eqc_subsys.erl
diff options
context:
space:
mode:
authorHans Nilsson <[email protected]>2014-09-02 17:05:38 +0200
committerHans Nilsson <[email protected]>2014-09-02 17:05:38 +0200
commit5e7c707b1a7e98d75aa9edeaaf3f2b15d7f27110 (patch)
tree52c528e63f4490d50f4151db0d2586f2c9d94959 /lib/ssh/test/property_test/ssh_eqc_subsys.erl
parentb3e08774fa418c3adae11d823fc7e9328674b4d2 (diff)
downloadotp-5e7c707b1a7e98d75aa9edeaaf3f2b15d7f27110.tar.gz
otp-5e7c707b1a7e98d75aa9edeaaf3f2b15d7f27110.tar.bz2
otp-5e7c707b1a7e98d75aa9edeaaf3f2b15d7f27110.zip
ssh: Add simple experimental property test suites
Diffstat (limited to 'lib/ssh/test/property_test/ssh_eqc_subsys.erl')
-rw-r--r--lib/ssh/test/property_test/ssh_eqc_subsys.erl63
1 files changed, 63 insertions, 0 deletions
diff --git a/lib/ssh/test/property_test/ssh_eqc_subsys.erl b/lib/ssh/test/property_test/ssh_eqc_subsys.erl
new file mode 100644
index 0000000000..e4b6af166f
--- /dev/null
+++ b/lib/ssh/test/property_test/ssh_eqc_subsys.erl
@@ -0,0 +1,63 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-2014. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(ssh_eqc_subsys).
+
+-behaviour(ssh_daemon_channel).
+
+-export([init/1, handle_msg/2, handle_ssh_msg/2, terminate/2]).
+
+-export([response/2]).
+
+-record(state, {id,
+ cm,
+ subsyst
+ }).
+
+init([SS]) ->
+ {ok, #state{subsyst=SS}}.
+
+handle_msg({ssh_channel_up, ChannelId, ConnectionManager}, State) ->
+ {ok, State#state{id = ChannelId,
+ cm = ConnectionManager}}.
+
+handle_ssh_msg({ssh_cm, CM, {data, ChannelId, Type, Data}}, S) ->
+ ssh_connection:send(CM, ChannelId, Type, response(Data,S)),
+ {ok, S};
+
+handle_ssh_msg({ssh_cm, _ConnectionManager, {eof, _ChannelId}}, State) ->
+ {ok, State};
+
+handle_ssh_msg({ssh_cm, _, {signal, _, _}}, State) ->
+ %% Ignore signals according to RFC 4254 section 6.9.
+ {ok, State};
+
+handle_ssh_msg({ssh_cm, _, {exit_signal, ChannelId, _, _Error, _}}, State) ->
+ {stop, ChannelId, State};
+
+handle_ssh_msg({ssh_cm, _, {exit_status, ChannelId, _Status}}, State) ->
+ {stop, ChannelId, State}.
+
+terminate(_Reason, _State) ->
+ ok.
+
+
+response(Msg, #state{subsyst=SS}) -> response(Msg, SS);
+response(Msg, SS) -> <<"Resp: ",Msg/binary,(list_to_binary(SS))/binary>>.