|
|
- %%% File : ibrowse_test.erl
- %%% Author : Chandrashekhar Mullaparthi <chandrashekhar.mullaparthi@t-mobile.co.uk>
- %%% Description : Test ibrowse
- %%% Created : 14 Oct 2003 by Chandrashekhar Mullaparthi <chandrashekhar.mullaparthi@t-mobile.co.uk>
-
- -module(ibrowse_test).
- -vsn('$Id: ibrowse_test.erl,v 1.1 2005/05/05 22:28:28 chandrusf Exp $ ').
-
- -compile(export_all).
- -import(ibrowse_http_client, [printable_date/0]).
-
- send_reqs(Url, NumWorkers, NumReqsPerWorker) ->
- proc_lib:spawn(?MODULE, send_reqs_1, [Url, NumWorkers, NumReqsPerWorker]).
-
- send_reqs_1(Url, NumWorkers, NumReqsPerWorker) ->
- process_flag(trap_exit, true),
- Pids = lists:map(fun(_X) ->
- proc_lib:spawn_link(?MODULE, do_send_req, [Url, NumReqsPerWorker, self()])
- end, lists:seq(1,NumWorkers)),
- put(num_reqs_per_worker, NumReqsPerWorker),
- do_wait(Pids, now(), printable_date(), 0, 0).
-
- do_wait([], _StartNow, StartTime, NumSucc, NumErrs) ->
- io:format("~n~nDone...~nStartTime -> ~s~n", [StartTime]),
- io:format("EndTime -> ~s~n", [printable_date()]),
- io:format("NumSucc -> ~p~n", [NumSucc]),
- io:format("NumErrs -> ~p~n", [NumErrs]);
- do_wait(Pids, StartNow, StartTime, NumSucc, NumErrs) ->
- receive
- {done, From, _Time, {ChildNumSucc, ChildNumFail}} ->
- do_wait(Pids--[From], StartNow, StartTime, NumSucc+ChildNumSucc, NumErrs+ChildNumFail);
- {'EXIT',_, normal} ->
- do_wait(Pids, StartNow, StartTime, NumSucc, NumErrs);
- {'EXIT', From, _Reason} ->
- do_wait(Pids--[From], StartNow, StartTime, NumSucc, NumErrs + get(num_reqs_per_worker))
- end.
-
- do_send_req(Url, NumReqs, Parent) ->
- StartTime = now(),
- Res = do_send_req_1(Url, NumReqs, {0, 0}),
- Parent ! {done, self(), StartTime, Res}.
-
- do_send_req_1(_Url, 0, {NumSucc, NumFail}) ->
- {NumSucc, NumFail};
- do_send_req_1(Url, NumReqs, {NumSucc, NumFail}) ->
- case ibrowse:send_req(Url, [], get, [], [], 10000) of
- {ok, _Status, _Headers, _Body} ->
- do_send_req_1(Url, NumReqs-1, {NumSucc+1, NumFail});
- _Err ->
- do_send_req_1(Url, NumReqs-1, {NumSucc, NumFail+1})
- end.
-
- drv_ue_test() ->
- drv_ue_test(lists:duplicate(1024, 127)).
- drv_ue_test(Data) ->
- [{port, Port}| _] = ets:lookup(ibrowse_table, port),
- % erl_ddll:unload_driver("ibrowse_drv"),
- % timer:sleep(1000),
- % erl_ddll:load_driver("../priv", "ibrowse_drv"),
- % Port = open_port({spawn, "ibrowse_drv"}, []),
- {Time, Res} = timer:tc(ibrowse_lib, drv_ue, [Data, Port]),
- io:format("Time -> ~p~n", [Time]),
- io:format("Data Length -> ~p~n", [length(Data)]),
- io:format("Res Length -> ~p~n", [length(Res)]).
- % io:format("Result -> ~s~n", [Res]).
-
- ue_test() ->
- ue_test(lists:duplicate(1024, $?)).
- ue_test(Data) ->
- {Time, Res} = timer:tc(ibrowse_lib, url_encode, [Data]),
- io:format("Time -> ~p~n", [Time]),
- io:format("Data Length -> ~p~n", [length(Data)]),
- io:format("Res Length -> ~p~n", [length(Res)]).
- % io:format("Result -> ~s~n", [Res]).
|