You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2022/06/13 21:40:30 UTC

[thrift] branch uuid-datatype updated: Replace ThriftTest.thrift with ThriftTest_0_16.thrift to allow for merging the partially completed uuid implementation to master

This is an automated email from the ASF dual-hosted git repository.

jensg pushed a commit to branch uuid-datatype
in repository https://gitbox.apache.org/repos/asf/thrift.git


The following commit(s) were added to refs/heads/uuid-datatype by this push:
     new eda1ac348 Replace ThriftTest.thrift with ThriftTest_0_16.thrift to allow for merging the partially completed uuid implementation to master
eda1ac348 is described below

commit eda1ac348b31ae8c1cde9aa83f919aa56385eaad
Author: Jens Geyer <je...@apache.org>
AuthorDate: Mon Jun 13 23:37:25 2022 +0200

    Replace ThriftTest.thrift with ThriftTest_0_16.thrift to allow for merging the partially completed uuid implementation to master
---
 .gitignore                                |   4 +-
 debian/copyright                          |   1 +
 lib/c_glib/test/CMakeLists.txt            |   4 +-
 lib/c_glib/test/Makefile.am               |   4 +-
 lib/cpp/test/CMakeLists.txt               |   2 +-
 lib/cpp/test/Makefile.am                  |   2 +-
 lib/d/test/Makefile.am                    |   2 +-
 lib/erl/Makefile.am                       |   2 +-
 lib/go/test/IncludesTest.thrift           |   2 +-
 lib/go/test/Makefile.am                   |   6 +-
 lib/go/test/NamespacedTest.thrift         |   2 +-
 lib/java/gradle/generateTestThrift.gradle |   2 +-
 lib/js/Gruntfile.js                       |  12 +-
 lib/js/test/build.xml                     |   4 +-
 lib/json/test/build.xml                   |   2 +-
 lib/nodejs/Makefile.am                    |   4 +-
 lib/nodejs/test/testAll.sh                |   4 +-
 lib/nodets/Makefile.am                    |   4 +-
 lib/nodets/test/runClient.sh              |   4 +-
 lib/nodets/test/runServer.sh              |   4 +-
 lib/nodets/test/testAll.sh                |   4 +-
 lib/perl/Makefile.am                      |   2 +-
 lib/php/test/Makefile.am                  |   4 +-
 lib/php/test/TestValidators.thrift        |   2 +-
 lib/ts/Gruntfile.js                       |   4 +-
 lib/ts/test/build.xml                     |   4 +-
 test/Include.thrift                       |   2 +-
 test/Makefile.am                          |   1 +
 test/ReuseObjects.thrift                  |   2 +-
 test/ThriftTest_0_16.thrift               | 418 ++++++++++++++++++++++++++++++
 test/c_glib/CMakeLists.txt                |   2 +-
 test/c_glib/Makefile.am                   |   2 +-
 test/cpp/CMakeLists.txt                   |   2 +-
 test/cpp/Makefile.am                      |   2 +-
 test/crossrunner/util.py                  |   2 +-
 test/dart/Makefile.am                     |   4 +-
 test/erl/Makefile.am                      |   2 +-
 test/go/Makefile.am                       |  12 +-
 test/lua/Makefile.am                      |   2 +-
 test/perl/Makefile.am                     |   4 +-
 test/php/Makefile.am                      |   8 +-
 test/py.tornado/Makefile.am               |   4 +-
 test/py.twisted/Makefile.am               |   4 +-
 test/py/generate.cmake                    |  14 +-
 test/rb/Makefile.am                       |   4 +-
 test/rs/Makefile.am                       |   4 +-
 tutorial/Makefile.am                      |   2 +-
 47 files changed, 504 insertions(+), 84 deletions(-)

diff --git a/.gitignore b/.gitignore
index 85b694cad..eb78d2e33 100644
--- a/.gitignore
+++ b/.gitignore
@@ -285,7 +285,7 @@ project.lock.json
 /lib/go/src
 /lib/go/test/fuzz/gopathfuzz
 /lib/go/test/gopath/
-/lib/go/test/ThriftTest.thrift
+/lib/go/test/ThriftTest*.thrift
 /lib/nodets/test-compiled/
 /lib/ocaml/_build/
 /lib/ocaml/_tags
@@ -355,7 +355,7 @@ project.lock.json
 /test/erl/_build/
 /test/erl/rebar.lock
 /test/go/bin/
-/test/go/ThriftTest.thrift
+/test/go/ThriftTest*.thrift
 /test/go/gopath
 /test/go/pkg/
 /test/go/src/code.google.com/
diff --git a/debian/copyright b/debian/copyright
index a7038b1c4..bdb97c7fa 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -80,6 +80,7 @@ under the Apache 2.0 License:
   lib/cpp/test/OptionalRequiredTest.cpp
   test/OptionalRequiredTest.thrift
   test/ThriftTest.thrift
+  test/ThriftTest_0_16.thrift
 
 --------------------------------------------------
 For the aclocal/ax_boost_base.m4 and contrib/fb303/aclocal/ax_boost_base.m4 components:
diff --git a/lib/c_glib/test/CMakeLists.txt b/lib/c_glib/test/CMakeLists.txt
index 85c6dd0f4..7c968b3b7 100644
--- a/lib/c_glib/test/CMakeLists.txt
+++ b/lib/c_glib/test/CMakeLists.txt
@@ -221,7 +221,7 @@ add_custom_command(OUTPUT
     gen-c_glib/t_test_second_service.h
     gen-c_glib/t_test_thrift_test.h
     gen-c_glib/t_test_thrift_test_types.h
-    COMMAND ${THRIFT_COMPILER} --gen c_glib ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
+    COMMAND ${THRIFT_COMPILER} --gen c_glib ${PROJECT_SOURCE_DIR}/test/ThriftTest_0_16.thrift
 )
 
 add_custom_command(OUTPUT
@@ -231,7 +231,7 @@ add_custom_command(OUTPUT
     gen-cpp/ThriftTest.h
     gen-cpp/ThriftTest_constants.h
     gen-cpp/ThriftTest_types.h
-    COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
+    COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/ThriftTest_0_16.thrift
 )
 
 # TODO: Add memory checks using ctest_memcheck or similar
diff --git a/lib/c_glib/test/Makefile.am b/lib/c_glib/test/Makefile.am
index 023165adb..be31c63d8 100644
--- a/lib/c_glib/test/Makefile.am
+++ b/lib/c_glib/test/Makefile.am
@@ -332,10 +332,10 @@ gen-c_glib/t_test_enum_test_types.c gen-c_glib/t_test_enum_test_types.h gen-c_gl
 gen-c_glib/t_test_optional_required_test_types.c gen-c_glib/t_test_optional_required_test_types.h: ../../../test/OptionalRequiredTest.thrift $(THRIFT)
 	$(THRIFT) --gen c_glib $<
 
-gen-c_glib/t_test_second_service.c gen-c_glib/t_test_thrift_test.c gen-c_glib/t_test_thrift_test_types.c gen-c_glib/t_test_second_service.h gen-c_glib/t_test_thrift_test.h gen-c_glib/t_test_thrift_test_types.h: ../../../test/ThriftTest.thrift $(THRIFT)
+gen-c_glib/t_test_second_service.c gen-c_glib/t_test_thrift_test.c gen-c_glib/t_test_thrift_test_types.c gen-c_glib/t_test_second_service.h gen-c_glib/t_test_thrift_test.h gen-c_glib/t_test_thrift_test_types.h: ../../../test/ThriftTest_0_16.thrift $(THRIFT)
 	$(THRIFT) --gen c_glib $<
 
-gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/ThriftTest_types.cpp: ../../../test/ThriftTest.thrift $(THRIFT)
+gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/ThriftTest_types.cpp: ../../../test/ThriftTest_0_16.thrift $(THRIFT)
 	$(THRIFT) --gen cpp $<
 
 TESTS = \
diff --git a/lib/cpp/test/CMakeLists.txt b/lib/cpp/test/CMakeLists.txt
index 19854e1a3..af2a5a7e1 100644
--- a/lib/cpp/test/CMakeLists.txt
+++ b/lib/cpp/test/CMakeLists.txt
@@ -384,7 +384,7 @@ add_custom_command(OUTPUT gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
 )
 
 add_custom_command(OUTPUT gen-cpp/SecondService.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_types.h
-    COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
+    COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/ThriftTest_0_16.thrift
 )
 
 add_custom_command(OUTPUT gen-cpp/OneWayService.cpp gen-cpp/OneWayTest_types.h gen-cpp/OneWayService.h
diff --git a/lib/cpp/test/Makefile.am b/lib/cpp/test/Makefile.am
index 7f630db10..ef8ff3204 100644
--- a/lib/cpp/test/Makefile.am
+++ b/lib/cpp/test/Makefile.am
@@ -408,7 +408,7 @@ gen-cpp/Recursive_types.cpp gen-cpp/Recursive_types.h: $(top_srcdir)/test/Recurs
 gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp: $(top_srcdir)/test/StressTest.thrift
 	$(THRIFT) --gen cpp $<
 
-gen-cpp/SecondService.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_types.h: $(top_srcdir)/test/ThriftTest.thrift
+gen-cpp/SecondService.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_types.h: $(top_srcdir)/test/ThriftTest_0_16.thrift
 	$(THRIFT) --gen cpp $<
 
 gen-cpp/OneWayService.cpp gen-cpp/OneWayTest_types.h gen-cpp/OneWayService.h: OneWayTest.thrift
diff --git a/lib/d/test/Makefile.am b/lib/d/test/Makefile.am
index 5ec8255bb..2336767a2 100644
--- a/lib/d/test/Makefile.am
+++ b/lib/d/test/Makefile.am
@@ -35,7 +35,7 @@ $(stress_test_gen): $(top_srcdir)/test/StressTest.thrift
 thrift_test_gen = $(addprefix gen-d/thrift/test/, SecondService.d \
 	ThriftTest.d ThriftTest_constants.d ThriftTest_types.d)
 
-$(thrift_test_gen): $(top_srcdir)/test/ThriftTest.thrift
+$(thrift_test_gen): $(top_srcdir)/test/ThriftTest_0_16.thrift
 	$(THRIFT) --gen d $<
 
 
diff --git a/lib/erl/Makefile.am b/lib/erl/Makefile.am
index bf7abd549..567f79e73 100644
--- a/lib/erl/Makefile.am
+++ b/lib/erl/Makefile.am
@@ -24,7 +24,7 @@ THRIFT_FILES = $(wildcard test/*.thrift) \
 		  ../../test/ConstantsDemo.thrift \
 		  ../../test/NameConflictTest.thrift \
 		  ../../test/DoubleConstantsTest.thrift \
-		  ../../test/ThriftTest.thrift
+		  ../../test/ThriftTest_0_16.thrift
 
 ERL_FLAG = erl
 ERL_FLAG_LEGACY = erl:legacynames
diff --git a/lib/go/test/IncludesTest.thrift b/lib/go/test/IncludesTest.thrift
index 3f60321f7..d54b7fb9c 100644
--- a/lib/go/test/IncludesTest.thrift
+++ b/lib/go/test/IncludesTest.thrift
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-include "ThriftTest.thrift"
+include "ThriftTest_0_16.thrift"
 include "NamespacedTest.thrift"
 
 const ThriftTest.UserId USERID = 42
diff --git a/lib/go/test/Makefile.am b/lib/go/test/Makefile.am
index 4392ebe19..164cfd65f 100644
--- a/lib/go/test/Makefile.am
+++ b/lib/go/test/Makefile.am
@@ -26,7 +26,7 @@ endif
 THRIFT_GO_ARGS_BASE = thrift_import=github.com/apache/thrift/lib/go/thrift,package_prefix=github.com/apache/thrift/lib/go/test/gopath/src/
 
 THRIFTARGS = -out gopath/src/ --gen go:$(THRIFT_GO_ARGS_BASE)$(COMPILER_EXTRAFLAG)
-THRIFTTEST = $(top_srcdir)/test/ThriftTest.thrift
+THRIFTTEST = $(top_srcdir)/test/ThriftTest_0_16.thrift
 
 THRIFTARGS_SKIP_REMOTE = -out gopath/src/ --gen go:skip_remote,$(THRIFT_GO_ARGS_BASE)$(COMPILER_EXTRAFLAG)
 
@@ -65,7 +65,7 @@ gopath: $(THRIFT) $(THRIFTTEST) \
 				ConstOptionalField.thrift \
 				ProcessorMiddlewareTest.thrift
 	mkdir -p gopath/src
-	grep -v list.*map.*list.*map $(THRIFTTEST) | grep -v 'set<Insanity>' > ThriftTest.thrift
+	grep -v list.*map.*list.*map $(THRIFTTEST) | grep -v 'set<Insanity>' > ThriftTest_0_16.thrift
 	$(THRIFT) $(THRIFTARGS) -r IncludesTest.thrift
 	$(THRIFT) $(THRIFTARGS) BinaryKeyTest.thrift
 	$(THRIFT) $(THRIFTARGS) MultiplexedProtocolTest.thrift
@@ -124,7 +124,7 @@ check: gopath
 	$(GO) test -mod=mod ./gopath/src/tests ./gopath/src/dontexportrwtest
 
 clean-local:
-	$(RM) -r gopath ThriftTest.thrift gen-go
+	$(RM) -r gopath ThriftTest_0_16.thrift gen-go
 
 client: stubs
 	$(GO) run -mod=mod TestClient.go
diff --git a/lib/go/test/NamespacedTest.thrift b/lib/go/test/NamespacedTest.thrift
index a91035062..98169cc0d 100644
--- a/lib/go/test/NamespacedTest.thrift
+++ b/lib/go/test/NamespacedTest.thrift
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-include "ThriftTest.thrift"
+include "ThriftTest_0_16.thrift"
 
 namespace go lib.go.test.namespacedtest
 
diff --git a/lib/java/gradle/generateTestThrift.gradle b/lib/java/gradle/generateTestThrift.gradle
index e8515473e..5a769cc67 100644
--- a/lib/java/gradle/generateTestThrift.gradle
+++ b/lib/java/gradle/generateTestThrift.gradle
@@ -76,7 +76,7 @@ task generateJava(group: 'Build') {
 
     ext.outputBuffer = new ByteArrayOutputStream()
 
-    thriftCompile(it, 'ThriftTest.thrift')
+    thriftCompile(it, 'ThriftTest_0_16.thrift')
     thriftCompile(it, 'JavaTypes.thrift')
     thriftCompile(it, 'DebugProtoTest.thrift')
     thriftCompile(it, 'DoubleConstantsTest.thrift')
diff --git a/lib/js/Gruntfile.js b/lib/js/Gruntfile.js
index 4421f0cb4..f173c6c76 100644
--- a/lib/js/Gruntfile.js
+++ b/lib/js/Gruntfile.js
@@ -49,16 +49,16 @@ module.exports = function(grunt) {
       },
       ThriftGen: {
         command: [
-          '"../../compiler/cpp/thrift" -gen js --out test/gen-js ../../test/ThriftTest.thrift',
+          '"../../compiler/cpp/thrift" -gen js --out test/gen-js ../../test/ThriftTest_0_16.thrift',
           '"../../compiler/cpp/thrift" -gen js --out test/gen-js ../../test/JsDeepConstructorTest.thrift',
-          '"../../compiler/cpp/thrift" -gen js:jquery --out test/gen-js-jquery ../../test/ThriftTest.thrift',
-          '"../../compiler/cpp/thrift" -gen js:node --out test/gen-nodejs ../../test/ThriftTest.thrift',
-          '"../../compiler/cpp/thrift" -gen js:es6 --out test/gen-js-es6 ../../test/ThriftTest.thrift',
-          '"../../compiler/cpp/thrift" -gen js:node,es6 --out ./test/gen-nodejs-es6 ../../test/ThriftTest.thrift',
+          '"../../compiler/cpp/thrift" -gen js:jquery --out test/gen-js-jquery ../../test/ThriftTest_0_16.thrift',
+          '"../../compiler/cpp/thrift" -gen js:node --out test/gen-nodejs ../../test/ThriftTest_0_16.thrift',
+          '"../../compiler/cpp/thrift" -gen js:es6 --out test/gen-js-es6 ../../test/ThriftTest_0_16.thrift',
+          '"../../compiler/cpp/thrift" -gen js:node,es6 --out ./test/gen-nodejs-es6 ../../test/ThriftTest_0_16.thrift',
         ].join(' && ')
       },
       ThriftGenJQ: {
-        command: '../../compiler/cpp/thrift -gen js:jquery -gen js:node -o test ../../test/ThriftTest.thrift'
+        command: '../../compiler/cpp/thrift -gen js:jquery -gen js:node -o test ../../test/ThriftTest_0_16.thrift'
       },
       ThriftGenDeepConstructor: {
         command: '../../compiler/cpp/thrift -gen js -o test ../../test/JsDeepConstructorTest.thrift'
diff --git a/lib/js/test/build.xml b/lib/js/test/build.xml
index db8501229..f2d18988d 100644
--- a/lib/js/test/build.xml
+++ b/lib/js/test/build.xml
@@ -162,10 +162,10 @@
 
   <target name="generate">
     <exec executable="${thrift.compiler}" failonerror="true">
-      <arg line="--gen java ${thrift.dir}/test/ThriftTest.thrift" />
+      <arg line="--gen java ${thrift.dir}/test/ThriftTest_0_16.thrift" />
     </exec>
     <exec executable="${thrift.compiler}" failonerror="true">
-      <arg line="--gen js:jquery ${thrift.dir}/test/ThriftTest.thrift" />
+      <arg line="--gen js:jquery ${thrift.dir}/test/ThriftTest_0_16.thrift" />
     </exec>
     <exec executable="${thrift.compiler}" failonerror="true">
       <arg line="--gen js:jquery ${thrift.dir}/test/DoubleConstantsTest.thrift" />
diff --git a/lib/json/test/build.xml b/lib/json/test/build.xml
index eb39c4f28..8983b2ef8 100644
--- a/lib/json/test/build.xml
+++ b/lib/json/test/build.xml
@@ -70,7 +70,7 @@
     <exec executable="${thrift.compiler}" failonerror="true">
       <arg line="--gen json"/>
       <arg line="-out ${gen.json.dir}"/>
-      <arg line="${thrift.test.dir}/ThriftTest.thrift"/>
+      <arg line="${thrift.test.dir}/ThriftTest_0_16.thrift"/>
     </exec>
     <exec executable="${thrift.compiler}" failonerror="true">
       <arg line="--gen json:merge"/>
diff --git a/lib/nodejs/Makefile.am b/lib/nodejs/Makefile.am
index 67f6ff6a9..91e3c3c35 100644
--- a/lib/nodejs/Makefile.am
+++ b/lib/nodejs/Makefile.am
@@ -17,8 +17,8 @@
 
 # We call npm twice to work around npm issues
 
-stubs: $(top_srcdir)/test/ThriftTest.thrift
-	$(THRIFT) --gen js:node -o test/ $(top_srcdir)/test/ThriftTest.thrift
+stubs: $(top_srcdir)/test/ThriftTest_0_16.thrift
+	$(THRIFT) --gen js:node -o test/ $(top_srcdir)/test/ThriftTest_0_16.thrift
 
 deps: $(top_srcdir)/package.json
 	$(NPM) install $(top_srcdir)/ || $(NPM) install $(top_srcdir)/
diff --git a/lib/nodejs/test/testAll.sh b/lib/nodejs/test/testAll.sh
index 3ae88b369..8919cf95f 100755
--- a/lib/nodejs/test/testAll.sh
+++ b/lib/nodejs/test/testAll.sh
@@ -87,11 +87,11 @@ TESTOK=0
 
 # generating Thrift code
 
-${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/ThriftTest.thrift
+${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/ThriftTest_0_16.thrift
 ${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/JsDeepConstructorTest.thrift
 ${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/Int64Test.thrift
 mkdir ${DIR}/gen-nodejs-es6
-${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/ThriftTest.thrift
+${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/ThriftTest_0_16.thrift
 ${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/JsDeepConstructorTest.thrift
 ${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/Int64Test.thrift
 
diff --git a/lib/nodets/Makefile.am b/lib/nodets/Makefile.am
index 939dff2a5..7657be6cd 100644
--- a/lib/nodets/Makefile.am
+++ b/lib/nodets/Makefile.am
@@ -17,9 +17,9 @@
 
 # We call npm twice to work around npm issues
 
-stubs: $(top_srcdir)/test/ThriftTest.thrift
+stubs: $(top_srcdir)/test/ThriftTest_0_16.thrift
 	mkdir -p test-compiled
-	$(THRIFT) --gen js:node,ts -o test/ $(top_srcdir)/test/ThriftTest.thrift && $(THRIFT) --gen js:node,ts -o test-compiled $(top_srcdir)/test/ThriftTest.thrift
+	$(THRIFT) --gen js:node,ts -o test/ $(top_srcdir)/test/ThriftTest_0_16.thrift && $(THRIFT) --gen js:node,ts -o test-compiled $(top_srcdir)/test/ThriftTest_0_16.thrift
 	$(THRIFT) --gen js:node,ts -o test/ $(top_srcdir)/test/Int64Test.thrift && $(THRIFT) --gen js:node,ts -o test-compiled $(top_srcdir)/test/Int64Test.thrift
 
 ts-compile: stubs
diff --git a/lib/nodets/test/runClient.sh b/lib/nodets/test/runClient.sh
index 8d5e9a33f..1e4acdf37 100755
--- a/lib/nodets/test/runClient.sh
+++ b/lib/nodets/test/runClient.sh
@@ -10,8 +10,8 @@ export NODE_PATH="${DIR}:${DIR}/../../nodejs/lib:${NODE_PATH}"
 compile()
 {
   #generating thrift code
-  ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift
-  ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift
+  ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest_0_16.thrift
+  ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest_0_16.thrift
 }
 compile
 
diff --git a/lib/nodets/test/runServer.sh b/lib/nodets/test/runServer.sh
index 4eee92717..c0fff2289 100755
--- a/lib/nodets/test/runServer.sh
+++ b/lib/nodets/test/runServer.sh
@@ -10,8 +10,8 @@ export NODE_PATH="${DIR}:${DIR}/../../nodejs/lib:${NODE_PATH}"
 compile()
 {
   #generating thrift code
-  ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift
-  ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift
+  ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest_0_16.thrift
+  ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest_0_16.thrift
 }
 compile
 
diff --git a/lib/nodets/test/testAll.sh b/lib/nodets/test/testAll.sh
index 3be12c362..17c48d924 100755
--- a/lib/nodets/test/testAll.sh
+++ b/lib/nodets/test/testAll.sh
@@ -10,9 +10,9 @@ export NODE_PATH="${DIR}:${DIR}/../../nodejs/lib:${NODE_PATH}"
 compile()
 {
   #generating thrift code
-  ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift
+  ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest_0_16.thrift
   ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/Int64Test.thrift
-  ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift
+  ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest_0_16.thrift
   ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/Int64Test.thrift
 
   tsc --outDir $COMPILEDDIR --project $DIR/tsconfig.json
diff --git a/lib/perl/Makefile.am b/lib/perl/Makefile.am
index 84009bd16..9f6f50a72 100644
--- a/lib/perl/Makefile.am
+++ b/lib/perl/Makefile.am
@@ -68,7 +68,7 @@ EXTRA_DIST = \
 	README.md
 
 THRIFT = @top_builddir@/compiler/cpp/thrift
-THRIFT_IF = @top_srcdir@/test/ThriftTest.thrift
+THRIFT_IF = @top_srcdir@/test/ThriftTest_0_16.thrift
 NAME_BENCHMARKSERVICE =  @top_srcdir@/lib/rb/benchmark/Benchmark.thrift
 NAME_AGGR = @top_srcdir@/contrib/async-test/aggr.thrift
 
diff --git a/lib/php/test/Makefile.am b/lib/php/test/Makefile.am
index 6f4e50a50..20f1c609b 100644
--- a/lib/php/test/Makefile.am
+++ b/lib/php/test/Makefile.am
@@ -19,9 +19,9 @@
 
 PHPUNIT=php $(top_srcdir)/vendor/bin/phpunit
 
-stubs: ../../../test/ThriftTest.thrift  TestValidators.thrift
+stubs: ../../../test/ThriftTest_0_16.thrift  TestValidators.thrift
 	mkdir -p ./packages/php
-	$(THRIFT) --gen php -r --out ./packages/php ../../../test/ThriftTest.thrift
+	$(THRIFT) --gen php -r --out ./packages/php ../../../test/ThriftTest_0_16.thrift
 	mkdir -p ./packages/phpv
 	mkdir -p ./packages/phpvo
 	mkdir -p ./packages/phpjs
diff --git a/lib/php/test/TestValidators.thrift b/lib/php/test/TestValidators.thrift
index 9c38d92af..7301f571d 100644
--- a/lib/php/test/TestValidators.thrift
+++ b/lib/php/test/TestValidators.thrift
@@ -19,7 +19,7 @@
 
 namespace php TestValidators
 
-include "../../../test/ThriftTest.thrift"
+include "../../../test/ThriftTest_0_16.thrift"
 
 union UnionOfStrings {
   1: string aa;
diff --git a/lib/ts/Gruntfile.js b/lib/ts/Gruntfile.js
index fcd79f8e5..6cd90589e 100644
--- a/lib/ts/Gruntfile.js
+++ b/lib/ts/Gruntfile.js
@@ -32,9 +32,9 @@ module.exports = function(grunt) {
       ThriftGen: {
         command: [
           'mkdir -p test/gen-js',
-          '../../compiler/cpp/thrift -gen js:ts --out test/gen-js ../../test/ThriftTest.thrift',
+          '../../compiler/cpp/thrift -gen js:ts --out test/gen-js ../../test/ThriftTest_0_16.thrift',
           'mkdir -p test/gen-nodejs',
-          '../../compiler/cpp/thrift -gen js:node,ts --out test/gen-nodejs ../../test/ThriftTest.thrift',
+          '../../compiler/cpp/thrift -gen js:node,ts --out test/gen-nodejs ../../test/ThriftTest_0_16.thrift',
         ].join(' && ')
       },
       ThriftBrowserifyNodeInt64: {
diff --git a/lib/ts/test/build.xml b/lib/ts/test/build.xml
index 5c3a4a87b..35fbf2d9a 100644
--- a/lib/ts/test/build.xml
+++ b/lib/ts/test/build.xml
@@ -167,10 +167,10 @@
 
   <target name="generate">
     <exec executable="${thrift.compiler}" failonerror="true">
-      <arg line="--gen java ${thrift.dir}/test/ThriftTest.thrift" />
+      <arg line="--gen java ${thrift.dir}/test/ThriftTest_0_16.thrift" />
     </exec>
     <exec executable="${thrift.compiler}" failonerror="true">
-      <arg line="--gen js:jquery ${thrift.dir}/test/ThriftTest.thrift" />
+      <arg line="--gen js:jquery ${thrift.dir}/test/ThriftTest_0_16.thrift" />
     </exec>
     <exec executable="${thrift.compiler}" failonerror="true">
       <arg line="--gen js:jquery ${thrift.dir}/test/DoubleConstantsTest.thrift" />
diff --git a/test/Include.thrift b/test/Include.thrift
index 562319b2f..44aeb9169 100644
--- a/test/Include.thrift
+++ b/test/Include.thrift
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-include "ThriftTest.thrift"
+include "ThriftTest_0_16.thrift"
 
 struct IncludeTest {
   1: required ThriftTest.Bools bools
diff --git a/test/Makefile.am b/test/Makefile.am
index d428086bd..4e54dfd34 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -152,6 +152,7 @@ EXTRA_DIST = \
 	SmallTest.thrift \
 	StressTest.thrift \
 	ThriftTest.thrift \
+	ThriftTest_0_16.thrift \
 	TypedefTest.thrift \
 	Types.thrift \
 	UnsafeTypes.thrift \
diff --git a/test/ReuseObjects.thrift b/test/ReuseObjects.thrift
index 2dd6c6ec3..bb9c8af96 100644
--- a/test/ReuseObjects.thrift
+++ b/test/ReuseObjects.thrift
@@ -21,7 +21,7 @@
 
 namespace java thrift.test
 
-include "ThriftTest.thrift"
+include "ThriftTest_0_16.thrift"
 
 struct Reuse {
   1: i32 val1;
diff --git a/test/ThriftTest_0_16.thrift b/test/ThriftTest_0_16.thrift
new file mode 100644
index 000000000..4a1045fcd
--- /dev/null
+++ b/test/ThriftTest_0_16.thrift
@@ -0,0 +1,418 @@
+/*
+ * 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.
+ *
+ * Contains some contributions under the Thrift Software License.
+ * Please see doc/old-thrift-license.txt in the Thrift distribution for
+ * details.
+ */
+
+namespace c_glib TTest
+namespace cpp thrift.test
+namespace delphi Thrift.Test
+namespace go thrifttest
+namespace java thrift.test
+namespace js ThriftTest
+namespace lua ThriftTest
+namespace netstd ThriftTest
+namespace perl ThriftTest
+namespace php ThriftTest
+namespace py ThriftTest
+namespace py.twisted ThriftTest
+namespace rb Thrift.Test
+namespace st ThriftTest
+namespace xsd test (uri = 'http://thrift.apache.org/ns/ThriftTest')
+
+// Presence of namespaces and sub-namespaces for which there is
+// no generator should compile with warnings only
+namespace noexist ThriftTest
+namespace cpp.noexist ThriftTest
+
+namespace * thrift.test
+
+/**
+ * Docstring!
+ */
+enum Numberz
+{
+  ONE = 1,
+  TWO,
+  THREE,
+  FIVE = 5,
+  SIX,
+  EIGHT = 8
+}
+
+const Numberz myNumberz = Numberz.ONE;
+// the following is expected to fail:
+// const Numberz urNumberz = ONE;
+
+typedef i64 UserId
+
+struct Bonk
+{
+  1: string message,
+  2: i32 type
+}
+
+typedef map<string,Bonk> MapType
+
+struct Bools {
+  1: bool im_true,
+  2: bool im_false,
+}
+
+struct Xtruct
+{
+  1:  string string_thing,
+  4:  i8     byte_thing,
+  9:  i32    i32_thing,
+  11: i64    i64_thing
+}
+
+struct Xtruct2
+{
+  1: i8     byte_thing,  // used to be byte, hence the name
+  2: Xtruct struct_thing,
+  3: i32    i32_thing
+}
+
+struct Xtruct3
+{
+  1:  string string_thing,
+  4:  i32    changed,
+  9:  i32    i32_thing,
+  11: i64    i64_thing
+}
+
+
+struct Insanity
+{
+  1: map<Numberz, UserId> userMap,
+  2: list<Xtruct> xtructs
+} (python.immutable= "")
+
+struct CrazyNesting {
+  1: string string_field,
+  2: optional set<Insanity> set_field,
+  // Do not insert line break as test/go/Makefile.am is removing this line with pattern match
+  3: required list<map<set<i32> (python.immutable = ""), map<i32,set<list<map<Insanity,string>(python.immutable = "")> (python.immutable = "")>>>> list_field,
+  4: binary binary_field
+}
+
+union SomeUnion {
+  1: map<Numberz, UserId> map_thing,
+  2: string string_thing,
+  3: i32 i32_thing,
+  4: Xtruct3 xtruct_thing,
+  5: Insanity insanity_thing
+}
+
+exception Xception {
+  1: i32 errorCode,
+  2: string message
+}
+
+exception Xception2 {
+  1: i32 errorCode,
+  2: Xtruct struct_thing
+}
+
+struct EmptyStruct {}
+
+struct OneField {
+  1: EmptyStruct field
+}
+
+service ThriftTest
+{
+  /**
+   * Prints "testVoid()" and returns nothing.
+   */
+  void         testVoid(),
+
+  /**
+   * Prints 'testString("%s")' with thing as '%s'
+   * @param string thing - the string to print
+   * @return string - returns the string 'thing'
+   */
+  string       testString(1: string thing),
+
+  /**
+   * Prints 'testBool("%s")' where '%s' with thing as 'true' or 'false'
+   * @param bool  thing - the bool data to print
+   * @return bool  - returns the bool 'thing'
+   */
+  bool         testBool(1: bool thing),
+
+  /**
+   * Prints 'testByte("%d")' with thing as '%d'
+   * The types i8 and byte are synonyms, use of i8 is encouraged, byte still exists for the sake of compatibility.
+   * @param byte thing - the i8/byte to print
+   * @return i8 - returns the i8/byte 'thing'
+   */
+  i8           testByte(1: i8 thing),
+
+  /**
+   * Prints 'testI32("%d")' with thing as '%d'
+   * @param i32 thing - the i32 to print
+   * @return i32 - returns the i32 'thing'
+   */
+  i32          testI32(1: i32 thing),
+
+  /**
+   * Prints 'testI64("%d")' with thing as '%d'
+   * @param i64 thing - the i64 to print
+   * @return i64 - returns the i64 'thing'
+   */
+  i64          testI64(1: i64 thing),
+
+  /**
+   * Prints 'testDouble("%f")' with thing as '%f'
+   * @param double thing - the double to print
+   * @return double - returns the double 'thing'
+   */
+  double       testDouble(1: double thing),
+
+  /**
+   * Prints 'testBinary("%s")' where '%s' is a hex-formatted string of thing's data
+   * @param binary  thing - the binary data to print
+   * @return binary  - returns the binary 'thing'
+   */
+  binary       testBinary(1: binary thing),
+
+  /**
+   * Prints 'testStruct("{%s}")' where thing has been formatted into a string of comma separated values
+   * @param Xtruct thing - the Xtruct to print
+   * @return Xtruct - returns the Xtruct 'thing'
+   */
+  Xtruct       testStruct(1: Xtruct thing),
+
+  /**
+   * Prints 'testNest("{%s}")' where thing has been formatted into a string of the nested struct
+   * @param Xtruct2 thing - the Xtruct2 to print
+   * @return Xtruct2 - returns the Xtruct2 'thing'
+   */
+  Xtruct2      testNest(1: Xtruct2 thing),
+
+  /**
+   * Prints 'testMap("{%s")' where thing has been formatted into a string of 'key => value' pairs
+   *  separated by commas and new lines
+   * @param map<i32,i32> thing - the map<i32,i32> to print
+   * @return map<i32,i32> - returns the map<i32,i32> 'thing'
+   */
+  map<i32,i32> testMap(1: map<i32,i32> thing),
+
+  /**
+   * Prints 'testStringMap("{%s}")' where thing has been formatted into a string of 'key => value' pairs
+   *  separated by commas and new lines
+   * @param map<string,string> thing - the map<string,string> to print
+   * @return map<string,string> - returns the map<string,string> 'thing'
+   */
+  map<string,string> testStringMap(1: map<string,string> thing),
+
+  /**
+   * Prints 'testSet("{%s}")' where thing has been formatted into a string of values
+   *  separated by commas and new lines
+   * @param set<i32> thing - the set<i32> to print
+   * @return set<i32> - returns the set<i32> 'thing'
+   */
+  set<i32>     testSet(1: set<i32> thing),
+
+  /**
+   * Prints 'testList("{%s}")' where thing has been formatted into a string of values
+   *  separated by commas and new lines
+   * @param list<i32> thing - the list<i32> to print
+   * @return list<i32> - returns the list<i32> 'thing'
+   */
+  list<i32>    testList(1: list<i32> thing),
+
+  /**
+   * Prints 'testEnum("%d")' where thing has been formatted into its numeric value
+   * @param Numberz thing - the Numberz to print
+   * @return Numberz - returns the Numberz 'thing'
+   */
+  Numberz      testEnum(1: Numberz thing),
+
+  /**
+   * Prints 'testTypedef("%d")' with thing as '%d'
+   * @param UserId thing - the UserId to print
+   * @return UserId - returns the UserId 'thing'
+   */
+  UserId       testTypedef(1: UserId thing),
+
+  /**
+   * Prints 'testMapMap("%d")' with hello as '%d'
+   * @param i32 hello - the i32 to print
+   * @return map<i32,map<i32,i32>> - returns a dictionary with these values:
+   *   {-4 => {-4 => -4, -3 => -3, -2 => -2, -1 => -1, }, 4 => {1 => 1, 2 => 2, 3 => 3, 4 => 4, }, }
+   */
+  map<i32,map<i32,i32>> testMapMap(1: i32 hello),
+
+  /**
+   * So you think you've got this all worked out, eh?
+   *
+   * Creates a map with these values and prints it out:
+   *   { 1 => { 2 => argument,
+   *            3 => argument,
+   *          },
+   *     2 => { 6 => <empty Insanity struct>, },
+   *   }
+   * @return map<UserId, map<Numberz,Insanity>> - a map with the above values
+   */
+  map<UserId, map<Numberz,Insanity>> testInsanity(1: Insanity argument),
+
+  /**
+   * Prints 'testMulti()'
+   * @param i8 arg0 -
+   * @param i32 arg1 -
+   * @param i64 arg2 -
+   * @param map<i16, string> arg3 -
+   * @param Numberz arg4 -
+   * @param UserId arg5 -
+   * @return Xtruct - returns an Xtruct with string_thing = "Hello2, byte_thing = arg0, i32_thing = arg1
+   *    and i64_thing = arg2
+   */
+  Xtruct testMulti(1: i8 arg0, 2: i32 arg1, 3: i64 arg2, 4: map<i16, string> arg3, 5: Numberz arg4, 6: UserId arg5),
+
+  /**
+   * Print 'testException(%s)' with arg as '%s'
+   * @param string arg - a string indication what type of exception to throw
+   * if arg == "Xception" throw Xception with errorCode = 1001 and message = arg
+   * else if arg == "TException" throw TException
+   * else do not throw anything
+   */
+  void testException(1: string arg) throws(1: Xception err1),
+
+  /**
+   * Print 'testMultiException(%s, %s)' with arg0 as '%s' and arg1 as '%s'
+   * @param string arg - a string indicating what type of exception to throw
+   * if arg0 == "Xception" throw Xception with errorCode = 1001 and message = "This is an Xception"
+   * else if arg0 == "Xception2" throw Xception2 with errorCode = 2002 and struct_thing.string_thing = "This is an Xception2"
+   * else do not throw anything
+   * @return Xtruct - an Xtruct with string_thing = arg1
+   */
+  Xtruct testMultiException(1: string arg0, 2: string arg1) throws(1: Xception err1, 2: Xception2 err2)
+
+  /**
+   * Print 'testOneway(%d): Sleeping...' with secondsToSleep as '%d'
+   * sleep 'secondsToSleep'
+   * Print 'testOneway(%d): done sleeping!' with secondsToSleep as '%d'
+   * @param i32 secondsToSleep - the number of seconds to sleep
+   */
+  oneway void testOneway(1:i32 secondsToSleep)
+}
+
+service SecondService
+{
+  /**
+   * Prints 'testString("%s")' with thing as '%s'
+   * @param string thing - the string to print
+   * @return string - returns the string 'thing'
+   */
+  string secondtestString(1: string thing)
+}
+
+struct VersioningTestV1 {
+       1: i32 begin_in_both,
+       3: string old_string,
+       12: i32 end_in_both
+}
+
+struct VersioningTestV2 {
+       1: i32 begin_in_both,
+
+       2: i32 newint,
+       3: i8 newbyte,
+       4: i16 newshort,
+       5: i64 newlong,
+       6: double newdouble
+       7: Bonk newstruct,
+       8: list<i32> newlist,
+       9: set<i32> newset,
+       10: map<i32, i32> newmap,
+       11: string newstring,
+       12: i32 end_in_both
+}
+
+struct ListTypeVersioningV1 {
+       1: list<i32> myints;
+       2: string hello;
+}
+
+struct ListTypeVersioningV2 {
+       1: list<string> strings;
+       2: string hello;
+}
+
+struct GuessProtocolStruct {
+  7: map<string,string> map_field,
+}
+
+struct LargeDeltas {
+  1: Bools b1,
+  10: Bools b10,
+  100: Bools b100,
+  500: bool check_true,
+  1000: Bools b1000,
+  1500: bool check_false,
+  2000: VersioningTestV2 vertwo2000,
+  2500: set<string> a_set2500,
+  3000: VersioningTestV2 vertwo3000,
+  4000: list<i32> big_numbers
+}
+
+struct NestedListsI32x2 {
+  1: list<list<i32>> integerlist
+}
+struct NestedListsI32x3 {
+  1: list<list<list<i32>>> integerlist
+}
+struct NestedMixedx2 {
+  1: list<set<i32>> int_set_list
+  2: map<i32,set<string>> map_int_strset
+  3: list<map<i32,set<string>>> map_int_strset_list
+}
+struct ListBonks {
+  1: list<Bonk> bonk
+}
+struct NestedListsBonk {
+  1: list<list<list<Bonk>>> bonk
+}
+
+struct BoolTest {
+  1: optional bool b = true;
+  2: optional string s = "true";
+}
+
+struct StructA {
+  1: required string s;
+}
+
+struct StructB {
+  1: optional StructA aa;
+  2: required StructA ab;
+}
+
+struct OptionalSetDefaultTest {
+  1: optional set<string> with_default = [ "test" ]
+}
+
+struct OptionalBinary {
+  1: optional set<binary> bin_set = {}
+  2: optional map<binary,i32> bin_map = {}
+}
diff --git a/test/c_glib/CMakeLists.txt b/test/c_glib/CMakeLists.txt
index 410774d78..8105e2c6f 100644
--- a/test/c_glib/CMakeLists.txt
+++ b/test/c_glib/CMakeLists.txt
@@ -56,5 +56,5 @@ target_link_libraries(test_client crosstestgencglib "${OPENSSL_LIBRARIES}")
 #
 
 add_custom_command(OUTPUT gen-c_glib/t_test_second_service.c  gen-c_glib/t_test_second_service.h  gen-c_glib/t_test_thrift_test.c  gen-c_glib/t_test_thrift_test.h  gen-c_glib/t_test_thrift_test_types.c  gen-c_glib/t_test_thrift_test_types.h
-    COMMAND ${THRIFT_COMPILER} --gen c_glib -r ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
+    COMMAND ${THRIFT_COMPILER} --gen c_glib -r ${PROJECT_SOURCE_DIR}/test/ThriftTest_0_16.thrift
 )
diff --git a/test/c_glib/Makefile.am b/test/c_glib/Makefile.am
index 98a373498..88cd5d523 100644
--- a/test/c_glib/Makefile.am
+++ b/test/c_glib/Makefile.am
@@ -56,7 +56,7 @@ test_server_LDADD = \
 #
 # Common thrift code generation rules
 #
-gen-c_glib/t_test_second_service.c  gen-c_glib/t_test_second_service.h  gen-c_glib/t_test_thrift_test.c  gen-c_glib/t_test_thrift_test.h  gen-c_glib/t_test_thrift_test_types.c  gen-c_glib/t_test_thrift_test_types.h: $(top_srcdir)/test/ThriftTest.thrift $(THRIFT)
+gen-c_glib/t_test_second_service.c  gen-c_glib/t_test_second_service.h  gen-c_glib/t_test_thrift_test.c  gen-c_glib/t_test_thrift_test.h  gen-c_glib/t_test_thrift_test_types.c  gen-c_glib/t_test_thrift_test_types.h: $(top_srcdir)/test/ThriftTest_0_16.thrift $(THRIFT)
 	$(THRIFT) --gen c_glib -r $<
 
 AM_CFLAGS = -g -Wall -Wextra $(GLIB_CFLAGS) $(GOBJECT_CFLAGS)
diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt
index a6c1fd5cf..426151ae0 100644
--- a/test/cpp/CMakeLists.txt
+++ b/test/cpp/CMakeLists.txt
@@ -100,7 +100,7 @@ add_test(NAME SpecificNameTest COMMAND SpecificNameTest)
 #
 
 add_custom_command(OUTPUT gen-cpp/SecondService.cpp gen-cpp/SecondService.h gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest.h gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp
-    COMMAND ${THRIFT_COMPILER} --gen cpp:templates,cob_style -r ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
+    COMMAND ${THRIFT_COMPILER} --gen cpp:templates,cob_style -r ${PROJECT_SOURCE_DIR}/test/ThriftTest_0_16.thrift
 )
 
 add_custom_command(OUTPUT gen-cpp/Service.cpp
diff --git a/test/cpp/Makefile.am b/test/cpp/Makefile.am
index d3754f478..d44a602fc 100644
--- a/test/cpp/Makefile.am
+++ b/test/cpp/Makefile.am
@@ -97,7 +97,7 @@ StressTestNonBlocking_LDADD = \
 #
 # Common thrift code generation rules
 #
-gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/SecondService.cpp gen-cpp/SecondService.h gen-cpp/SecondService.tcc: $(top_srcdir)/test/ThriftTest.thrift $(THRIFT)
+gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/SecondService.cpp gen-cpp/SecondService.h gen-cpp/SecondService.tcc: $(top_srcdir)/test/ThriftTest_0_16.thrift $(THRIFT)
 	$(THRIFT) --gen cpp:templates,cob_style -r $<
 
 gen-cpp/Service.cpp: $(top_srcdir)/test/StressTest.thrift $(THRIFT)
diff --git a/test/crossrunner/util.py b/test/crossrunner/util.py
index c214df85a..65e05042b 100644
--- a/test/crossrunner/util.py
+++ b/test/crossrunner/util.py
@@ -21,7 +21,7 @@ import copy
 
 
 def domain_socket_path(port):
-    return '/tmp/ThriftTest.thrift.%d' % port
+    return '/tmp/ThriftTest_0_16.thrift.%d' % port
 
 
 def merge_dict(base, update):
diff --git a/test/dart/Makefile.am b/test/dart/Makefile.am
index 27fdc099f..062a0605b 100644
--- a/test/dart/Makefile.am
+++ b/test/dart/Makefile.am
@@ -17,8 +17,8 @@
 # under the License.
 #
 
-gen-dart/thrift_test/lib/thrift_test.dart: ../ThriftTest.thrift
-	$(THRIFT) --gen dart ../ThriftTest.thrift
+gen-dart/thrift_test/lib/thrift_test.dart: ../ThriftTest_0_16.thrift
+	$(THRIFT) --gen dart ../ThriftTest_0_16.thrift
 
 pub-get-gen: gen-dart/thrift_test/lib/thrift_test.dart
 	cd gen-dart/thrift_test; ${DARTPUB} get
diff --git a/test/erl/Makefile.am b/test/erl/Makefile.am
index 145a76354..05ee2303c 100644
--- a/test/erl/Makefile.am
+++ b/test/erl/Makefile.am
@@ -25,7 +25,7 @@ ERL_FLAG = erl
 	for f in $(THRIFT_FILES) ; do \
 	  $(THRIFT) --gen $(ERL_FLAG) -o src $$f ; \
 	done ; \
-	$(THRIFT) --gen $(ERL_FLAG) -o src ../ThriftTest.thrift
+	$(THRIFT) --gen $(ERL_FLAG) -o src ../ThriftTest_0_16.thrift
 	touch .generated
 
 precross: .generated
diff --git a/test/go/Makefile.am b/test/go/Makefile.am
index ef00df3a2..748575f3d 100644
--- a/test/go/Makefile.am
+++ b/test/go/Makefile.am
@@ -26,19 +26,19 @@ GOINSTALLEXTRA =
 endif
 
 THRIFTCMD = $(THRIFT) -out src/gen --gen go:thrift_import=github.com/apache/thrift/lib/go/thrift,package_prefix=github.com/apache/thrift/test/go/src/gen/$(COMPILER_EXTRAFLAG)
-THRIFTTEST = $(top_srcdir)/test/ThriftTest.thrift
+THRIFTTEST = $(top_srcdir)/test/ThriftTest_0_16.thrift
 
 precross: bin/testclient bin/testserver
 
-ThriftTest.thrift: $(THRIFTTEST)
-	grep -v list.*map.*list.*map $(THRIFTTEST) > ThriftTest.thrift
+ThriftTest_0_16.thrift: $(THRIFTTEST)
+	grep -v list.*map.*list.*map $(THRIFTTEST) > ThriftTest_0_16.thrift
 
 .PHONY: gopath
 
 # Thrift for GO has problems with complex map keys: THRIFT-2063
-gopath: $(THRIFT) ThriftTest.thrift
+gopath: $(THRIFT) ThriftTest_0_16.thrift
 	mkdir -p src/gen
-	$(THRIFTCMD) ThriftTest.thrift
+	$(THRIFTCMD) ThriftTest_0_16.thrift
 	$(THRIFTCMD) ../StressTest.thrift
 	touch gopath
 
@@ -52,7 +52,7 @@ bin/stress: gopath
 	GOPATH=`pwd` $(GO) install $(GOINSTALLEXTRA) -mod=mod ./src/bin/stress
 
 clean-local:
-	$(RM) -r src/gen src/github.com/golang src/thrift bin pkg gopath ThriftTest.thrift
+	$(RM) -r src/gen src/github.com/golang src/thrift bin pkg gopath ThriftTest_0_16.thrift
 
 check_PROGRAMS: bin/testclient bin/testserver bin/stress
 
diff --git a/test/lua/Makefile.am b/test/lua/Makefile.am
index b2683e1b9..fcb59c4b3 100644
--- a/test/lua/Makefile.am
+++ b/test/lua/Makefile.am
@@ -20,7 +20,7 @@
 THRIFT = $(top_builddir)/compiler/cpp/thrift
 
 # Remove "MapType =" line to ignore some map bug for now
-stubs: ../ThriftTest.thrift $(THRIFT)
+stubs: ../ThriftTest_0_16.thrift $(THRIFT)
 	$(THRIFT) --gen lua $<
 	$(SED) -i.bak 's/MapType =//g' gen-lua/ThriftTest_ttypes.lua
 	$(RM) gen-lua/ThriftTest_ttypes.lua.bak
diff --git a/test/perl/Makefile.am b/test/perl/Makefile.am
index 1dbaf28b0..33e24cf3a 100644
--- a/test/perl/Makefile.am
+++ b/test/perl/Makefile.am
@@ -17,8 +17,8 @@
 # under the License.
 #
 
-stubs: ../ThriftTest.thrift
-	$(THRIFT) --gen perl ../ThriftTest.thrift
+stubs: ../ThriftTest_0_16.thrift
+	$(THRIFT) --gen perl ../ThriftTest_0_16.thrift
 
 precross: stubs
 
diff --git a/test/php/Makefile.am b/test/php/Makefile.am
index 9e13affa1..2138da712 100644
--- a/test/php/Makefile.am
+++ b/test/php/Makefile.am
@@ -17,11 +17,11 @@
 # under the License.
 #
 
-stubs: ../ThriftTest.thrift
-	$(THRIFT) --gen php ../ThriftTest.thrift
-	$(THRIFT) --gen php:inlined ../ThriftTest.thrift
+stubs: ../ThriftTest_0_16.thrift
+	$(THRIFT) --gen php ../ThriftTest_0_16.thrift
+	$(THRIFT) --gen php:inlined ../ThriftTest_0_16.thrift
 	$(MKDIR_P) gen-php-classmap
-	$(THRIFT) -out gen-php-classmap --gen php:classmap ../ThriftTest.thrift
+	$(THRIFT) -out gen-php-classmap --gen php:classmap ../ThriftTest_0_16.thrift
 
 php_ext_dir:
 	mkdir -p php_ext_dir
diff --git a/test/py.tornado/Makefile.am b/test/py.tornado/Makefile.am
index e962f0cfc..b4dc54275 100644
--- a/test/py.tornado/Makefile.am
+++ b/test/py.tornado/Makefile.am
@@ -19,8 +19,8 @@
 
 THRIFT = $(top_srcdir)/compiler/cpp/thrift
 
-thrift_gen: ../ThriftTest.thrift ../SmallTest.thrift
-	$(THRIFT) --gen py:tornado ../ThriftTest.thrift
+thrift_gen: ../ThriftTest_0_16.thrift ../SmallTest.thrift
+	$(THRIFT) --gen py:tornado ../ThriftTest_0_16.thrift
 	$(THRIFT) --gen py:tornado ../SmallTest.thrift
 
 check: thrift_gen
diff --git a/test/py.twisted/Makefile.am b/test/py.twisted/Makefile.am
index dee8e2f69..08bbfc0b7 100644
--- a/test/py.twisted/Makefile.am
+++ b/test/py.twisted/Makefile.am
@@ -19,8 +19,8 @@
 
 TRIAL ?= trial
 
-stubs: ../ThriftTest.thrift ../SmallTest.thrift
-	$(THRIFT) --gen py:twisted ../ThriftTest.thrift
+stubs: ../ThriftTest_0_16.thrift ../SmallTest.thrift
+	$(THRIFT) --gen py:twisted ../ThriftTest_0_16.thrift
 	$(THRIFT) --gen py:twisted ../SmallTest.thrift
 
 check: stubs
diff --git a/test/py/generate.cmake b/test/py/generate.cmake
index e6a6735e4..798d098f7 100644
--- a/test/py/generate.cmake
+++ b/test/py/generate.cmake
@@ -7,13 +7,13 @@ macro(GENERATE FILENAME GENERATOR OUTPUTDIR)
   endif()
 endmacro(GENERATE)
 
-generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py gen-py-default)
-generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:slots gen-py-slots)
-generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:old_style gen-py-oldstyle)
-generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:no_utf8strings gen-py-no_utf8strings)
-generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:dynamic gen-py-dynamic)
-generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:dynamic,slots gen-py-dynamicslots)
-generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:enum gen-py-enum)
+generate(${MY_PROJECT_DIR}/test/ThriftTest_0_16.thrift py gen-py-default)
+generate(${MY_PROJECT_DIR}/test/ThriftTest_0_16.thrift py:slots gen-py-slots)
+generate(${MY_PROJECT_DIR}/test/ThriftTest_0_16.thrift py:old_style gen-py-oldstyle)
+generate(${MY_PROJECT_DIR}/test/ThriftTest_0_16.thrift py:no_utf8strings gen-py-no_utf8strings)
+generate(${MY_PROJECT_DIR}/test/ThriftTest_0_16.thrift py:dynamic gen-py-dynamic)
+generate(${MY_PROJECT_DIR}/test/ThriftTest_0_16.thrift py:dynamic,slots gen-py-dynamicslots)
+generate(${MY_PROJECT_DIR}/test/ThriftTest_0_16.thrift py:enum gen-py-enum)
 
 generate(${MY_PROJECT_DIR}/test/DebugProtoTest.thrift py gen-py-default)
 generate(${MY_PROJECT_DIR}/test/DebugProtoTest.thrift py:slots gen-py-slots)
diff --git a/test/rb/Makefile.am b/test/rb/Makefile.am
index 39109340d..cbb782a85 100644
--- a/test/rb/Makefile.am
+++ b/test/rb/Makefile.am
@@ -17,8 +17,8 @@
 # under the License.
 #
 
-stubs: $(THRIFT) ../ThriftTest.thrift ../SmallTest.thrift
-	$(THRIFT) --gen rb ../ThriftTest.thrift
+stubs: $(THRIFT) ../ThriftTest_0_16.thrift ../SmallTest.thrift
+	$(THRIFT) --gen rb ../ThriftTest_0_16.thrift
 	$(THRIFT) --gen rb ../SmallTest.thrift
 	$(THRIFT) --gen rb ../Recursive.thrift
 
diff --git a/test/rs/Makefile.am b/test/rs/Makefile.am
index 78db5ee0c..da9b6d7f1 100644
--- a/test/rs/Makefile.am
+++ b/test/rs/Makefile.am
@@ -17,8 +17,8 @@
 # under the License.
 #
 
-stubs: ../ThriftTest.thrift
-	$(THRIFT) -I ./thrifts -out src --gen rs ../ThriftTest.thrift
+stubs: ../ThriftTest_0_16.thrift
+	$(THRIFT) -I ./thrifts -out src --gen rs ../ThriftTest_0_16.thrift
 
 precross: stubs
 	$(CARGO) build
diff --git a/tutorial/Makefile.am b/tutorial/Makefile.am
index 77e8593ea..4b61684aa 100644
--- a/tutorial/Makefile.am
+++ b/tutorial/Makefile.am
@@ -83,7 +83,7 @@ SUBDIRS += php
 endif
 
 #
-# generate html for ThriftTest.thrift
+# generate html for tutorial.thrift
 #
 all-local:
 	$(top_builddir)/compiler/cpp/thrift --gen html -r $(top_srcdir)/tutorial/tutorial.thrift