diff options
Diffstat (limited to 'lib/common_test/test')
| -rw-r--r-- | lib/common_test/test/ct_netconfc_SUITE_data/netconfc1_SUITE.erl | 24 | ||||
| -rw-r--r-- | lib/common_test/test/ct_netconfc_SUITE_data/ns.erl | 15 | 
2 files changed, 33 insertions, 6 deletions
| diff --git a/lib/common_test/test/ct_netconfc_SUITE_data/netconfc1_SUITE.erl b/lib/common_test/test/ct_netconfc_SUITE_data/netconfc1_SUITE.erl index 64ebfbc463..5f84634f74 100644 --- a/lib/common_test/test/ct_netconfc_SUITE_data/netconfc1_SUITE.erl +++ b/lib/common_test/test/ct_netconfc_SUITE_data/netconfc1_SUITE.erl @@ -36,7 +36,8 @@  -compile(export_all).  suite() -> -    [{ct_hooks, [{cth_conn_log, +    [{timetrap,?default_timeout}, +     {ct_hooks, [{cth_conn_log,  		  [{ct_netconfc,[{log_type,html}, %will be overwritten by config  				 {hosts,[my_named_connection,netconf1]}]  		   }] @@ -72,6 +73,7 @@ all() ->  	     invalid_opt,  	     timeout_close_session,  	     get, +	     get_a_lot,  	     timeout_get,  	     get_xpath,  	     get_config, @@ -112,12 +114,9 @@ end_per_group(_GroupName, Config) ->  init_per_testcase(_Case, Config) ->      ets:delete_all_objects(ns_tab), -    Dog = test_server:timetrap(?default_timeout), -    [{watchdog, Dog}|Config]. +    Config. -end_per_testcase(_Case, Config) -> -    Dog=?config(watchdog, Config), -    test_server:timetrap_cancel(Dog), +end_per_testcase(_Case, _Config) ->      ok.  init_per_suite(Config) -> @@ -351,6 +350,19 @@ get(Config) ->      ?ok = ct_netconfc:close_session(Client),      ok. +get_a_lot(Config) -> +    DataDir = ?config(data_dir,Config), +    {ok,Client} = open_success(DataDir), +    Descr = lists:append(lists:duplicate(1000,"Description of myserver! ")), +    Server = {server,[{xmlns,"myns"}],[{name,[],["myserver"]}, +				       {description,[],[Descr]}]}, +    Data = lists:duplicate(100,Server), +    ?NS:expect_reply('get',{fragmented,{data,Data}}), +    {ok,Data} = ct_netconfc:get(Client,{server,[{xmlns,"myns"}],[]}), +    ?NS:expect_do_reply('close-session',close,ok), +    ?ok = ct_netconfc:close_session(Client), +    ok. +  timeout_get(Config) ->      DataDir = ?config(data_dir,Config),      {ok,Client} = open_success(DataDir), diff --git a/lib/common_test/test/ct_netconfc_SUITE_data/ns.erl b/lib/common_test/test/ct_netconfc_SUITE_data/ns.erl index 8c30383343..3fc99e5486 100644 --- a/lib/common_test/test/ct_netconfc_SUITE_data/ns.erl +++ b/lib/common_test/test/ct_netconfc_SUITE_data/ns.erl @@ -277,6 +277,18 @@ hupp_kill(State = #session{connection = ConnRef}) ->  send({CM,Ch},Data) ->      ssh_connection:send(CM, Ch, Data). +%%% Split into many small parts and send to client +send_frag({CM,Ch},Data) -> +    Sz = rand:uniform(2000), +    case Data of +	<<Chunk:Sz/binary,Rest/binary>> -> +	    ssh_connection:send(CM, Ch, Chunk), +	    send_frag({CM,Ch},Rest); +	Chunk -> +	    ssh_connection:send(CM, Ch, Chunk) +    end. + +  %%% Kill ssh connection  kill({CM,_Ch}) ->      ssh:close(CM). @@ -424,6 +436,9 @@ do(_, undefined) ->  reply(_,undefined) ->      ?dbg("no reply~n",[]),      ok; +reply(ConnRef,{fragmented,Reply}) -> +    ?dbg("Reply fragmented: ~p~n",[Reply]), +    send_frag(ConnRef,make_msg(Reply));  reply(ConnRef,Reply) ->      ?dbg("Reply: ~p~n",[Reply]),      send(ConnRef, make_msg(Reply)). | 
