From: David Reiss Date: Tue, 10 Jun 2008 22:59:10 +0000 (+0000) Subject: Add stress test implementation for new Erlang X-Git-Tag: 0.2.0~755 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=60b50cf3850cf88d6f6c4b23703b03f134f50b73;p=common%2Fthrift.git Add stress test implementation for new Erlang git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666389 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/test/erl/Makefile b/test/erl/Makefile index 8bffb627..d85371e1 100644 --- a/test/erl/Makefile +++ b/test/erl/Makefile @@ -10,7 +10,7 @@ SRCDIR=src ALL_INCLUDEDIR=$(GEN_INCLUDEDIR) $(INCLUDEDIR) ../../lib/erl/include INCLUDEFLAGS=$(patsubst %,-I%, ${ALL_INCLUDEDIR}) -MODULES = test_server +MODULES = stress_server test_server INCLUDES = TARGETS = $(patsubst %,${TARGETDIR}/%.beam,${MODULES}) @@ -18,12 +18,14 @@ HEADERS = $(patsubst %,${INCLUDEDIR}/%.hrl,${INCLUDES}) all: ${GEN_TARGETDIR}/ ${TARGETS} -RPCFILE = ../ThriftTest.thrift +TEST_RPCFILE = ../ThriftTest.thrift +STRESS_RPCFILE = ../StressTest.thrift THRIFT = ../../compiler/cpp/thrift ${GENDIR}/: ${RPCFILE} rm -rf ${GENDIR} - ${THRIFT} -alterl ${RPCFILE} + ${THRIFT} -alterl ${TEST_RPCFILE} + ${THRIFT} -alterl ${STRESS_RPCFILE} mkdir -p ${GEN_INCLUDEDIR} mkdir -p ${GEN_SRCDIR} mkdir -p ${GEN_TARGETDIR} diff --git a/test/erl/src/stress_server.erl b/test/erl/src/stress_server.erl new file mode 100644 index 00000000..915b027e --- /dev/null +++ b/test/erl/src/stress_server.erl @@ -0,0 +1,64 @@ +-module(stress_server). + +-include("thrift.hrl"). + +-export([start_link/1, old_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). + +% Start the server with the old style bindings +old_start_link(Port) -> + Handler = ?MODULE, + Processor = service_thrift, + + TF = tBufferedTransportFactory:new(), + PF = tBinaryProtocolFactory:new(), + + ServerTransport = tErlAcceptor, + ServerFlavor = tErlServer, + + Server = oop:start_new(ServerFlavor, [Port, Handler, Processor, ServerTransport, TF, PF]), + + case ?R0(Server, effectful_serve) of + ok -> Server; + Error -> Error + end. + + +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.