2
particular() -> [smp, ticket7904].
7
case erlang:system_info(smp_support) of
9
NumOfProcs = erlang:system_info(schedulers),
10
io:format("smp starting ~p workers\n",[NumOfProcs]),
12
?line Msg = {initiatingMessage, testNBAPsystem:cell_setup_req_msg()},
13
?line ok = testNBAPsystem:compile(Config,per_bin,[optimize]),
17
?line ok = asn1rt:load_driver(),
19
smp2(Parent,NumOfProcs,Msg,2),
23
?line {Time1,ok} = timer:tc(?MODULE,smp2,[Parent,NumOfProcs,Msg, N]),
24
?line {Time1S,ok} = timer:tc(?MODULE,sequential,[NumOfProcs * N,Msg]),
26
?line ok = testNBAPsystem:compile(Config,ber_bin,[optimize,driver]),
27
?line {Time2,ok} = timer:tc(?MODULE,smp2,[Parent,NumOfProcs,Msg, N]),
29
?line {Time2S,ok} = timer:tc(?MODULE,sequential,[NumOfProcs * N,Msg]),
31
{comment,lists:flatten(io_lib:format("Encode/decode time parallell with ~p cores: ~p [microsecs]~nEncode/decode time sequential: ~p [microsecs]",[NumOfProcs,Time1+Time2,Time1S+Time2S]))};
33
{skipped,"No smp support"}
36
smp2(Parent,NumOfProcs,Msg, N) ->
37
Pids = [spawn_link(fun() -> worker(Msg,Parent, N) end)
38
|| _ <- lists:seq(1,NumOfProcs)],
39
?line ok = wait_pids(Pids).
41
worker(Msg, Parent, N) ->
42
%% io:format("smp worker ~p with ~p worker loops.~n",[self(), N]),
46
worker_loop(0, _Msg) ->
48
worker_loop(N, Msg) ->
49
?line {ok,B}=asn1_wrapper:encode('NBAP-PDU-Discriptions',
52
?line {ok,_Msg}=asn1_wrapper:decode('NBAP-PDU-Discriptions',
55
worker_loop(N - 1, Msg).
62
Pid when is_pid(Pid) ->
63
?line true = lists:member(Pid,Pids),
64
Others = lists:delete(Pid,Pids),
65
io:format("wait_pid got ~p, still waiting for ~p\n",[Pid,Others]),
68
io:format("Err: ~p~n",[Err]),
73
%%io:format("sequential encode/decode with N = ~p~n",[N]),
76
-record('InitiatingMessage',{procedureCode,criticality,value}).
77
-record('Iu-ReleaseCommand',{first,second}).
79
ticket7904(suite) -> [];
81
?line DataDir = ?config(data_dir,Config),
82
?line OutDir = ?config(priv_dir,Config),
84
?line ok = asn1ct:compile(DataDir ++
85
"RANAPextract1",[per_bin,optimize,{outdir,OutDir}]),
87
Val1 = #'InitiatingMessage'{procedureCode=1,
89
value=#'Iu-ReleaseCommand'{
93
?line {ok,_} = 'RANAPextract1':encode('InitiatingMessage', Val1),
94
asn1rt:unload_driver(),
95
?line {ok,_} = 'RANAPextract1':encode('InitiatingMessage', Val1).