diff options
author | Anthony F. Molinaro <molinaro@apache.org> | 2011-06-21 06:20:18 +0000 |
---|---|---|
committer | Anthony F. Molinaro <molinaro@apache.org> | 2011-06-21 06:20:18 +0000 |
commit | 917d89825f1e4345b08c73a0159c4bd5a158a25c (patch) | |
tree | 1b9c7cd954ad3f9d155d35d4b8a78a9933a158ba /test | |
parent | 0680a836344a4d3927131d26c1b38c2d7b379517 (diff) | |
download | thrift-917d89825f1e4345b08c73a0159c4bd5a158a25c.tar.gz |
THRIFT-892 - refactor erlang library to build using rebar, move tests into lib/erl/test directory and run several via make check
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1137870 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.am | 1 | ||||
-rw-r--r-- | test/erl/Makefile | 68 | ||||
-rw-r--r-- | test/erl/src/Thrift1151.thrift | 3 | ||||
-rw-r--r-- | test/erl/src/stress_server.erl | 64 | ||||
-rw-r--r-- | test/erl/src/test_client.erl | 132 | ||||
-rw-r--r-- | test/erl/src/test_disklog.erl | 83 | ||||
-rw-r--r-- | test/erl/src/test_membuffer.erl | 120 | ||||
-rw-r--r-- | test/erl/src/test_server.erl | 204 | ||||
-rw-r--r-- | test/erl/src/test_thrift_1151.erl | 19 |
9 files changed, 0 insertions, 694 deletions
diff --git a/test/Makefile.am b/test/Makefile.am index 39ea85ab3..ae1140403 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -41,7 +41,6 @@ EXTRA_DIST = \ rb \ perl \ php \ - erl \ hs \ ocaml \ AnnotationTest.thrift \ diff --git a/test/erl/Makefile b/test/erl/Makefile deleted file mode 100644 index bfb1d0052..000000000 --- a/test/erl/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -GENDIR=gen -GEN_INCLUDEDIR=$(GENDIR)/include -GEN_SRCDIR=$(GENDIR)/src -GEN_TARGETDIR=$(GENDIR)/ebin - -INCLUDEDIR=include -TARGETDIR=ebin -SRCDIR=src - -ALL_INCLUDEDIR=$(GEN_INCLUDEDIR) $(INCLUDEDIR) ../../lib/erl/include -INCLUDEFLAGS=$(patsubst %,-I%, ${ALL_INCLUDEDIR}) - -MODULES = stress_server test_server test_client test_disklog test_membuffer test_thrift_1151 - -INCLUDES = -TARGETS = $(patsubst %,${TARGETDIR}/%.beam,${MODULES}) -HEADERS = $(patsubst %,${INCLUDEDIR}/%.hrl,${INCLUDES}) - -all: ${GEN_TARGETDIR}/ ${TARGETS} - -TEST_RPCFILE = ../ThriftTest.thrift -STRESS_RPCFILE = ../StressTest.thrift -THRIFT_1151_FILE = src/Thrift1151.thrift -THRIFT = ../../compiler/cpp/thrift - -${GENDIR}/: ${RPCFILE} - rm -rf ${GENDIR} - ${THRIFT} --gen erl ${TEST_RPCFILE} - ${THRIFT} --gen erl ${STRESS_RPCFILE} - ${THRIFT} --gen erl ${THRIFT_1151_FILE} - mkdir -p ${GEN_INCLUDEDIR} - mkdir -p ${GEN_SRCDIR} - mkdir -p ${GEN_TARGETDIR} - mv gen-erl/*.hrl ${GEN_INCLUDEDIR} - mv gen-erl/*.erl ${GEN_SRCDIR} - rm -rf gen-erl - -${GEN_TARGETDIR}/: ${GENDIR}/ - rm -rf ${GEN_TARGETDIR} - mkdir -p ${GEN_TARGETDIR} - erlc ${ERLC_FLAGS} ${INCLUDEFLAGS} -o ${GEN_TARGETDIR} ${GEN_SRCDIR}/*.erl - -$(TARGETS): ${TARGETDIR}/%.beam: ${SRCDIR}/%.erl ${GEN_INCLUDEDIR}/ ${HEADERS} - mkdir -p ${TARGETDIR} - erlc ${ERLC_FLAGS} ${INCLUDEFLAGS} -o ${TARGETDIR} $< - -clean: - rm -f ${TARGETDIR}/*.beam - rm -rf ${GENDIR} diff --git a/test/erl/src/Thrift1151.thrift b/test/erl/src/Thrift1151.thrift deleted file mode 100644 index 6f934a7b1..000000000 --- a/test/erl/src/Thrift1151.thrift +++ /dev/null @@ -1,3 +0,0 @@ -struct StructA { 1: i16 x; } -struct StructB { 1: i32 x; } -struct StructC { 1: StructA x; } diff --git a/test/erl/src/stress_server.erl b/test/erl/src/stress_server.erl deleted file mode 100644 index 35fff0693..000000000 --- a/test/erl/src/stress_server.erl +++ /dev/null @@ -1,64 +0,0 @@ -%% -%% Licensed to the Apache Software Foundation (ASF) under one -%% or more contributor license agreements. See the NOTICE file -%% distributed with this work for additional information -%% regarding copyright ownership. The ASF licenses this file -%% to you under the Apache License, Version 2.0 (the -%% "License"); you may not use this file except in compliance -%% with the License. You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. -%% - --module(stress_server). - - --export([start_link/1, - - handle_function/2, - - echoVoid/0, - echoByte/1, - echoI32/1, - echoI64/1, - echoString/1, - echoList/1, - echoSet/1, - echoMap/1 - ]). - -start_link(Port) -> - thrift_server:start_link(Port, service_thrift, ?MODULE). - - -handle_function(Function, Args) -> - case apply(?MODULE, Function, tuple_to_list(Args)) of - ok -> - ok; - Else -> {reply, Else} - end. - - -echoVoid() -> - ok. -echoByte(X) -> - X. -echoI32(X) -> - X. -echoI64(X) -> - X. -echoString(X) -> - X. -echoList(X) -> - X. -echoSet(X) -> - X. -echoMap(X) -> - X. diff --git a/test/erl/src/test_client.erl b/test/erl/src/test_client.erl deleted file mode 100644 index 59f596dd6..000000000 --- a/test/erl/src/test_client.erl +++ /dev/null @@ -1,132 +0,0 @@ -%% -%% Licensed to the Apache Software Foundation (ASF) under one -%% or more contributor license agreements. See the NOTICE file -%% distributed with this work for additional information -%% regarding copyright ownership. The ASF licenses this file -%% to you under the Apache License, Version 2.0 (the -%% "License"); you may not use this file except in compliance -%% with the License. You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. -%% - --module(test_client). - --export([start/0, start/1]). - --include("thriftTest_types.hrl"). - --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, ClientOpts), - - DemoXtruct = #xtruct{ - string_thing = <<"Zero">>, - byte_thing = 1, - i32_thing = 9128361, - i64_thing = 9223372036854775807}, - - DemoNest = #xtruct2{ - byte_thing = 7, - struct_thing = DemoXtruct, - % Note that we don't set i32_thing, it will come back as undefined - % from the Python server, but 0 from the C++ server, since it is not - % optional - i32_thing = 2}, - - % Is it safe to match these things? - DemoDict = dict:from_list([ {Key, Key-10} || Key <- lists:seq(0,10) ]), - DemoSet = sets:from_list([ Key || Key <- lists:seq(-3,3) ]), - - %DemoInsane = #insanity{ - % userMap = dict:from_list([{?thriftTest_FIVE, 5000}]), - % xtructs = [#xtruct{ string_thing = <<"Truck">>, byte_thing = 8, i32_thing = 8, i64_thing = 8}]}, - - {Client01, {ok, ok}} = thrift_client:call(Client0, testVoid, []), - - {Client02, {ok, <<"Test">>}} = thrift_client:call(Client01, testString, ["Test"]), - {Client03, {ok, <<"Test">>}} = thrift_client:call(Client02, testString, [<<"Test">>]), - {Client04, {ok, 63}} = thrift_client:call(Client03, testByte, [63]), - {Client05, {ok, -1}} = thrift_client:call(Client04, testI32, [-1]), - {Client06, {ok, 0}} = thrift_client:call(Client05, testI32, [0]), - {Client07, {ok, -34359738368}} = thrift_client:call(Client06, testI64, [-34359738368]), - {Client08, {ok, -5.2098523}} = thrift_client:call(Client07, testDouble, [-5.2098523]), - {Client09, {ok, DemoXtruct}} = thrift_client:call(Client08, testStruct, [DemoXtruct]), - {Client10, {ok, DemoNest}} = thrift_client:call(Client09, testNest, [DemoNest]), - {Client11, {ok, DemoDict}} = thrift_client:call(Client10, testMap, [DemoDict]), - {Client12, {ok, DemoSet}} = thrift_client:call(Client11, testSet, [DemoSet]), - {Client13, {ok, [-1,2,3]}} = thrift_client:call(Client12, testList, [[-1,2,3]]), - {Client14, {ok, 1}} = thrift_client:call(Client13, testEnum, [?thriftTest_Numberz_ONE]), - {Client15, {ok, 309858235082523}} = thrift_client:call(Client14, testTypedef, [309858235082523]), - - % No python implementation, but works with C++ and Erlang. - %{Client16, {ok, InsaneResult}} = thrift_client:call(Client15, testInsanity, [DemoInsane]), - %io:format("~p~n", [InsaneResult]), - Client16 = Client15, - - {Client17, {ok, #xtruct{string_thing = <<"Message">>}}} = - thrift_client:call(Client16, testMultiException, ["Safe", "Message"]), - - Client18 = - try - {ClientS1, Result1} = thrift_client:call(Client17, testMultiException, ["Xception", "Message"]), - io:format("Unexpected return! ~p~n", [Result1]), - ClientS1 - catch - throw:{ClientS2, {exception, ExnS1 = #xception{}}} -> - #xception{errorCode = 1001, message = <<"This is an Xception">>} = ExnS1, - ClientS2; - throw:{ClientS2, {exception, _ExnS1 = #xception2{}}} -> - io:format("Wrong exception type!~n", []), - ClientS2 - end, - - Client19 = - try - {ClientS3, Result2} = thrift_client:call(Client18, testMultiException, ["Xception2", "Message"]), - io:format("Unexpected return! ~p~n", [Result2]), - ClientS3 - catch - throw:{ClientS4, {exception, _ExnS2 = #xception{}}} -> - io:format("Wrong exception type!~n", []), - ClientS4; - throw:{ClientS4, {exception, ExnS2 = #xception2{}}} -> - #xception2{errorCode = 2002, - struct_thing = #xtruct{ - string_thing = <<"This is an Xception2">>}} = ExnS2, - ClientS4 - end, - - thrift_client:close(Client19). diff --git a/test/erl/src/test_disklog.erl b/test/erl/src/test_disklog.erl deleted file mode 100644 index fc0dcf867..000000000 --- a/test/erl/src/test_disklog.erl +++ /dev/null @@ -1,83 +0,0 @@ -%% -%% Licensed to the Apache Software Foundation (ASF) under one -%% or more contributor license agreements. See the NOTICE file -%% distributed with this work for additional information -%% regarding copyright ownership. The ASF licenses this file -%% to you under the Apache License, Version 2.0 (the -%% "License"); you may not use this file except in compliance -%% with the License. You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. -%% - --module(test_disklog). - --compile(export_all). - -t() -> - {ok, TransportFactory} = - thrift_disk_log_transport:new_transport_factory( - test_disklog, - [{file, "/tmp/test_log"}, - {size, {1024*1024, 10}}]), - {ok, ProtocolFactory} = thrift_binary_protocol:new_protocol_factory( - TransportFactory, []), - {ok, Proto} = ProtocolFactory(), - {ok, Client0} = thrift_client:new(Proto, thriftTest_thrift), - - io:format("Client started~n"), - - % We have to make oneway calls into this client only since otherwise it will try - % to read from the disklog and go boom. - {Client1, {ok, ok}} = thrift_client:call(Client0, testOneway, [16#deadbeef]), - io:format("Call written~n"), - - % Use the send_call method to write a non-oneway call into the log - {Client2, ok} = thrift_client:send_call(Client1, testString, [<<"hello world">>]), - io:format("Non-oneway call sent~n"), - - {_Client3, ok} = thrift_client:close(Client2), - io:format("Client closed~n"), - - ok. - - - -t_base64() -> - {ok, TransportFactory} = - thrift_disk_log_transport:new_transport_factory( - test_disklog, - [{file, "/tmp/test_b64_log"}, - {size, {1024*1024, 10}}]), - {ok, B64Factory} = - thrift_base64_transport:new_transport_factory(TransportFactory), - {ok, BufFactory} = - thrift_buffered_transport:new_transport_factory(B64Factory), - {ok, ProtocolFactory} = thrift_binary_protocol:new_protocol_factory( - BufFactory, []), - {ok, Proto} = ProtocolFactory(), - {ok, Client0} = thrift_client:new(Proto, thriftTest_thrift), - - io:format("Client started~n"), - - % We have to make oneway calls into this client only since otherwise it will try - % to read from the disklog and go boom. - {Client1, {ok, ok}} = thrift_client:call(Client0, testOneway, [16#deadbeef]), - io:format("Call written~n"), - - % Use the send_call method to write a non-oneway call into the log - {Client2, ok} = thrift_client:send_call(Client1, testString, [<<"hello world">>]), - io:format("Non-oneway call sent~n"), - - {_Client3, ok} = thrift_client:close(Client2), - io:format("Client closed~n"), - - ok. - diff --git a/test/erl/src/test_membuffer.erl b/test/erl/src/test_membuffer.erl deleted file mode 100644 index fcf993a15..000000000 --- a/test/erl/src/test_membuffer.erl +++ /dev/null @@ -1,120 +0,0 @@ -%% -%% Licensed to the Apache Software Foundation (ASF) under one -%% or more contributor license agreements. See the NOTICE file -%% distributed with this work for additional information -%% regarding copyright ownership. The ASF licenses this file -%% to you under the Apache License, Version 2.0 (the -%% "License"); you may not use this file except in compliance -%% with the License. You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. -%% - --module(test_membuffer). --export([t/0]). - --include("thriftTest_types.hrl"). - -test_data() -> - #xtruct { - string_thing = <<"foobar">>, - byte_thing = 123, - i32_thing = 1234567, - i64_thing = 12345678900 - }. - -t1() -> - {ok, Transport} = thrift_memory_buffer:new(), - {ok, Protocol0} = thrift_binary_protocol:new(Transport), - TestData = test_data(), - {Protocol1, ok} = thrift_protocol:write(Protocol0, - {{struct, element(2, thriftTest_types:struct_info('xtruct'))}, - TestData}), - {_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1, - {struct, element(2, thriftTest_types:struct_info('xtruct'))}, - 'xtruct'), - Result = TestData. - - -t2() -> - {ok, Transport} = thrift_memory_buffer:new(), - {ok, Protocol0} = thrift_binary_protocol:new(Transport), - TestData = test_data(), - {Protocol1, ok} = thrift_protocol:write(Protocol0, - {{struct, element(2, thriftTest_types:struct_info('xtruct'))}, - TestData}), - {_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1, - {struct, element(2, thriftTest_types:struct_info('xtruct3'))}, - 'xtruct3'), - - Result = #xtruct3{string_thing = TestData#xtruct.string_thing, - changed = undefined, - i32_thing = TestData#xtruct.i32_thing, - i64_thing = TestData#xtruct.i64_thing}. - - -t3() -> - {ok, Transport} = thrift_memory_buffer:new(), - {ok, Protocol0} = thrift_binary_protocol:new(Transport), - TestData = #bools{im_true = true, im_false = false}, - {Protocol1, ok} = thrift_protocol:write(Protocol0, - {{struct, element(2, thriftTest_types:struct_info('bools'))}, - TestData}), - {_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1, - {struct, element(2, thriftTest_types:struct_info('bools'))}, - 'bools'), - - true = TestData#bools.im_true =:= Result#bools.im_true, - true = TestData#bools.im_false =:= Result#bools.im_false. - - -t4() -> - {ok, Transport} = thrift_memory_buffer:new(), - {ok, Protocol0} = thrift_binary_protocol:new(Transport), - TestData = #insanity{xtructs=[]}, - {Protocol1, ok} = thrift_protocol:write(Protocol0, - {{struct, element(2, thriftTest_types:struct_info('insanity'))}, - TestData}), - {_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1, - {struct, element(2, thriftTest_types:struct_info('insanity'))}, - 'insanity'), - - TestData = Result. - -t5() -> - % test writing to a buffer, getting the bytes out, putting them - % in a new buffer and reading them - - % here's the writing part - {ok, Transport0} = thrift_memory_buffer:new(), - {ok, Protocol0} = thrift_binary_protocol:new(Transport0), - TestData = test_data(), - {Protocol1, ok} = thrift_protocol:write(Protocol0, - {{struct, element(2, thriftTest_types:struct_info('xtruct'))}, - TestData}), - % flush now returns the buffer - {_Protocol2, Buf} = thrift_protocol:flush_transport (Protocol1), - - % now the reading part - {ok, T2} = thrift_memory_buffer:new (Buf), - {ok, P2} = thrift_binary_protocol:new(T2), - {_, {ok, Result}} = thrift_protocol:read(P2, - {struct, element(2, thriftTest_types:struct_info('xtruct'))}, - 'xtruct'), - - Result = TestData. - -t() -> - t1(), - t2(), - t3(), - t4(), - t5(). - diff --git a/test/erl/src/test_server.erl b/test/erl/src/test_server.erl deleted file mode 100644 index 63f7b080e..000000000 --- a/test/erl/src/test_server.erl +++ /dev/null @@ -1,204 +0,0 @@ -%% -%% Licensed to the Apache Software Foundation (ASF) under one -%% or more contributor license agreements. See the NOTICE file -%% distributed with this work for additional information -%% regarding copyright ownership. The ASF licenses this file -%% to you under the Apache License, Version 2.0 (the -%% "License"); you may not use this file except in compliance -%% with the License. You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. -%% - --module(test_server). - --export([go/0, go/1, start_link/2, handle_function/2]). - --include("thriftTest_types.hrl"). - --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}] ++ - ServerOpts). - - -handle_function(testVoid, {}) -> - io:format("testVoid~n"), - ok; - -handle_function(testString, {S}) when is_binary(S) -> - io:format("testString: ~p~n", [S]), - {reply, S}; - -handle_function(testByte, {I8}) when is_integer(I8) -> - io:format("testByte: ~p~n", [I8]), - {reply, I8}; - -handle_function(testI32, {I32}) when is_integer(I32) -> - io:format("testI32: ~p~n", [I32]), - {reply, I32}; - -handle_function(testI64, {I64}) when is_integer(I64) -> - io:format("testI64: ~p~n", [I64]), - {reply, I64}; - -handle_function(testDouble, {Double}) when is_float(Double) -> - io:format("testDouble: ~p~n", [Double]), - {reply, Double}; - -handle_function(testStruct, - {Struct = #xtruct{string_thing = String, - byte_thing = Byte, - i32_thing = I32, - i64_thing = I64}}) -when is_binary(String), - is_integer(Byte), - is_integer(I32), - is_integer(I64) -> - io:format("testStruct: ~p~n", [Struct]), - {reply, Struct}; - -handle_function(testNest, - {Nest}) when is_record(Nest, xtruct2), - is_record(Nest#xtruct2.struct_thing, xtruct) -> - io:format("testNest: ~p~n", [Nest]), - {reply, Nest}; - -handle_function(testMap, {Map}) -> - io:format("testMap: ~p~n", [dict:to_list(Map)]), - {reply, Map}; - -handle_function(testSet, {Set}) -> - true = sets:is_set(Set), - io:format("testSet: ~p~n", [sets:to_list(Set)]), - {reply, Set}; - -handle_function(testList, {List}) when is_list(List) -> - io:format("testList: ~p~n", [List]), - {reply, List}; - -handle_function(testEnum, {Enum}) when is_integer(Enum) -> - io:format("testEnum: ~p~n", [Enum]), - {reply, Enum}; - -handle_function(testTypedef, {UserID}) when is_integer(UserID) -> - io:format("testTypedef: ~p~n", [UserID]), - {reply, UserID}; - -handle_function(testMapMap, {Hello}) -> - io:format("testMapMap: ~p~n", [Hello]), - - PosList = [{I, I} || I <- lists:seq(1, 5)], - NegList = [{-I, -I} || I <- lists:seq(1, 5)], - - MapMap = dict:from_list([{4, dict:from_list(PosList)}, - {-4, dict:from_list(NegList)}]), - {reply, MapMap}; - -handle_function(testInsanity, {Insanity}) when is_record(Insanity, insanity) -> - Hello = #xtruct{string_thing = <<"Hello2">>, - byte_thing = 2, - i32_thing = 2, - i64_thing = 2}, - - Goodbye = #xtruct{string_thing = <<"Goodbye4">>, - byte_thing = 4, - i32_thing = 4, - i64_thing = 4}, - Crazy = #insanity{ - userMap = dict:from_list([{?thriftTest_Numberz_EIGHT, 8}]), - xtructs = [Goodbye] - }, - - Looney = #insanity{ - userMap = dict:from_list([{?thriftTest_Numberz_FIVE, 5}]), - xtructs = [Hello] - }, - - FirstMap = dict:from_list([{?thriftTest_Numberz_TWO, Crazy}, - {?thriftTest_Numberz_THREE, Crazy}]), - - SecondMap = dict:from_list([{?thriftTest_Numberz_SIX, Looney}]), - - Insane = dict:from_list([{1, FirstMap}, - {2, SecondMap}]), - - io:format("Return = ~p~n", [Insane]), - - {reply, Insane}; - -handle_function(testMulti, Args = {Arg0, Arg1, Arg2, _Arg3, Arg4, Arg5}) - when is_integer(Arg0), - is_integer(Arg1), - is_integer(Arg2), - is_integer(Arg4), - is_integer(Arg5) -> - - io:format("testMulti(~p)~n", [Args]), - {reply, #xtruct{string_thing = <<"Hello2">>, - byte_thing = Arg0, - i32_thing = Arg1, - i64_thing = Arg2}}; - -handle_function(testException, {String}) when is_binary(String) -> - io:format("testException(~p)~n", [String]), - case String of - <<"Xception">> -> - throw(#xception{errorCode = 1001, - message = String}); - _ -> - ok - end; - -handle_function(testMultiException, {Arg0, Arg1}) -> - io:format("testMultiException(~p, ~p)~n", [Arg0, Arg1]), - case Arg0 of - <<"Xception">> -> - throw(#xception{errorCode = 1001, - message = <<"This is an Xception">>}); - <<"Xception2">> -> - throw(#xception2{errorCode = 2002, - struct_thing = - #xtruct{string_thing = <<"This is an Xception2">>}}); - _ -> - {reply, #xtruct{string_thing = Arg1}} - end; - -handle_function(testOneway, {Seconds}) -> - timer:sleep(1000 * Seconds), - ok. diff --git a/test/erl/src/test_thrift_1151.erl b/test/erl/src/test_thrift_1151.erl deleted file mode 100644 index c50ddee70..000000000 --- a/test/erl/src/test_thrift_1151.erl +++ /dev/null @@ -1,19 +0,0 @@ --module(test_thrift_1151). - --include("thrift1151_types.hrl"). - --export([t/0, t1/0]). - -t() -> - S1 = #structC{x=#structB{x=1}}, - {ok, Transport} = thrift_memory_buffer:new(), - {ok, Protocol} = thrift_binary_protocol:new(Transport), - thrift_protocol:write(Protocol, - {{struct, element(2, thrift1151_types:struct_info('structC'))}, S1}). - -t1() -> - S2 = #structC{x=#structA{x="1"}}, - {ok, Transport} = thrift_memory_buffer:new(), - {ok, Protocol} = thrift_binary_protocol:new(Transport), - thrift_protocol:write(Protocol, - {{struct, element(2, thrift1151_types:struct_info('structC'))}, S2}). |