1[
2  {
3    "name": "c_glib",
4    "platforms": [
5      "Linux"
6    ],
7    "server": {
8      "command": [
9        "test_server",
10        "--lt-debug"
11      ],
12      "protocols": [
13        "binary:multi",
14        "compact:multic"
15      ]
16    },
17    "client": {
18      "command": [
19        "test_client",
20        "--lt-debug"
21      ],
22      "protocols": [
23        "multi:binary",
24        "multic:compact"
25      ],
26      "sockets": [
27        "ip-ssl"
28      ]
29    },
30    "transports": [
31      "buffered",
32      "framed"
33    ],
34    "sockets": [
35      "ip",
36      "domain"
37    ],
38    "protocols": [
39      "binary",
40      "compact",
41      "multi",
42      "multic"
43    ],
44    "workdir": "c_glib"
45  },
46  {
47    "name": "cl",
48    "server": {
49      "command": ["TestServer"],
50      "workdir": "cl",
51      "protocols": ["binary", "multi"],
52      "transports": ["buffered", "framed"],
53      "sockets": ["ip"]
54    },
55    "client": {
56      "command": ["TestClient"],
57      "workdir": "cl",
58      "protocols": ["binary", "multi"],
59      "transports": ["buffered", "framed"],
60      "sockets": ["ip"]
61    }
62  },
63  {
64    "name": "d",
65    "server": {
66      "command": [
67        "thrift_test_server",
68        "--trace"
69      ]
70    },
71    "client": {
72      "command": [
73        "thrift_test_client"
74      ]
75    },
76    "transports": [
77      "http",
78      "buffered",
79      "framed",
80      "zlib"
81    ],
82    "sockets": [
83      "ip",
84      "ip-ssl"
85    ],
86    "protocols": [
87      "binary",
88      "compact",
89      "json"
90    ],
91    "workdir": "../lib/d/test"
92  },
93  {
94    "name": "go",
95    "server": {
96      "command": [
97        "testserver",
98        "--certPath=../../keys"
99      ]
100    },
101    "client": {
102      "timeout": 6,
103      "command": [
104        "testclient"
105      ]
106    },
107    "transports": [
108      "buffered",
109      "framed",
110      "http",
111      "zlib"
112    ],
113    "sockets": [
114      "ip",
115      "ip-ssl"
116    ],
117    "protocols": [
118      "binary",
119      "compact",
120      "json",
121      "header"
122    ],
123    "workdir": "go/bin"
124  },
125  {
126    "name": "java",
127    "join_args": false,
128    "server": {
129      "delay": 15,
130      "command": [
131        "build/runserver"
132      ],
133      "protocols": [
134        "binary:multi",
135        "compact:multic",
136        "json:multij"
137      ]
138    },
139    "client": {
140      "timeout": 13,
141      "command": [
142        "build/runclient"
143      ],
144      "transports": [
145        "http"
146      ],
147      "protocols": [
148        "multi:binary",
149        "multic:compact",
150        "multij:json"
151      ]
152    },
153    "transports": [
154      "buffered",
155      "framed",
156      "framed:fastframed",
157      "zlib"
158    ],
159    "sockets": [
160      "ip",
161      "ip-ssl"
162    ],
163    "protocols": [
164      "binary",
165      "compact",
166      "json",
167      "multi",
168      "multic",
169      "multij"
170    ],
171    "workdir": "../lib/java"
172  },
173  {
174    "name": "kotlin",
175    "join_args": false,
176    "server": {
177      "delay": 15,
178      "command": [
179        "cross-test-server/build/install/TestServer/bin/TestServer"
180      ],
181      "protocols": [
182        "binary"
183      ]
184    },
185    "client": {
186      "timeout": 13,
187      "command": [
188        "cross-test-client/build/install/TestClient/bin/TestClient"
189      ],
190      "transports": [
191        "framed"
192      ],
193      "protocols": [
194        "binary"
195      ]
196    },
197    "transports": [
198      "framed"
199    ],
200    "sockets": [
201      "ip"
202    ],
203    "protocols": [
204      "binary",
205      "compact",
206      "json"
207    ],
208    "workdir": "../lib/kotlin"
209  },
210  {
211    "name": "nodejs",
212    "env": {
213      "NODE_PATH": "../lib"
214    },
215    "server": {
216      "command": [
217        "node",
218        "server.js",
219        "--type=tcp"
220      ]
221    },
222    "client": {
223      "timeout": 6,
224      "command": [
225        "node",
226        "client.js",
227        "--type=tcp"
228      ]
229    },
230    "transports": [
231      "buffered",
232      "framed",
233      "http",
234      "websocket"
235    ],
236    "sockets": [
237      "ip",
238      "ip-ssl",
239      "domain"
240    ],
241    "protocols": [
242      "compact",
243      "binary",
244      "json",
245      "header"
246    ],
247    "workdir": "../lib/nodejs/test"
248  },
249  {
250    "name": "hs",
251    "server": {
252      "command": [
253        "TestServer"
254      ]
255    },
256    "client": {
257      "timeout": 6,
258      "transports": [
259        "http"
260      ],
261      "command": [
262        "TestClient"
263      ]
264    },
265    "transports": [
266      "buffered",
267      "framed"
268    ],
269    "sockets": [
270      "ip"
271    ],
272    "protocols": [
273      "header",
274      "compact",
275      "binary",
276      "json"
277    ],
278    "workdir": "hs"
279  },
280  {
281    "name": "py",
282    "server": {
283      "extra_args": ["TSimpleServer"],
284      "command": [
285        "TestServer.py",
286        "--verbose",
287        "--genpydir=gen-py"
288      ]
289    },
290    "client": {
291      "timeout": 10,
292      "command": [
293        "TestClient.py",
294        "--verbose",
295        "--host=localhost",
296        "--genpydir=gen-py"
297      ]
298    },
299    "transports": [
300      "buffered",
301      "framed",
302      "http",
303      "zlib"
304    ],
305    "sockets": [
306      "ip",
307      "ip-ssl",
308      "domain"
309    ],
310    "protocols": [
311      "binary",
312      "binary:accel",
313      "compact",
314      "compact:accelc",
315      "header",
316      "json",
317      "multi",
318      "multi:multia",
319      "multia",
320      "multiac",
321      "multic",
322      "multic:multiac",
323      "multih",
324      "multij"
325    ],
326    "workdir": "py"
327  },
328  {
329    "comment": "Using 'python3' executable to test py2 and 3 at once",
330    "name": "py3",
331    "server": {
332      "extra_args": ["TSimpleServer"],
333      "command": [
334        "python3",
335        "TestServer.py",
336        "--verbose",
337        "--genpydir=gen-py"
338      ]
339    },
340    "client": {
341      "timeout": 10,
342      "command": [
343        "python3",
344        "TestClient.py",
345        "--host=localhost",
346        "--genpydir=gen-py"
347      ]
348    },
349    "transports": [
350      "buffered",
351      "framed",
352      "http",
353      "zlib"
354    ],
355    "sockets": [
356      "ip",
357      "ip-ssl",
358      "domain"
359    ],
360    "protocols": [
361      "binary",
362      "binary:accel",
363      "compact",
364      "compact:accelc",
365      "header",
366      "json",
367      "multi",
368      "multi:multia",
369      "multia",
370      "multiac",
371      "multic",
372      "multic:multiac",
373      "multih",
374      "multij"
375    ],
376    "workdir": "py"
377  },
378  {
379    "name": "cpp",
380    "server": {
381      "command": [
382        "TestServer"
383      ],
384      "protocols": [
385        "binary:multi",
386        "compact:multic",
387        "header:multih",
388        "json:multij"
389      ]
390    },
391    "client": {
392      "timeout": 8,
393      "command": [
394        "TestClient"
395      ],
396      "protocols": [
397        "multi:binary",
398        "multic:compact",
399        "multih:header",
400        "multij:json"
401      ]
402    },
403    "transports": [
404      "buffered",
405      "http",
406      "framed",
407      "zlib",
408      "websocket"
409    ],
410    "sockets": [
411      "ip",
412      "ip-ssl",
413      "domain"
414    ],
415    "protocols": [
416      "compact",
417      "binary",
418      "json",
419      "header",
420      "multi",
421      "multic",
422      "multih",
423      "multij"
424    ],
425    "workdir": "cpp"
426  },
427  {
428    "name": "rb",
429    "server": {
430      "command": [
431        "ruby",
432        "../integration/TestServer.rb"
433      ]
434    },
435    "client": {
436      "timeout": 10,
437      "command": [
438        "ruby",
439        "../integration/TestClient.rb",
440        "--"
441      ]
442    },
443    "transports": [
444      "buffered",
445      "framed"
446    ],
447    "sockets": [
448      "domain",
449      "ip",
450      "ip-ssl"
451    ],
452    "protocols": [
453      "binary",
454      "binary:accel",
455      "compact",
456      "json"
457    ],
458    "workdir": "rb/gen-rb"
459  },
460  {
461    "name": "netstd",
462    "transports": [
463      "buffered",
464      "framed"
465    ],
466    "sockets": [
467      "ip",
468      "ip-ssl"
469    ],
470    "protocols": [
471      "binary",
472      "compact",
473      "json"
474    ],
475    "server": {
476      "command": [
477        "dotnet",
478        "run",
479        "--no-build",
480        "--project=Server/Server.csproj",
481        "server"
482      ]
483    },
484    "client": {
485      "timeout": 10,
486      "command": [
487        "dotnet",
488        "run",
489        "--no-build",
490        "--project=Client/Client.csproj",
491        "client"
492      ]
493    },
494        "workdir": "netstd"
495  },
496  {
497    "name": "perl",
498    "transports": [
499      "buffered",
500      "framed"
501    ],
502    "sockets": [
503      "ip",
504      "ip-ssl",
505      "domain"
506    ],
507    "protocols": [
508      "binary",
509      "multi"
510    ],
511    "client": {
512      "command": [
513        "perl",
514        "-Igen-perl/",
515        "-I../../lib/perl/lib/",
516        "TestClient.pl",
517        "--ca=../keys/CA.pem",
518        "--cert=../keys/client.crt",
519        "--key=../keys/client.key"
520      ],
521      "protocols": [
522        "multi:binary"
523      ]
524    },
525    "server": {
526      "command": [
527        "perl",
528        "-Igen-perl/",
529        "-I../../lib/perl/lib/",
530        "TestServer.pl",
531        "--cert=../keys/server.crt",
532        "--key=../keys/server.key"
533      ],
534      "protocols": [
535        "binary:multi"
536      ]
537    },
538    "workdir": "perl"
539  },
540  {
541    "name": "php",
542    "client": {
543      "timeout": 6,
544      "transports": [
545        "buffered",
546        "framed"
547      ],
548      "sockets": [
549        "ip"
550      ],
551      "protocols": [
552        "binary",
553        "binary:accel",
554        "compact",
555        "json"
556      ],
557      "command": [
558        "php",
559        "-dextension_dir=php_ext_dir",
560        "--php-ini=test_php.ini",
561        "--no-php-ini",
562        "-ddisplay_errors=stderr",
563        "-dlog_errors=0",
564        "-derror_reporting=E_ALL",
565        "TestClient.php"
566      ]
567    },
568    "workdir": "php"
569  },
570  {
571    "name": "dart",
572    "client": {
573      "timeout": 30,
574      "transports": [
575        "buffered",
576        "framed",
577        "http"
578      ],
579      "sockets": [
580        "ip"
581      ],
582      "protocols": [
583        "binary",
584        "compact",
585        "json"
586      ],
587      "command": [
588        "dart",
589	    "--enable-asserts",
590        "test_client/bin/main.dart",
591	    "--verbose"
592      ]
593    },
594    "workdir": "dart"
595  },
596  {
597    "name": "erl",
598    "transports": [
599      "buffered",
600      "framed"
601    ],
602    "sockets": [
603      "ip",
604      "ip-ssl"
605    ],
606    "protocols": [
607      "binary",
608      "compact"
609    ],
610    "client": {
611      "command": [
612        "erl",
613        "+K",
614        "true",
615        "-noshell",
616        "-pa",
617        "../../lib/erl/_build/default/lib/thrift/ebin/",
618        "-pa",
619        "./_build/default/lib/thrift_test/ebin",
620        "-s",
621        "test_client",
622        "-s",
623        "init",
624        "stop",
625        "-extra"
626      ]
627    },
628    "server": {
629      "command": [
630        "erl",
631        "+K",
632        "true",
633        "-noshell",
634        "-pa",
635        "../../lib/erl/_build/default/lib/thrift/ebin/",
636        "-pa",
637        "./_build/default/lib/thrift_test/ebin",
638        "-s",
639        "test_thrift_server",
640        "-extra"
641      ]
642    },
643    "workdir": "erl"
644  },
645  {
646    "name": "js",
647    "transports": [
648      "http"
649    ],
650    "sockets": [
651      "ip"
652    ],
653    "protocols": [
654      "json"
655    ],
656    "client": {
657      "command": [
658        "phantomjs",
659        "test/phantom-client.js"
660      ]
661    },
662    "workdir": "../lib/js"
663  },
664  {
665    "name": "lua",
666    "TODO": "Add dll to LUA_CPATH",
667    "env": {
668      "LUA_PATH": ";;gen-lua/?.lua;../../lib/lua/?.lua",
669      "LUA_CPATH": ";;../../lib/lua/.libs/?.so"
670    },
671    "client": {
672      "timeout": 5,
673      "transports": [
674        "buffered",
675        "framed",
676        "http"
677      ],
678      "sockets": [
679        "ip"
680      ],
681      "protocols": [
682        "binary",
683        "compact",
684        "json"
685      ],
686      "command": [
687        "lua",
688        "test_basic_client.lua"
689      ]
690    },
691    "workdir": "lua"
692  },
693  {
694    "name": "rs",
695    "env": {
696      "RUST_BACKTRACE": "1",
697      "RUST_LOG": "info"
698    },
699    "server": {
700      "command": [
701        "test_server"
702      ],
703      "protocols": [
704        "binary:multi",
705        "compact:multic"
706      ]
707    },
708    "client": {
709      "timeout": 6,
710      "command": [
711        "test_client"
712      ],
713      "protocols": [
714        "multi:binary",
715        "multic:compact"
716      ]
717    },
718    "sockets": [
719      "ip",
720      "domain"
721    ],
722    "transports": [
723      "buffered",
724      "framed"
725    ],
726    "protocols": [
727      "binary",
728      "compact",
729      "multi",
730      "multic"
731    ],
732    "workdir": "rs/bin"
733  },
734  {
735    "name": "nodets",
736    "env": {
737      "NODE_PATH": "../lib"
738    },
739    "server": {
740      "command": [
741        "runServer.sh"
742      ]
743    },
744    "client": {
745      "timeout": 6,
746      "command": [
747        "runClient.sh"
748      ]
749    },
750    "protocols": [
751      "binary"
752    ],
753    "sockets": [
754      "ip"
755    ],
756    "transports": [
757      "buffered"
758    ],
759    "workdir": "../lib/nodets/test"
760  },
761  {
762    "name": "swift",
763    "server": {
764      "command": ["TestServer"],
765      "workdir": "swift/CrossTests/.build/x86_64-unknown-linux-gnu/debug",
766      "protocols": ["binary", "compact"],
767      "transports": ["buffered", "framed"],
768      "sockets": ["ip"]
769    },
770    "client": {
771      "command": ["TestClient"],
772      "workdir": "swift/CrossTests/.build/x86_64-unknown-linux-gnu/debug",
773      "protocols": ["binary", "compact"],
774      "transports": ["buffered", "framed"],
775      "sockets": ["ip"]
776    }
777  }
778]
779