From 8bfcd11948895164d1841c0c00450b0e26cb9927 Mon Sep 17 00:00:00 2001 From: Hans Nilsson Date: Wed, 13 Apr 2016 15:35:41 +0200 Subject: ssh: break out test macro ?wait_match into new ssh_test_lib.hrl --- lib/ssh/test/Makefile | 1 + lib/ssh/test/ssh_connection_SUITE.erl | 5 +++-- lib/ssh/test/ssh_sup_SUITE.erl | 27 +++------------------------ lib/ssh/test/ssh_test_lib.hrl | 27 +++++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 26 deletions(-) create mode 100644 lib/ssh/test/ssh_test_lib.hrl (limited to 'lib/ssh/test') diff --git a/lib/ssh/test/Makefile b/lib/ssh/test/Makefile index 4ecc662c13..6ce6d6f537 100644 --- a/lib/ssh/test/Makefile +++ b/lib/ssh/test/Makefile @@ -55,6 +55,7 @@ MODULES= \ ssh_relay HRL_FILES_NEEDED_IN_TEST= \ + $(ERL_TOP)/lib/ssh/test/ssh_test_lib.hrl \ $(ERL_TOP)/lib/ssh/src/ssh.hrl \ $(ERL_TOP)/lib/ssh/src/ssh_xfer.hrl diff --git a/lib/ssh/test/ssh_connection_SUITE.erl b/lib/ssh/test/ssh_connection_SUITE.erl index fd1b2e4f8e..0f757a0322 100644 --- a/lib/ssh/test/ssh_connection_SUITE.erl +++ b/lib/ssh/test/ssh_connection_SUITE.erl @@ -23,6 +23,7 @@ -include_lib("common_test/include/ct.hrl"). -include_lib("ssh/src/ssh_connect.hrl"). +-include("ssh_test_lib.hrl"). -compile(export_all). @@ -691,7 +692,7 @@ max_channels_option(Config) when is_list(Config) -> end, %%%---- Channel 3(3): subsystem "echo_n" (Note that ChannelId2 should be closed now) - success = ssh_connection:subsystem(ConnectionRef, ChannelId3, "echo_n", infinity), + ?wait_match(success, ssh_connection:subsystem(ConnectionRef, ChannelId3, "echo_n", infinity)), %%%---- Channel 4(3) !: exec This should fail failure = ssh_connection:exec(ConnectionRef, ChannelId4, "testing2.\n", infinity), @@ -710,7 +711,7 @@ max_channels_option(Config) when is_list(Config) -> end, %%---- Try that we can open one channel instead of the closed one - success = ssh_connection:subsystem(ConnectionRef, ChannelId5, "echo_n", infinity), + ?wait_match(success, ssh_connection:subsystem(ConnectionRef, ChannelId5, "echo_n", infinity)), %%---- But not a fourth one... failure = ssh_connection:subsystem(ConnectionRef, ChannelId6, "echo_n", infinity), diff --git a/lib/ssh/test/ssh_sup_SUITE.erl b/lib/ssh/test/ssh_sup_SUITE.erl index d43a9cb425..2dc4263603 100644 --- a/lib/ssh/test/ssh_sup_SUITE.erl +++ b/lib/ssh/test/ssh_sup_SUITE.erl @@ -22,14 +22,16 @@ -module(ssh_sup_SUITE). -include_lib("common_test/include/ct.hrl"). -include_lib("ssh/src/ssh.hrl"). +-include("ssh_test_lib.hrl"). %% Note: This directive should only be used in test suites. -compile(export_all). --define(WAIT_FOR_SHUTDOWN, 500). -define(USER, "Alladin"). -define(PASSWD, "Sesame"). +-define(WAIT_FOR_SHUTDOWN, 500). + %%-------------------------------------------------------------------- %% Common Test interface functions ----------------------------------- %%-------------------------------------------------------------------- @@ -79,29 +81,6 @@ end_per_testcase(sshc_subtree, Config) -> end_per_testcase(_, _Config) -> ssh:stop(). -%%------------------------------------------------------------------------- -%% Help macro -%%------------------------------------------------------------------------- --define(wait_match(Pattern, FunctionCall, Bind), - Bind = - (fun() -> - F = fun(N, F1) -> - case FunctionCall of - Pattern -> Bind; - _ when N>0 -> - ct:pal("Must sleep ~p ms at ~p:~p",[?WAIT_FOR_SHUTDOWN,?MODULE,?LINE]), - timer:sleep(?WAIT_FOR_SHUTDOWN), - F1(N-1, F1); - Other -> - ct:fail("Unexpected ~p:~p ~p",[?MODULE,?LINE,Other]) - end - end, - F((5000 div ?WAIT_FOR_SHUTDOWN), F) - end)() - ). - --define(wait_match(Pattern, FunctionCall), ?wait_match(Pattern, FunctionCall, ok)). - %%------------------------------------------------------------------------- %% Test cases %%------------------------------------------------------------------------- diff --git a/lib/ssh/test/ssh_test_lib.hrl b/lib/ssh/test/ssh_test_lib.hrl new file mode 100644 index 0000000000..7cb7edeaa8 --- /dev/null +++ b/lib/ssh/test/ssh_test_lib.hrl @@ -0,0 +1,27 @@ +%%------------------------------------------------------------------------- +%% Help macro +%%------------------------------------------------------------------------- +-define(wait_match(Pattern, FunctionCall, Bind, Timeout, Ntries), + Bind = + (fun() -> + F = fun(N, F1) -> + case FunctionCall of + Pattern -> Bind; + _ when N>0 -> + ct:pal("Must sleep ~p ms at ~p:~p",[Timeout,?MODULE,?LINE]), + timer:sleep(Timeout), + F1(N-1, F1); + Other -> + ct:fail("Unexpected ~p:~p ~p",[?MODULE,?LINE,Other]) + end + end, + F(Ntries, F) + end)() + ). + +-define(wait_match(Pattern, FunctionCall, Timeout, Ntries), ?wait_match(Pattern, FunctionCall, ok, Timeout, Ntries)). + +-define(wait_match(Pattern, FunctionCall, Bind), ?wait_match(Pattern, FunctionCall, Bind, 500, 10) ). + +-define(wait_match(Pattern, FunctionCall), ?wait_match(Pattern, FunctionCall, ok) ). + -- cgit v1.2.3