summaryrefslogtreecommitdiff
path: root/test/erl
diff options
context:
space:
mode:
authorAnthony F. Molinaro <molinaro@apache.org>2011-06-18 06:04:01 +0000
committerAnthony F. Molinaro <molinaro@apache.org>2011-06-18 06:04:01 +0000
commite49a44ab1d8a386909ad6f52f503374041a2b583 (patch)
tree26685a3978bd2f97a91d0197e04d69123801ca85 /test/erl
parent3d3f42103ca2427da24f32d896e545618ae769eb (diff)
downloadthrift-e49a44ab1d8a386909ad6f52f503374041a2b583.tar.gz
THRIFT-1151 - catch some serialization errors
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1137131 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test/erl')
-rw-r--r--test/erl/Makefile4
-rw-r--r--test/erl/src/Thrift1151.thrift3
-rw-r--r--test/erl/src/test_thrift_1151.erl19
3 files changed, 25 insertions, 1 deletions
diff --git a/test/erl/Makefile b/test/erl/Makefile
index cd4c8a781..bfb1d0052 100644
--- a/test/erl/Makefile
+++ b/test/erl/Makefile
@@ -29,7 +29,7 @@ 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
+MODULES = stress_server test_server test_client test_disklog test_membuffer test_thrift_1151
INCLUDES =
TARGETS = $(patsubst %,${TARGETDIR}/%.beam,${MODULES})
@@ -39,12 +39,14 @@ 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}
diff --git a/test/erl/src/Thrift1151.thrift b/test/erl/src/Thrift1151.thrift
new file mode 100644
index 000000000..6f934a7b1
--- /dev/null
+++ b/test/erl/src/Thrift1151.thrift
@@ -0,0 +1,3 @@
+struct StructA { 1: i16 x; }
+struct StructB { 1: i32 x; }
+struct StructC { 1: StructA x; }
diff --git a/test/erl/src/test_thrift_1151.erl b/test/erl/src/test_thrift_1151.erl
new file mode 100644
index 000000000..c50ddee70
--- /dev/null
+++ b/test/erl/src/test_thrift_1151.erl
@@ -0,0 +1,19 @@
+-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}).