Skip to content

Commit

Permalink
use session instead of pid in code/erlang set_dynvars (pid was useles…
Browse files Browse the repository at this point in the history
…s anyway)
  • Loading branch information
nniclausse committed Aug 24, 2012
1 parent 27eedec commit 78d81cf
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions src/tsung/ts_client.erl
Expand Up @@ -415,7 +415,7 @@ handle_next_action(State) ->
handle_next_action(NewState); handle_next_action(NewState);
{setdynvars,SourceType,Args,VarNames} -> {setdynvars,SourceType,Args,VarNames} ->
DynVars=State#state_rcv.dynvars, DynVars=State#state_rcv.dynvars,
Result = set_dynvars(SourceType,Args,VarNames,DynVars,{State#state_rcv.host,State#state_rcv.port}), Result = set_dynvars(SourceType,Args,VarNames,DynVars,{State#state_rcv.host,State#state_rcv.port},State#state_rcv.session),
NewDynVars = ts_dynvars:set(VarNames,Result,DynVars), NewDynVars = ts_dynvars:set(VarNames,Result,DynVars),
?DebugF("set dynvars: ~p ~n",[NewDynVars]), ?DebugF("set dynvars: ~p ~n",[NewDynVars]),
handle_next_action(State#state_rcv{dynvars = NewDynVars, count=Count}); handle_next_action(State#state_rcv{dynvars = NewDynVars, count=Count});
Expand Down Expand Up @@ -457,37 +457,37 @@ handle_next_action(State) ->
%%---------------------------------------------------------------------- %%----------------------------------------------------------------------
%% @spec set_dynvars (Type::erlang|random|urandom|file, Args::tuple(), %% @spec set_dynvars (Type::erlang|random|urandom|file, Args::tuple(),
%% Variables::list(), DynVars::#dynvars{}, %% Variables::list(), DynVars::#dynvars{},
%% {Server::string(),Port::integer()}) -> integer()|binary()|list() %% {Server::string(),Port::integer()}, Session::record()) -> integer()|binary()|list()
%% @doc setting the value of several dynamic variables at once. %% @doc setting the value of several dynamic variables at once.
%% @end %% @end
%%---------------------------------------------------------------------- %%----------------------------------------------------------------------
set_dynvars(erlang,{Module,Callback},_Vars,DynVars,_) -> set_dynvars(erlang,{Module,Callback},_Vars,DynVars,_,Session) ->
Module:Callback({self(),DynVars}); Module:Callback({Session,DynVars});
set_dynvars(code,Fun,_Vars,DynVars,_) -> set_dynvars(code,Fun,_Vars,DynVars,_,Session) ->
Fun({self(),DynVars}); Fun({Session,DynVars});
set_dynvars(random,{number,Start,End},Vars,_DynVars,_) -> set_dynvars(random,{number,Start,End},Vars,_DynVars,_,_) ->
lists:map(fun(_) -> ts_stats:uniform(Start,End) end,Vars); lists:map(fun(_) -> ts_stats:uniform(Start,End) end,Vars);
set_dynvars(random,{string,Length},Vars,_DynVars,_) -> set_dynvars(random,{string,Length},Vars,_DynVars,_,_) ->
R = fun(_) -> ts_utils:randombinstr(Length) end, R = fun(_) -> ts_utils:randombinstr(Length) end,
lists:map(R,Vars); lists:map(R,Vars);
set_dynvars(urandom,{string,Length},Vars,_DynVars,_) -> set_dynvars(urandom,{string,Length},Vars,_DynVars,_,_) ->
%% not random, but much faster %% not random, but much faster
R = fun(_) -> ts_utils:urandombinstr(Length) end, R = fun(_) -> ts_utils:urandombinstr(Length) end,
lists:map(R,Vars); lists:map(R,Vars);
set_dynvars(file,{random,FileId,Delimiter},_Vars,_DynVars,_) -> set_dynvars(file,{random,FileId,Delimiter},_Vars,_DynVars,_,_) ->
{ok,Line} = ts_file_server:get_random_line(FileId), {ok,Line} = ts_file_server:get_random_line(FileId),
ts_utils:split(Line,Delimiter); ts_utils:split(Line,Delimiter);
set_dynvars(file,{iter,FileId,Delimiter},_Vars,_DynVars,_) -> set_dynvars(file,{iter,FileId,Delimiter},_Vars,_DynVars,_,_) ->
{ok,Line} = ts_file_server:get_next_line(FileId), {ok,Line} = ts_file_server:get_next_line(FileId),
ts_utils:split(Line,Delimiter); ts_utils:split(Line,Delimiter);
set_dynvars(jsonpath,{JSONPath, From},_Vars,DynVars,_) -> set_dynvars(jsonpath,{JSONPath, From},_Vars,DynVars,_,_) ->
{ok, Val} = ts_dynvars:lookup(From,DynVars), {ok, Val} = ts_dynvars:lookup(From,DynVars),
JSON=mochijson2:decode(Val), JSON=mochijson2:decode(Val),
case ts_utils:jsonpath(JSONPath, JSON) of case ts_utils:jsonpath(JSONPath, JSON) of
undefined -> << >>; undefined -> << >>;
V -> V V -> V
end; end;
set_dynvars(server,_,_,_,{Host,Port}) -> set_dynvars(server,_,_,_,{Host,Port},_) ->
[Host,Port]. [Host,Port].




Expand Down

0 comments on commit 78d81cf

Please sign in to comment.