THRIFT-5548: add kotlin code gen
Client: kotlin
Patch: Jiayu Liu

This closes #2556
diff --git a/test/crossrunner/run.py b/test/crossrunner/run.py
index bb06d25..126b7ec 100644
--- a/test/crossrunner/run.py
+++ b/test/crossrunner/run.py
@@ -243,7 +243,11 @@
                 # kill them off; if we didn't kill them off, something else
                 # happened (crashed?)
                 if test.server.stop_signal != 0:
-                    if sv.killed or sv.returncode > 0:
+                    # for bash scripts, 128+N is the exit code for signal N, since we are sending
+                    # DEFAULT_SIGNAL=1, 128 + 1 is the expected err code
+                    # http://www.gnu.org/software/bash/manual/html_node/Exit-Status.html
+                    allowed_return_code = set([-1, 0, 128 + 1])
+                    if sv.killed or sv.returncode not in allowed_return_code:
                         result |= RESULT_ERROR
                 else:
                     if not sv.killed:
diff --git a/test/known_failures_Linux.json b/test/known_failures_Linux.json
index 53a5139..74ae53f 100644
--- a/test/known_failures_Linux.json
+++ b/test/known_failures_Linux.json
@@ -569,6 +569,7 @@
   "java-php_multij-json_buffered-ip",
   "java-php_multij-json_fastframed-framed-ip",
   "java-php_multij-json_framed-ip",
+  "kotlin-netstd_binary_framed-ip",
   "netstd-cl_binary_buffered-ip",
   "netstd-cl_binary_framed-ip",
   "netstd-cpp_binary_buffered-ip",
@@ -653,6 +654,7 @@
   "netstd-java_json_framed-fastframed-ip-ssl",
   "netstd-java_json_framed-ip",
   "netstd-java_json_framed-ip-ssl",
+  "netstd-kotlin_binary_framed-ip",
   "netstd-lua_binary_buffered-ip",
   "netstd-lua_binary_framed-ip",
   "netstd-lua_compact_buffered-ip",
diff --git a/test/tests.json b/test/tests.json
index 3563dc9..e897b39 100644
--- a/test/tests.json
+++ b/test/tests.json
@@ -171,6 +171,41 @@
     "workdir": "../lib/java"
   },
   {
+    "name": "kotlin",
+    "join_args": false,
+    "server": {
+      "delay": 15,
+      "command": [
+        "cross-test-server/build/install/TestServer/bin/TestServer"
+      ],
+      "protocols": [
+        "binary"
+      ]
+    },
+    "client": {
+      "timeout": 13,
+      "command": [
+        "cross-test-client/build/install/TestClient/bin/TestClient"
+      ],
+      "transports": [
+        "framed"
+      ],
+      "protocols": [
+        "binary"
+      ]
+    },
+    "transports": [
+      "framed"
+    ],
+    "sockets": [
+      "ip"
+    ],
+    "protocols": [
+      "binary"
+    ],
+    "workdir": "../lib/kotlin"
+  },
+  {
     "name": "nodejs",
     "env": {
       "NODE_PATH": "../lib"