THRIFT-4434: .NET Core cleanup and the beginnings of compiler unit tests
Client: netcore
This closes #1449
diff --git a/test/tests.json b/test/tests.json
index c4e07ee..fd79a9b 100644
--- a/test/tests.json
+++ b/test/tests.json
@@ -1,689 +1,686 @@
-[
- {
- "name": "c_glib",
- "platforms": [
- "Linux"
- ],
- "server": {
- "command": [
- "test_server",
- "--lt-debug"
- ],
- "protocols": [
- "binary:multi",
- "compact:multic"
- ]
+[{
+ "name": "c_glib",
+ "platforms": [
+ "Linux"
+ ],
+ "server": {
+ "command": [
+ "test_server",
+ "--lt-debug"
+ ],
+ "protocols": [
+ "binary:multi",
+ "compact:multic"
+ ]
+ },
+ "client": {
+ "command": [
+ "test_client",
+ "--lt-debug"
+ ],
+ "protocols": [
+ "multi:binary",
+ "multic:compact"
+ ],
+ "sockets": [
+ "ip-ssl"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "multi",
+ "multic"
+ ],
+ "workdir": "c_glib"
},
- "client": {
- "command": [
- "test_client",
- "--lt-debug"
- ],
- "protocols": [
- "multi:binary",
- "multic:compact"
- ],
- "sockets": [
- "ip-ssl"
- ]
+ {
+ "name": "d",
+ "server": {
+ "command": [
+ "thrift_test_server"
+ ]
+ },
+ "client": {
+ "command": [
+ "thrift_test_client"
+ ]
+ },
+ "transports": [
+ "http",
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "json"
+ ],
+ "workdir": "../lib/d/test"
},
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip"
- ],
- "protocols": [
- "binary",
- "compact",
- "multi",
- "multic"
- ],
- "workdir": "c_glib"
- },
- {
- "name": "d",
- "server": {
- "command": [
- "thrift_test_server"
- ]
+ {
+ "name": "go",
+ "server": {
+ "command": [
+ "testserver",
+ "--certPath=../../keys"
+ ]
+ },
+ "client": {
+ "timeout": 6,
+ "command": [
+ "testclient"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "framed",
+ "http"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "json"
+ ],
+ "workdir": "go/bin"
},
- "client": {
- "command": [
- "thrift_test_client"
- ]
+ {
+ "name": "java",
+ "join_args": true,
+ "command": [
+ "ant",
+ "-f",
+ "build.xml",
+ "-Dno-gen-thrift=\"\"",
+ "-Dtestargs"
+ ],
+ "prepare": [
+ "ant",
+ "-f",
+ "build.xml",
+ "compile-test"
+ ],
+ "server": {
+ "delay": 10,
+ "extra_args": ["run-testserver"],
+ "protocols": [
+ "binary:multi",
+ "compact:multic",
+ "json:multij"
+ ]
+ },
+ "client": {
+ "timeout": 13,
+ "extra_args": ["run-testclient"],
+ "transports": [
+ "http"
+ ],
+ "protocols": [
+ "multi:binary",
+ "multic:compact",
+ "multij:json"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "framed",
+ "framed:fastframed"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "json",
+ "multi",
+ "multic",
+ "multij"
+ ],
+ "workdir": "../lib/java"
},
- "transports": [
- "http",
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip",
- "ip-ssl"
- ],
- "protocols": [
- "binary",
- "compact",
- "json"
- ],
- "workdir": "../lib/d/test"
- },
- {
- "name": "go",
- "server": {
- "command": [
- "testserver",
- "--certPath=../../keys"
- ]
+ {
+ "name": "nodejs",
+ "env": {
+ "NODE_PATH": "../lib"
+ },
+ "server": {
+ "command": [
+ "node",
+ "server.js",
+ "--type=tcp"
+ ]
+ },
+ "client": {
+ "timeout": 6,
+ "command": [
+ "node",
+ "client.js",
+ "--type=tcp"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "framed",
+ "http"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl"
+ ],
+ "protocols": [
+ "compact",
+ "binary",
+ "json"
+ ],
+ "workdir": "../lib/nodejs/test"
},
- "client": {
- "timeout": 6,
- "command": [
- "testclient"
- ]
+ {
+ "name": "hs",
+ "server": {
+ "command": [
+ "TestServer"
+ ]
+ },
+ "client": {
+ "timeout": 6,
+ "transports": [
+ "http"
+ ],
+ "command": [
+ "TestClient"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip"
+ ],
+ "protocols": [
+ "header",
+ "compact",
+ "binary",
+ "json"
+ ],
+ "workdir": "hs"
},
- "transports": [
- "buffered",
- "framed",
- "http"
- ],
- "sockets": [
- "ip",
- "ip-ssl"
- ],
- "protocols": [
- "binary",
- "compact",
- "json"
- ],
- "workdir": "go/bin"
- },
- {
- "name": "java",
- "join_args": true,
- "command": [
- "ant",
- "-f",
- "build.xml",
- "-Dno-gen-thrift=\"\"",
- "-Dtestargs"
- ],
- "prepare": [
- "ant",
- "-f",
- "build.xml",
- "compile-test"
- ],
- "server": {
- "delay": 10,
- "extra_args": ["run-testserver"],
- "protocols": [
- "binary:multi",
- "compact:multic",
- "json:multij"
- ]
+ {
+ "name": "py",
+ "server": {
+ "extra_args": ["TSimpleServer"],
+ "command": [
+ "TestServer.py",
+ "--verbose",
+ "--genpydir=gen-py"
+ ]
+ },
+ "client": {
+ "timeout": 10,
+ "command": [
+ "TestClient.py",
+ "--verbose",
+ "--host=localhost",
+ "--genpydir=gen-py"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl"
+ ],
+ "protocols": [
+ "compact",
+ "binary",
+ "json",
+ "binary:accel",
+ "compact:accelc"
+ ],
+ "workdir": "py"
},
- "client": {
- "timeout": 13,
- "extra_args": ["run-testclient"],
- "transports": [
- "http"
- ],
- "protocols": [
- "multi:binary",
- "multic:compact",
- "multij:json"
- ]
+ {
+ "comment": "Using 'python3' executable to test py2 and 3 at once",
+ "name": "py3",
+ "server": {
+ "extra_args": ["TSimpleServer"],
+ "command": [
+ "python3",
+ "TestServer.py",
+ "--verbose",
+ "--genpydir=gen-py"
+ ]
+ },
+ "client": {
+ "timeout": 10,
+ "command": [
+ "python3",
+ "TestClient.py",
+ "--host=localhost",
+ "--genpydir=gen-py"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip-ssl",
+ "ip"
+ ],
+ "protocols": [
+ "compact",
+ "binary",
+ "json",
+ "binary:accel",
+ "compact:accelc"
+ ],
+ "workdir": "py"
},
- "transports": [
- "buffered",
- "framed",
- "framed:fastframed"
- ],
- "sockets": [
- "ip",
- "ip-ssl"
- ],
- "protocols": [
- "binary",
- "compact",
- "json",
- "multi",
- "multic",
- "multij"
- ],
- "workdir": "../lib/java"
- },
- {
- "name": "nodejs",
- "env": {
- "NODE_PATH": "../lib"
+ {
+ "name": "cpp",
+ "server": {
+ "command": [
+ "TestServer"
+ ],
+ "protocols": [
+ "binary:multi",
+ "compact:multic",
+ "header:multih",
+ "json:multij"
+ ]
+ },
+ "client": {
+ "timeout": 8,
+ "command": [
+ "TestClient"
+ ],
+ "protocols": [
+ "multi:binary",
+ "multic:compact",
+ "multih:header",
+ "multij:json"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "http",
+ "framed"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl",
+ "domain"
+ ],
+ "protocols": [
+ "compact",
+ "binary",
+ "json",
+ "header",
+ "multi",
+ "multic",
+ "multih",
+ "multij"
+ ],
+ "workdir": "cpp"
},
- "server": {
- "command": [
- "node",
- "server.js",
- "--type=tcp"
- ]
+ {
+ "name": "rb",
+ "server": {
+ "command": [
+ "ruby",
+ "../integration/TestServer.rb"
+ ]
+ },
+ "client": {
+ "timeout": 5,
+ "command": [
+ "ruby",
+ "../integration/TestClient.rb"
+ ]
+ },
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip"
+ ],
+ "protocols": [
+ "compact",
+ "binary",
+ "json",
+ "binary:accel"
+ ],
+ "workdir": "rb/gen-rb"
},
- "client": {
- "timeout": 6,
- "command": [
- "node",
- "client.js",
- "--type=tcp"
- ]
+ {
+ "name": "csharp",
+ "env": {
+ "MONO_PATH": "../../lib/csharp/"
+ },
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "json"
+ ],
+ "server": {
+ "command": [
+ "mono",
+ "TestClientServer.exe",
+ "server"
+ ]
+ },
+ "client": {
+ "timeout": 9,
+ "command": [
+ "mono",
+ "TestClientServer.exe",
+ "client"
+ ],
+ "protocols": [
+ "multi",
+ "multic",
+ "multi:binary",
+ "multic:compact"
+ ]
+ },
+ "workdir": "csharp"
},
- "transports": [
- "buffered",
- "framed",
- "http"
- ],
- "sockets": [
- "ip",
- "ip-ssl"
- ],
- "protocols": [
- "compact",
- "binary",
- "json"
- ],
- "workdir": "../lib/nodejs/test"
- },
- {
- "name": "hs",
- "server": {
- "command": [
- "TestServer"
- ]
+ {
+ "name": "netcore",
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "json"
+ ],
+ "server": {
+ "command": [
+ "dotnet",
+ "run",
+ "--no-build",
+ "--project=Server/Server.csproj",
+ "server"
+ ]
+ },
+ "client": {
+ "timeout": 10,
+ "command": [
+ "dotnet",
+ "run",
+ "--no-build",
+ "--project=Client/Client.csproj",
+ "client"
+ ]
+ },
+ "workdir": "netcore"
},
- "client": {
- "timeout": 6,
- "transports": [
- "http"
- ],
- "command": [
- "TestClient"
- ]
+ {
+ "name": "perl",
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl",
+ "domain"
+ ],
+ "protocols": [
+ "binary",
+ "multi"
+ ],
+ "client": {
+ "command": [
+ "perl",
+ "-Igen-perl/",
+ "-I../../lib/perl/lib/",
+ "TestClient.pl",
+ "--ca=../keys/CA.pem",
+ "--cert=../keys/client.crt",
+ "--key=../keys/client.key"
+ ],
+ "protocols": [
+ "multi:binary"
+ ]
+ },
+ "server": {
+ "command": [
+ "perl",
+ "-Igen-perl/",
+ "-I../../lib/perl/lib/",
+ "TestServer.pl",
+ "--cert=../keys/server.crt",
+ "--key=../keys/server.key"
+ ],
+ "protocols": [
+ "binary:multi"
+ ]
+ },
+ "workdir": "perl"
},
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip"
- ],
- "protocols": [
- "header",
- "compact",
- "binary",
- "json"
- ],
- "workdir": "hs"
- },
- {
- "name": "py",
- "server": {
- "extra_args": ["TSimpleServer"],
- "command": [
- "TestServer.py",
- "--verbose",
- "--genpydir=gen-py"
- ]
+ {
+ "name": "php",
+ "client": {
+ "timeout": 6,
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "binary:accel"
+ ],
+ "command": [
+ "php",
+ "-dextension_dir=php_ext_dir",
+ "--php-ini=test_php.ini",
+ "--no-php-ini",
+ "-ddisplay_errors=stderr",
+ "-dlog_errors=0",
+ "-derror_reporting=E_ALL",
+ "TestClient.php"
+ ]
+ },
+ "workdir": "php"
},
- "client": {
- "timeout": 10,
- "command": [
- "TestClient.py",
- "--verbose",
- "--host=localhost",
- "--genpydir=gen-py"
- ]
+ {
+ "name": "dart",
+ "client": {
+ "transports": [
+ "buffered",
+ "framed",
+ "http"
+ ],
+ "sockets": [
+ "ip"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "json"
+ ],
+ "command": [
+ "dart",
+ "test_client/bin/main.dart"
+ ]
+ },
+ "workdir": "dart"
},
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip",
- "ip-ssl"
- ],
- "protocols": [
- "compact",
- "binary",
- "json",
- "binary:accel",
- "compact:accelc"
- ],
- "workdir": "py"
- },
- {
- "comment": "Using 'python3' executable to test py2 and 3 at once",
- "name": "py3",
- "server": {
- "extra_args": ["TSimpleServer"],
- "command": [
- "python3",
- "TestServer.py",
- "--verbose",
- "--genpydir=gen-py"
- ]
+ {
+ "name": "erl",
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "sockets": [
+ "ip",
+ "ip-ssl"
+ ],
+ "protocols": [
+ "binary",
+ "compact"
+ ],
+ "client": {
+ "command": [
+ "erl",
+ "+K",
+ "true",
+ "-noshell",
+ "-pa",
+ "../../lib/erl/ebin/",
+ "-pa",
+ "./ebin",
+ "-s",
+ "test_client",
+ "-s",
+ "init",
+ "stop",
+ "-extra"
+ ]
+ },
+ "server": {
+ "command": [
+ "erl",
+ "+K",
+ "true",
+ "-noshell",
+ "-pa",
+ "../../lib/erl/ebin/",
+ "-pa",
+ "./ebin",
+ "-s",
+ "test_thrift_server",
+ "-extra"
+ ]
+ },
+ "workdir": "erl"
},
- "client": {
- "timeout": 10,
- "command": [
- "python3",
- "TestClient.py",
- "--host=localhost",
- "--genpydir=gen-py"
- ]
+ {
+ "name": "js",
+ "transports": [
+ "http"
+ ],
+ "sockets": [
+ "ip"
+ ],
+ "protocols": [
+ "json"
+ ],
+ "client": {
+ "command": [
+ "phantomjs",
+ "test/phantom-client.js"
+ ]
+ },
+ "workdir": "../lib/js"
},
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip-ssl",
- "ip"
- ],
- "protocols": [
- "compact",
- "binary",
- "json",
- "binary:accel",
- "compact:accelc"
- ],
- "workdir": "py"
- },
- {
- "name": "cpp",
- "server": {
- "command": [
- "TestServer"
- ],
- "protocols": [
- "binary:multi",
- "compact:multic",
- "header:multih",
- "json:multij"
- ]
+ {
+ "name": "lua",
+ "TODO": "Add dll to LUA_CPATH",
+ "env": {
+ "LUA_PATH": ";;gen-lua/?.lua;../../lib/lua/?.lua",
+ "LUA_CPATH": ";;../../lib/lua/.libs/?.so"
+ },
+ "client": {
+ "timeout": 5,
+ "transports": [
+ "buffered",
+ "framed",
+ "http"
+ ],
+ "sockets": [
+ "ip"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "json"
+ ],
+ "command": [
+ "lua",
+ "test_basic_client.lua"
+ ]
+ },
+ "workdir": "lua"
},
- "client": {
- "timeout": 8,
- "command": [
- "TestClient"
- ],
- "protocols": [
- "multi:binary",
- "multic:compact",
- "multih:header",
- "multij:json"
- ]
- },
- "transports": [
- "buffered",
- "http",
- "framed"
- ],
- "sockets": [
- "ip",
- "ip-ssl",
- "domain"
- ],
- "protocols": [
- "compact",
- "binary",
- "json",
- "header",
- "multi",
- "multic",
- "multih",
- "multij"
- ],
- "workdir": "cpp"
- },
- {
- "name": "rb",
- "server": {
- "command": [
- "ruby",
- "../integration/TestServer.rb"
- ]
- },
- "client": {
- "timeout": 5,
- "command": [
- "ruby",
- "../integration/TestClient.rb"
- ]
- },
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip"
- ],
- "protocols": [
- "compact",
- "binary",
- "json",
- "binary:accel"
- ],
- "workdir": "rb/gen-rb"
- },
- {
- "name": "csharp",
- "env": {
- "MONO_PATH": "../../lib/csharp/"
- },
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip",
- "ip-ssl"
- ],
- "protocols": [
- "binary",
- "compact",
- "json"
- ],
- "server": {
- "command": [
- "mono",
- "TestClientServer.exe",
- "server"
- ]
- },
- "client": {
- "timeout": 9,
- "command": [
- "mono",
- "TestClientServer.exe",
- "client"
- ],
- "protocols": [
- "multi",
- "multic",
- "multi:binary",
- "multic:compact"
- ]
- },
- "workdir": "csharp"
- },
- {
- "name": "netcore",
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip",
- "ip-ssl"
- ],
- "protocols": [
- "binary",
- "compact",
- "json"
- ],
- "server-disabled": {
- "command": [
- "dotnet",
- "run",
- "--no-build",
- "--no-restore",
- "--",
- "server"
- ]
- },
- "client": {
- "timeout": 10,
- "command": [
- "dotnet",
- "run",
- "--no-build",
- "--no-restore",
- "--",
- "client"
- ]
- },
- "workdir": "netcore/ThriftTest"
- },
- {
- "name": "perl",
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip",
- "ip-ssl",
- "domain"
- ],
- "protocols": [
- "binary",
- "multi"
- ],
- "client": {
- "command": [
- "perl",
- "-Igen-perl/",
- "-I../../lib/perl/lib/",
- "TestClient.pl",
- "--ca=../keys/CA.pem",
- "--cert=../keys/client.crt",
- "--key=../keys/client.key"
- ],
- "protocols": [
- "multi:binary"
- ]
- },
- "server": {
- "command": [
- "perl",
- "-Igen-perl/",
- "-I../../lib/perl/lib/",
- "TestServer.pl",
- "--cert=../keys/server.crt",
- "--key=../keys/server.key"
- ],
- "protocols": [
- "binary:multi"
- ]
- },
- "workdir": "perl"
- },
- {
- "name": "php",
- "client": {
- "timeout": 6,
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip"
- ],
- "protocols": [
- "binary",
- "compact",
- "binary:accel"
- ],
- "command": [
- "php",
- "-dextension_dir=php_ext_dir",
- "--php-ini=test_php.ini",
- "--no-php-ini",
- "-ddisplay_errors=stderr",
- "-dlog_errors=0",
- "-derror_reporting=E_ALL",
- "TestClient.php"
- ]
- },
- "workdir": "php"
- },
- {
- "name": "dart",
- "client": {
- "transports": [
- "buffered",
- "framed",
- "http"
- ],
- "sockets": [
- "ip"
- ],
- "protocols": [
- "binary",
- "compact",
- "json"
- ],
- "command": [
- "dart",
- "test_client/bin/main.dart"
- ]
- },
- "workdir": "dart"
- },
- {
- "name": "erl",
- "transports": [
- "buffered",
- "framed"
- ],
- "sockets": [
- "ip",
- "ip-ssl"
- ],
- "protocols": [
- "binary",
- "compact"
- ],
- "client": {
- "command": [
- "erl",
- "+K",
- "true",
- "-noshell",
- "-pa",
- "../../lib/erl/ebin/",
- "-pa",
- "./ebin",
- "-s",
- "test_client",
- "-s",
- "init",
- "stop",
- "-extra"
- ]
- },
- "server": {
- "command": [
- "erl",
- "+K",
- "true",
- "-noshell",
- "-pa",
- "../../lib/erl/ebin/",
- "-pa",
- "./ebin",
- "-s",
- "test_thrift_server",
- "-extra"
- ]
- },
- "workdir": "erl"
- },
- {
- "name": "js",
- "transports": [
- "http"
- ],
- "sockets": [
- "ip"
- ],
- "protocols": [
- "json"
- ],
- "client": {
- "command": [
- "phantomjs",
- "test/phantom-client.js"
- ]
- },
- "workdir": "../lib/js"
- },
- {
- "name": "lua",
- "TODO": "Add dll to LUA_CPATH",
- "env": {
- "LUA_PATH": ";;gen-lua/?.lua;../../lib/lua/?.lua",
- "LUA_CPATH": ";;../../lib/lua/.libs/?.so"
- },
- "client": {
- "timeout": 5,
- "transports": [
- "buffered",
- "framed",
- "http"
- ],
- "sockets": [
- "ip"
- ],
- "protocols": [
- "binary",
- "compact",
- "json"
- ],
- "command": [
- "lua",
- "test_basic_client.lua"
- ]
- },
- "workdir": "lua"
- },
- {
- "name": "rs",
- "env": {
- "RUST_BACKTRACE": "1",
- "RUST_LOG": "info"
- },
- "server": {
- "command": [
- "test_server"
- ],
- "protocols": [
- "binary:multi",
- "compact:multic"
- ]
- },
- "client": {
- "timeout": 6,
- "command": [
- "test_client"
- ],
- "protocols": [
- "multi:binary",
- "multic:compact"
- ]
- },
- "sockets": [
- "ip"
- ],
- "transports": [
- "buffered",
- "framed"
- ],
- "protocols": [
- "binary",
- "compact",
- "multi",
- "multic"
- ],
- "workdir": "rs/bin"
- }
-]
+ {
+ "name": "rs",
+ "env": {
+ "RUST_BACKTRACE": "1",
+ "RUST_LOG": "info"
+ },
+ "server": {
+ "command": [
+ "test_server"
+ ],
+ "protocols": [
+ "binary:multi",
+ "compact:multic"
+ ]
+ },
+ "client": {
+ "timeout": 6,
+ "command": [
+ "test_client"
+ ],
+ "protocols": [
+ "multi:binary",
+ "multic:compact"
+ ]
+ },
+ "sockets": [
+ "ip"
+ ],
+ "transports": [
+ "buffered",
+ "framed"
+ ],
+ "protocols": [
+ "binary",
+ "compact",
+ "multi",
+ "multic"
+ ],
+ "workdir": "rs/bin"
+ }
+]
\ No newline at end of file