diff --git a/src/Unit-EUnit-Files/stateful_plugin_test.erl b/src/Unit-EUnit-Files/stateful_plugin_test.erl index 70a1397..ded9a84 100644 --- a/src/Unit-EUnit-Files/stateful_plugin_test.erl +++ b/src/Unit-EUnit-Files/stateful_plugin_test.erl @@ -29,7 +29,7 @@ all_tests_(Setup,Teardown) -> Teardown, (all_actual_tests_("localhost",3000,ubf,true))(not_used) ++ (all_actual_tests_("localhost",3001,ebf,true))(not_used) - %% ++ (all_actual_tests_("localhost",3002,jsf,true))(not_used) + %% DISABLE ++ (all_actual_tests_("localhost",3002,jsf,true))(not_used) %% TODO ++ (all_actual_tests_("localhost",none,etf))(not_used) }. diff --git a/src/Unit-EUnit-Files/stateless_plugin_test.erl b/src/Unit-EUnit-Files/stateless_plugin_test.erl index 25b54e6..1cef64c 100644 --- a/src/Unit-EUnit-Files/stateless_plugin_test.erl +++ b/src/Unit-EUnit-Files/stateless_plugin_test.erl @@ -5,7 +5,7 @@ -include("ubf.hrl"). do_eunit() -> - case eunit:test(?MODULE) of + case eunit:test({timeout,30,?MODULE}) of ok -> ok; _ -> erlang:halt(1) end. @@ -29,7 +29,7 @@ all_tests_(Setup,Teardown) -> Teardown, (all_actual_tests_("localhost",3000,ubf,false))(not_used) ++ (all_actual_tests_("localhost",3001,ebf,false))(not_used) - %% ++ (all_actual_tests_("localhost",3002,jsf,false))(not_used) + %% DISABLE ++ (all_actual_tests_("localhost",3002,jsf,false))(not_used) %% TODO ++ (all_actual_tests_("localhost",none,etf))(not_used) }. @@ -51,14 +51,14 @@ all_actual_tests_(Host,Port,Proto,Stateless) -> %%%---------------------------------------------------------------------- test_setup(Sup) -> -%% user_default:dbgoff(), -%% user_default:dbgon(ubf_client), -%% user_default:dbgadd(contract_manager), -%% user_default:dbgadd(ubf_driver), -%% user_default:dbgadd(ubf_plugin_handler), -%% user_default:dbgadd(ubf_plugin_metaserverful), -%% user_default:dbgadd(ubf_plugin_metaserverless), -%% user_default:dbgadd(ubf_server), + %% user_default:dbgoff(), + %% user_default:dbgon(ubf_client), + %% user_default:dbgadd(contract_manager), + %% user_default:dbgadd(ubf_driver), + %% user_default:dbgadd(ubf_plugin_handler), + %% user_default:dbgadd(ubf_plugin_metaserverful), + %% user_default:dbgadd(ubf_plugin_metaserverless), + %% user_default:dbgadd(ubf_server), kill_process(undefined), @@ -133,7 +133,6 @@ test_004(Host,Port,Proto,Stateless) -> assert_process(Proto, 0, 0, 0). %% connect -> client timeout -> close -%% @todo fix ubf_client behavior test_005(Host,Port,Proto,Stateless) -> assert_process(Proto, 0, 0, 0), {ok,Pid,?S("test_meta_server")} = ubf_client:connect(Host,Port,[{proto,Proto},{statelessrpc,Stateless}],infinity), @@ -143,13 +142,7 @@ test_005(Host,Port,Proto,Stateless) -> {reply,ok,none} = ubf_client:rpc(Pid,keepalive), assert_process(Proto, 1, 1, 1), timeout = ubf_client:rpc(Pid,{client_timeout_req03,1000},500), - assert_process(Proto, 1, 1, 1), - timer:sleep(1100), - assert_process(Proto, 1, 1, 1), - {reply,client_timeout_res03,none} = ubf_client:rpc(Pid,keepalive), - assert_process(Proto, 1, 1, 1), - {reply,ok,none} = ubf_client:rpc(Pid,keepalive), - assert_process(Proto, 1, 1, 1), + assert_process(Proto, 0, 0, 0), ubf_client:stop(Pid), assert_process(Proto, 0, 0, 0). @@ -187,7 +180,6 @@ test_007(Host,Port,Proto,Stateless) -> assert_process(Proto, 0, 0, 0). %% connect -> server crash -> close -%% @todo fix ubf_client behavior test_008(Host,Port,Proto,Stateless) -> assert_process(Proto, 0, 0, 0), {ok,Pid,?S("test_meta_server")} = ubf_client:connect(Host,Port,[{proto,Proto},{statelessrpc,Stateless}],infinity), @@ -196,7 +188,7 @@ test_008(Host,Port,Proto,Stateless) -> assert_process(Proto, 1, 1, 1), {reply,ok,none} = ubf_client:rpc(Pid,keepalive), assert_process(Proto, 1, 1, 1), - timeout = ubf_client:rpc(Pid,server_crash_req05,500), + {error,stop} = ubf_client:rpc(Pid,server_crash_req05,50000), assert_process(Proto, 0, 0, 0), ubf_client:stop(Pid), assert_process(Proto, 0, 0, 0). diff --git a/src/proc_socket_server.erl b/src/proc_socket_server.erl index a3fdb1a..ecf5cab 100644 --- a/src/proc_socket_server.erl +++ b/src/proc_socket_server.erl @@ -65,7 +65,7 @@ cold_start(Port, Fun, Max, PacketType, PacketSize) -> process_flag(trap_exit, true), %% io:format("Starting a port server on ~p...~n",[Port]), DefaultListenOptions = - [binary, {nodelay, true}, {active, false}, {reuseaddr, true}, {backlog, 100}], + [binary, {nodelay, true}, {active, true}, {reuseaddr, true}, {backlog, 100}], ListenOptions = case {PacketType, PacketSize} of {0,0} -> @@ -120,6 +120,7 @@ start_child(Parent, Listen, Fun) -> case gen_tcp:accept(Listen) of {ok, Socket} -> Parent ! {started, self()}, % tell the controller + inet:setopts(Socket, [{active, true}]), % before we activate socket %% Start the child %% io:format("Starting a child on:~p~n",[Socket]), case (catch Fun(Socket)) of diff --git a/src/ubf_client.erl b/src/ubf_client.erl index d7d412b..d3d2166 100644 --- a/src/ubf_client.erl +++ b/src/ubf_client.erl @@ -212,7 +212,7 @@ rpc(Pid, Q, Timeout) -> "<<< ~p ~n",[Q, Reply]), Reply after Timeout -> - exit(Pid, timeout), + Pid ! stop, timeout end. @@ -277,7 +277,13 @@ loop(Driver, Fun) -> {Driver, {error, X}} -> From ! {self(), {error, X}}; {Driver, Other} -> - From ! {self(), {error, Other}} + From ! {self(), {error, Other}}; + {'EXIT', Driver, Reason} -> + From ! {self(), {error, Reason}}; + stop -> + From ! {self(), {error, stop}}, + Driver ! stop, + true end; {Driver, {event, Msg, State}} -> Fun1 = Fun(Msg, State), diff --git a/src/ubf_server.erl b/src/ubf_server.erl index 5f90795..ab5f007 100644 --- a/src/ubf_server.erl +++ b/src/ubf_server.erl @@ -189,10 +189,6 @@ start_ubf_listener(MetaServerModule, Port, Server, Options) -> Server, MetaServerModule}, %% and activate the loop that will now %% execute the last two statements :-) - inet:setopts(Socket, [{active, true} - %%, {send_timeout, IdleTimer} - %%, {send_timeout_close, true} - ]), DriverModule:loop(Socket, self(), IdleTimer) end, proplists:get_value(maxconn,Options,10000),