diff options
author | Siri Hansen <[email protected]> | 2014-11-17 10:39:19 +0100 |
---|---|---|
committer | Siri Hansen <[email protected]> | 2014-11-27 12:21:48 +0100 |
commit | 611394791acbe7ae98417b9115aeeaa7046e78a2 (patch) | |
tree | 7c555415ad32ab1f16c205a7572fe819e37eb931 | |
parent | 96aed0a4d6b6abc9893000eeb56ae664bc716451 (diff) | |
download | otp-611394791acbe7ae98417b9115aeeaa7046e78a2.tar.gz otp-611394791acbe7ae98417b9115aeeaa7046e78a2.tar.bz2 otp-611394791acbe7ae98417b9115aeeaa7046e78a2.zip |
[ct_telnet] Fix test case 'server_speaks'
This test case simulates that the server spontaneously sends data. By
changing ct_telnet:send to ct_telnet_client:send_data this simulations
makes more sense - since client's buffers are not flushed.
Also removed the newline at the end of "echo_no_prompt" command. Since
newline is added automatically, the explicit newline at the end of the
command causes a prompt to be sent which is not expected.
-rw-r--r-- | lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_own_server_SUITE.erl | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_own_server_SUITE.erl b/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_own_server_SUITE.erl index 6ec7947b3e..0ddb4e9b00 100644 --- a/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_own_server_SUITE.erl +++ b/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_own_server_SUITE.erl @@ -276,17 +276,31 @@ large_string(_) -> %% The server says things. Manually check that it gets printed correctly %% in the general IO log. +%% +%% In this test case we simulate data sent spontaneously from the +%% server. We use ct_telnet_client:send_data instead of ct_telnet:send +%% to avoid flushing of buffers in the client, and we use +%% echo_no_prompt since the server would normally not send a prompt in +%% this case. server_speaks(_) -> {ok, Handle} = ct_telnet:open(telnet_server_conn1), - ok = ct_telnet:send(Handle, "echo_no_prompt This is the first message\r\n"), - ok = ct_telnet:send(Handle, "echo_no_prompt This is the second message\r\n"), - %% let ct_telnet_client get an idle timeout + + Backdoor = ct_gen_conn:get_conn_pid(Handle), + ok = ct_telnet_client:send_data(Backdoor, + "echo_no_prompt This is the first message"), + ok = ct_telnet_client:send_data(Backdoor, + "echo_no_prompt This is the second message"), + %% Let ct_telnet_client get an idle timeout. This should print the + %% two messages to the log. Note that the buffers are not flushed here! timer:sleep(15000), - ok = ct_telnet:send(Handle, "echo_no_prompt This is the third message\r\n"), - {ok,_} = ct_telnet:expect(Handle, ["the"], [no_prompt_check]), + ok = ct_telnet_client:send_data(Backdoor, + "echo_no_prompt This is the third message"), + {ok,_} = ct_telnet:expect(Handle, ["first.*second.*third"], + [no_prompt_check, sequence]), {error,timeout} = ct_telnet:expect(Handle, ["the"], [no_prompt_check, {timeout,?SHORT_TIME}]), - ok = ct_telnet:send(Handle, "echo_no_prompt This is the fourth message\r\n"), + ok = ct_telnet_client:send_data(Backdoor, + "echo_no_prompt This is the fourth message"), %% give the server time to respond timer:sleep(2000), %% closing the connection should print last message in log @@ -301,7 +315,7 @@ server_disconnects(_) -> %% wait until the get_data operation (triggered by send/2) times out %% before sending the msg timer:sleep(500), - ok = ct_telnet:send(Handle, "echo_no_prompt This is the message\r\n"), + ok = ct_telnet:send(Handle, "echo_no_prompt This is the message"), %% when the server closes the connection, the last message should be %% printed in the log timer:sleep(3000), |