summaryrefslogtreecommitdiff
path: root/test/erl
diff options
context:
space:
mode:
authorDavid Reiss <dreiss@apache.org>2010-08-30 22:05:41 +0000
committerDavid Reiss <dreiss@apache.org>2010-08-30 22:05:41 +0000
commita508b336db925fb1ee1523e9171a8a612b8aee84 (patch)
tree955e4d82356b46989bcfaee073bac944e4eac5a3 /test/erl
parent2c8d228fa709120f17ce6bfd7b7c022561736a01 (diff)
downloadthrift-a508b336db925fb1ee1523e9171a8a612b8aee84.tar.gz
erlang: test_{client,server}: Allow framed_transport to be used
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990988 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test/erl')
-rw-r--r--test/erl/src/test_client.erl31
-rw-r--r--test/erl/src/test_server.erl34
2 files changed, 58 insertions, 7 deletions
diff --git a/test/erl/src/test_client.erl b/test/erl/src/test_client.erl
index ab032bb19..a26467f0c 100644
--- a/test/erl/src/test_client.erl
+++ b/test/erl/src/test_client.erl
@@ -23,11 +23,34 @@
-include("thriftTest_types.hrl").
-start() -> start(["9090"]).
-start([PortStr]) ->
- Port = list_to_integer(PortStr),
+-record(options, {port = 9090,
+ client_opts = []}).
+
+parse_args(Args) -> parse_args(Args, #options{}).
+parse_args([], Opts) -> Opts;
+parse_args([Head | Rest], Opts) ->
+ NewOpts =
+ case catch list_to_integer(Head) of
+ Port when is_integer(Port) ->
+ Opts#options{port = Port};
+ _Else ->
+ case Head of
+ "framed" ->
+ Opts#options{client_opts = [{framed, true} | Opts#options.client_opts]};
+ "" ->
+ Opts;
+ _Else ->
+ erlang:error({bad_arg, Head})
+ end
+ end,
+ parse_args(Rest, NewOpts).
+
+
+start() -> start([]).
+start(Args) ->
+ #options{port = Port, client_opts = ClientOpts} = parse_args(Args),
{ok, Client0} = thrift_client_util:new(
- "127.0.0.1", Port, thriftTest_thrift, []),
+ "127.0.0.1", Port, thriftTest_thrift, ClientOpts),
DemoXtruct = #xtruct{
string_thing = <<"Zero">>,
diff --git a/test/erl/src/test_server.erl b/test/erl/src/test_server.erl
index 6797dd810..28d47b161 100644
--- a/test/erl/src/test_server.erl
+++ b/test/erl/src/test_server.erl
@@ -19,14 +19,42 @@
-module(test_server).
--export([start_link/1, handle_function/2]).
+-export([go/0, go/1, start_link/2, handle_function/2]).
-include("thriftTest_types.hrl").
-start_link(Port) ->
+-record(options, {port = 9090,
+ server_opts = []}).
+
+parse_args(Args) -> parse_args(Args, #options{}).
+parse_args([], Opts) -> Opts;
+parse_args([Head | Rest], Opts) ->
+ NewOpts =
+ case catch list_to_integer(Head) of
+ Port when is_integer(Port) ->
+ Opts#options{port = Port};
+ _Else ->
+ case Head of
+ "framed" ->
+ Opts#options{server_opts = [{framed, true} | Opts#options.server_opts]};
+ "" ->
+ Opts;
+ _Else ->
+ erlang:error({bad_arg, Head})
+ end
+ end,
+ parse_args(Rest, NewOpts).
+
+go() -> go([]).
+go(Args) ->
+ #options{port = Port, server_opts = ServerOpts} = parse_args(Args),
+ spawn(fun() -> start_link(Port, ServerOpts), receive after infinity -> ok end end).
+
+start_link(Port, ServerOpts) ->
thrift_socket_server:start([{handler, ?MODULE},
{service, thriftTest_thrift},
- {port, Port}]).
+ {port, Port}] ++
+ ServerOpts).
handle_function(testVoid, {}) ->