@@ -335,14 +335,16 @@ safe_call_timeouts_test(Params = #amqp_params_network{}) ->
335335 meck :unload (amqp_network_connection );
336336
337337safe_call_timeouts_test (Params = # amqp_params_direct {}) ->
338+ % % We must mock net_kernel:get_net_ticktime/0 as changing
339+ % % the tick time directly could lead to nodes disconnecting.
340+ meck :new (net_kernel , [unstick , passthrough ]),
341+
338342 TestCallTimeout = 30000 ,
339- NetTicktime0 = net_kernel :get_net_ticktime (),
340343 amqp_util :update_call_timeout (TestCallTimeout ),
341344
342345 % % 1. NetTicktime >= DIRECT_OPERATION_TIMEOUT (120s)
343346 NetTicktime1 = 140 ,
344- net_kernel :set_net_ticktime (NetTicktime1 , 1 ),
345- wait_until_net_ticktime (NetTicktime1 ),
347+ meck :expect (net_kernel , get_net_ticktime , fun () -> NetTicktime1 end ),
346348
347349 {ok , Connection1 } = amqp_connection :start (Params ),
348350 ? assertEqual ((NetTicktime1 * 1000 ) + ? CALL_TIMEOUT_DEVIATION ,
@@ -356,15 +358,12 @@ safe_call_timeouts_test(Params = #amqp_params_direct{}) ->
356358
357359 % % 2. Transitioning NetTicktime >= DIRECT_OPERATION_TIMEOUT (120s)
358360 NetTicktime2 = 120 ,
359- net_kernel :set_net_ticktime (NetTicktime2 , 1 ),
360- ? assertEqual ({ongoing_change_to , NetTicktime2 }, net_kernel :get_net_ticktime ()),
361+ meck :expect (net_kernel , get_net_ticktime , fun () -> {ongoing_change_to , NetTicktime2 } end ),
361362
362363 {ok , Connection2 } = amqp_connection :start (Params ),
363364 ? assertEqual ((NetTicktime2 * 1000 ) + ? CALL_TIMEOUT_DEVIATION ,
364365 amqp_util :call_timeout ()),
365366
366- wait_until_net_ticktime (NetTicktime2 ),
367-
368367 ? assertEqual (ok , amqp_connection :close (Connection2 )),
369368 wait_for_death (Connection2 ),
370369
@@ -373,15 +372,14 @@ safe_call_timeouts_test(Params = #amqp_params_direct{}) ->
373372
374373 % % 3. NetTicktime < DIRECT_OPERATION_TIMEOUT (120s)
375374 NetTicktime3 = 60 ,
376- net_kernel :set_net_ticktime (NetTicktime3 , 1 ),
377- wait_until_net_ticktime (NetTicktime3 ),
375+ meck :expect (net_kernel , get_net_ticktime , fun () -> NetTicktime3 end ),
378376
379377 {ok , Connection3 } = amqp_connection :start (Params ),
380378 ? assertEqual ((? DIRECT_OPERATION_TIMEOUT + ? CALL_TIMEOUT_DEVIATION ),
381379 amqp_util :call_timeout ()),
382380
383- net_kernel : set_net_ticktime ( NetTicktime0 , 1 ),
384- wait_until_net_ticktime ( NetTicktime0 ),
381+ meck : unload ( net_kernel ),
382+
385383 ? assertEqual (ok , amqp_connection :close (Connection3 )),
386384 wait_for_death (Connection3 ),
387385
@@ -1578,16 +1576,6 @@ assert_down_with_error(MonitorRef, CodeAtom) ->
15781576 exit (did_not_die )
15791577 end .
15801578
1581- wait_until_net_ticktime (NetTicktime ) ->
1582- case net_kernel :get_net_ticktime () of
1583- NetTicktime -> ok ;
1584- {ongoing_change_to , NetTicktime } ->
1585- timer :sleep (1000 ),
1586- wait_until_net_ticktime (NetTicktime );
1587- _ ->
1588- throw ({error , {net_ticktime_not_set , NetTicktime }})
1589- end .
1590-
15911579set_resource_alarm (Resource , Config )
15921580 when Resource =:= memory orelse Resource =:= disk ->
15931581 SrcDir = ? config (amqp_client_srcdir , Config ),
0 commit comments