30
30
run /1 ]).
31
31
32
32
% % common_test wrapping
33
- -export ([suite /0 ,
33
+ -export ([
34
+ % % Framework functions
35
+ suite /0 ,
34
36
all /0 ,
37
+ init_per_suite /1 ,
38
+ end_per_suite /1 ,
39
+
40
+ % % The test cases
35
41
start_service /1 ,
36
42
add_transport /1 ]).
37
43
38
- -define ( util , diameter_util ).
44
+ -include ( " diameter_util.hrl " ).
39
45
40
46
% % Lists of {Key, GoodConfigList, BadConfigList} with which to
41
47
% % configure.
202
208
[x ,x ]],
203
209
[]}]).
204
210
211
+
212
+ -define (CL (F ), ? CL (F , [])).
213
+ -define (CL (F , A ), ? LOG (" DCONF" , F , A )).
214
+
215
+
205
216
% % ===========================================================================
206
217
207
218
suite () ->
208
219
[{timetrap , {seconds , 15 }}].
209
220
210
221
all () ->
211
- [start_service ,
212
- add_transport ].
222
+ [
223
+ start_service ,
224
+ add_transport
225
+ ].
226
+
227
+
228
+ init_per_suite (Config ) ->
229
+ ? DUTIL :init_per_suite (Config ).
213
230
214
- start_service ( _Config ) ->
215
- run ([ start_service ] ).
231
+ end_per_suite ( Config ) ->
232
+ ? DUTIL : end_per_suite ( Config ).
216
233
217
- add_transport (_Config ) ->
218
- run ([add_transport ]).
234
+
235
+ start_service (Config ) ->
236
+ ? CL (" ~w -> entry" , [? FUNCTION_NAME ]),
237
+ put (dia_factor , dia_factor (Config )),
238
+ Res = run ([? FUNCTION_NAME ]),
239
+ ? CL (" ~w -> done when"
240
+ " ~n Res: ~p " , [? FUNCTION_NAME , Res ]),
241
+ Res .
242
+
243
+ add_transport (Config ) ->
244
+ ? CL (" ~w -> entry" , [? FUNCTION_NAME ]),
245
+ put (dia_factor , dia_factor (Config )),
246
+ Res = run ([? FUNCTION_NAME ]),
247
+ ? CL (" ~w -> done when"
248
+ " ~n Res: ~p " , [? FUNCTION_NAME , Res ]),
249
+ Res .
250
+
251
+ dia_factor (Config ) ->
252
+ {value , {? FUNCTION_NAME , DiaFactor }} =
253
+ lists :keysearch (? FUNCTION_NAME , 1 , Config ),
254
+ DiaFactor .
219
255
220
256
% % ===========================================================================
221
257
258
+ % % Factor: >= 1
259
+ to (Base , Factor ) when (Factor >= 0 ) ->
260
+ round (Base * (((Factor - 1 ) + 10 ) / 10 )).
261
+
222
262
run () ->
223
263
run (all ()).
224
264
225
265
run (List )
226
266
when is_list (List ) ->
267
+ BaseTo = 5000 ,
268
+ To = case get (dia_factor ) of
269
+ undefined ->
270
+ BaseTo ;
271
+ DF when is_integer (DF ) ->
272
+ to (BaseTo , DF )
273
+ end ,
274
+ ? CL (" ~w -> timeout calculated to ~w " , [? FUNCTION_NAME , To ]),
227
275
try
228
- ? util : run ([[[fun run /1 , {F , 5000 }] || F <- List ]])
276
+ ? RUN ([[[fun run /1 , {F , To }] || F <- List ]])
229
277
after
230
278
dbg :stop (),
231
279
diameter :stop ()
232
280
end ;
233
281
234
282
run ({F , Tmo }) ->
283
+ ? CL (" ~w -> entry - try start diameter" , [? FUNCTION_NAME ]),
235
284
ok = diameter :start (),
236
285
try
237
- ? util :run ([{[fun run /1 , F ], Tmo }])
286
+ ? CL (" ~w -> try - run ~p " , [? FUNCTION_NAME , F ]),
287
+ ? RUN ([{[fun run /1 , F ], Tmo }])
238
288
after
289
+ ? CL (" ~w -> after - try stop diameter" , [? FUNCTION_NAME ]),
239
290
ok = diameter :stop ()
240
291
end ;
241
292
242
- run (start_service ) ->
243
- ? util :run ([[fun start /1 , T ]
293
+ run (start_service = Case ) ->
294
+ ? CL (" ~w (~w ) -> entry" , [? FUNCTION_NAME , Case ]),
295
+ ? RUN ([[fun start /1 , T ]
244
296
|| T <- [lists :keyfind (capabilities , 1 , ? TRANSPORT_CONFIG )
245
297
| ? SERVICE_CONFIG ]]);
246
298
247
- run (add_transport ) ->
248
- ? util :run ([[fun add /1 , T ] || T <- ? TRANSPORT_CONFIG ]).
299
+ run (add_transport = Case ) ->
300
+ ? CL (" ~w (~w ) -> entry" , [? FUNCTION_NAME , Case ]),
301
+ ? RUN ([[fun add /1 , T ] || T <- ? TRANSPORT_CONFIG ]).
249
302
250
303
start (T ) ->
304
+ ? CL (" ~w -> entry with"
305
+ " ~n T: ~p " , [? FUNCTION_NAME , T ]),
251
306
do (fun start /3 , T ).
252
307
253
308
add (T ) ->
309
+ ? CL (" ~w -> entry with"
310
+ " ~n T: ~p " , [? FUNCTION_NAME , T ]),
254
311
do (fun add /3 , T ).
255
312
313
+
256
314
% % ===========================================================================
257
315
258
316
% % do/2
259
317
260
318
do (F , {Key , Good , Bad }) ->
319
+ ? CL (" ~w -> entry with"
320
+ " ~n Key: ~p "
321
+ " ~n Good: ~p "
322
+ " ~n Bad: ~p " , [? FUNCTION_NAME , Key , Good , Bad ]),
261
323
F (Key , Good , Bad ).
262
324
263
325
% % add/3
264
326
265
327
add (Key , Good , Bad ) ->
328
+ ? CL (" ~w -> entry with"
329
+ " ~n Key: ~p "
330
+ " ~n Good: ~p "
331
+ " ~n Bad: ~p " , [? FUNCTION_NAME , Key , Good , Bad ]),
266
332
{[],[]} = {[{Vs ,T } || Vs <- Good ,
267
333
T <- [add (Key , Vs )],
268
334
[T ] /= [T || {ok ,_ } <- [T ]]],
@@ -271,12 +337,19 @@ add(Key, Good, Bad) ->
271
337
[T ] /= [T || {error ,_ } <- [T ]]]}.
272
338
273
339
add (Key , Vs ) ->
340
+ ? CL (" ~w -> entry with"
341
+ " ~n Key: ~p "
342
+ " ~n Vs: ~p " , [? FUNCTION_NAME , Key , Vs ]),
274
343
T = list_to_tuple ([Key | Vs ]),
275
344
diameter :add_transport (make_ref (), {connect , [T ]}).
276
345
277
346
% % start/3
278
347
279
348
start (Key , Good , Bad ) ->
349
+ ? CL (" ~w -> entry with"
350
+ " ~n Key: ~p "
351
+ " ~n Good: ~p "
352
+ " ~n Bad: ~p " , [? FUNCTION_NAME , Key , Good , Bad ]),
280
353
{[],[]} = {[{Vs ,T } || Vs <- Good ,
281
354
T <- [start (Key , Vs )],
282
355
T /= ok ],
@@ -285,6 +358,9 @@ start(Key, Good, Bad) ->
285
358
[T ] /= [T || {error ,_ } <- [T ]]]}.
286
359
287
360
start (capabilities = K , [Vs ]) ->
361
+ ? CL (" ~w -> entry with"
362
+ " ~n K: ~p "
363
+ " ~n Vs: ~p " , [? FUNCTION_NAME , K , Vs ]),
288
364
if is_list (Vs ) ->
289
365
start (make_ref (), Vs ++ apps (K ));
290
366
true ->
@@ -293,18 +369,26 @@ start(capabilities = K, [Vs]) ->
293
369
294
370
start (Key , Vs )
295
371
when is_atom (Key ) ->
372
+ ? CL (" ~w -> entry with"
373
+ " ~n Key: ~p "
374
+ " ~n Vs: ~p " , [? FUNCTION_NAME , Key , Vs ]),
296
375
start (make_ref (), [list_to_tuple ([Key | Vs ]) | apps (Key )]);
297
376
298
377
start (SvcName , Opts ) ->
299
378
try
379
+ ? CL (" ~w -> [try] - start service: "
380
+ " ~n SvcName: ~p "
381
+ " ~n Opts: ~p " , [? FUNCTION_NAME , SvcName , Opts ]),
300
382
Res1 = diameter :start_service (SvcName , Opts ),
301
- % % io:format("[started] Is service ~p: ~p~n",
302
- % % [SvcName, diameter:is_service(SvcName) ]),
383
+ ? CL ( " ~w -> [try] - start service result: "
384
+ " ~n Res: ~p " , [ ? FUNCTION_NAME , Res1 ]),
303
385
Res1
304
386
after
387
+ ? CL (" ~w -> [after] - try stop service: "
388
+ " ~n SvcName: ~p " , [? FUNCTION_NAME , SvcName ]),
305
389
Res2 = diameter :stop_service (SvcName ),
306
- % % io:format("[stopped] Is service ~p: ~p~n",
307
- % % [SvcName, diameter:is_service(SvcName) ]),
390
+ ? CL ( " ~w -> [after] - stop service result: "
391
+ " ~n Res: ~p " , [ ? FUNCTION_NAME , Res2 ]),
308
392
Res2
309
393
end .
310
394
0 commit comments