From fb584c520ef60845506a14cb910745ffc3b92a66 Mon Sep 17 00:00:00 2001
From: Ingela Anderton Andin <ingela@erlang.org>
Date: Tue, 24 Mar 2015 18:58:46 +0100
Subject: ssh: Add openSSH interop check

---
 lib/ssh/test/ssh_connection_SUITE.erl |  9 +++++----
 lib/ssh/test/ssh_test_lib.erl         | 15 ++++++++++++++-
 lib/ssh/test/ssh_to_openssh_SUITE.erl |  4 ++--
 3 files changed, 21 insertions(+), 7 deletions(-)

(limited to 'lib/ssh')

diff --git a/lib/ssh/test/ssh_connection_SUITE.erl b/lib/ssh/test/ssh_connection_SUITE.erl
index c9441a46b0..6fc09876ad 100644
--- a/lib/ssh/test/ssh_connection_SUITE.erl
+++ b/lib/ssh/test/ssh_connection_SUITE.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2008-2014. All Rights Reserved.
+%% Copyright Ericsson AB 2008-2015. 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
@@ -76,12 +76,13 @@ end_per_suite(_Config) ->
     crypto:stop().
 
 %%--------------------------------------------------------------------
-init_per_group(openssh, _Config) ->
+init_per_group(openssh, Config) ->
     case gen_tcp:connect("localhost", 22, []) of
 	{error,econnrefused} ->
 	    {skip,"No openssh deamon"};
 	{ok, Socket} ->
-	    gen_tcp:close(Socket)
+	    gen_tcp:close(Socket),
+	    ssh_test_lib:openssh_sanity_check(Config)
     end;
 init_per_group(_, Config) ->
     Config.
@@ -93,7 +94,7 @@ end_per_group(_, Config) ->
 init_per_testcase(_TestCase, Config) ->
     %% To make sure we start clean as it is not certain that
     %% end_per_testcase will be run!
-    ssh:stop(),
+    end_per_testcase(Config),
     ssh:start(),
     Config.
 
diff --git a/lib/ssh/test/ssh_test_lib.erl b/lib/ssh/test/ssh_test_lib.erl
index b8abf5e80e..8ca05746db 100644
--- a/lib/ssh/test/ssh_test_lib.erl
+++ b/lib/ssh/test/ssh_test_lib.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2004-2012. All Rights Reserved.
+%% Copyright Ericsson AB 2004-2015. 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
@@ -358,3 +358,16 @@ do_inet_port(Node) ->
     {ok, Socket} = rpc:call(Node, gen_tcp, listen, [0, [{reuseaddr, true}]]),
     {ok, Port} = rpc:call(Node, inet, port, [Socket]),
     {Port, Socket}.
+
+openssh_sanity_check(Config) ->
+    ssh:start(),
+    case ssh:connect("localhost", 22, []) of
+	{ok, Pid} ->
+	    ssh:close(Pid),
+	    ssh:stop(),
+	    Config;
+	Err ->
+	    Str = lists:append(io_lib:format("~p", [Err])),
+	    ssh:stop(),
+	    {skip, Str}
+    end.
diff --git a/lib/ssh/test/ssh_to_openssh_SUITE.erl b/lib/ssh/test/ssh_to_openssh_SUITE.erl
index af70eeb46c..d99123f871 100644
--- a/lib/ssh/test/ssh_to_openssh_SUITE.erl
+++ b/lib/ssh/test/ssh_to_openssh_SUITE.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2008-2014. All Rights Reserved.
+%% Copyright Ericsson AB 2008-2015. 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
@@ -66,7 +66,7 @@ init_per_suite(Config) ->
 		{error,econnrefused} ->
 		    {skip,"No openssh deamon"};
 		_ ->
-		    Config
+		    ssh_test_lib:openssh_sanity_check(Config)
 	    end;
 	_Else ->
 	    {skip,"Could not start crypto!"}
-- 
cgit v1.2.3