Home | History | Annotate | Download | only in test
      1 module js_to_cpp {
      2 
      3 // This struct encompasses all of the basic types, so that they
      4 // may be sent from C++ to JS and back for validation.
      5 struct EchoArgs {
      6   int64 si64;
      7   int32 si32;
      8   int16 si16;
      9   int8  si8;
     10   uint64 ui64;
     11   uint32 ui32;
     12   uint16 ui16;
     13   uint8  ui8;
     14   float float_val;
     15   float float_inf;
     16   float float_nan;
     17   double double_val;
     18   double double_inf;
     19   double double_nan;
     20   string? name;
     21   string[]? string_array;
     22   handle<message_pipe>? message_handle;
     23   handle<data_pipe_consumer>? data_handle;
     24 };
     25 
     26 struct EchoArgsList {
     27   EchoArgsList? next;
     28   EchoArgs? item;
     29 };
     30 
     31 // Note: For messages which control test flow, pick numbers that are unlikely
     32 // to be hit as a result of our deliberate corruption of response messages.
     33 interface CppSide {
     34   // Sent for all tests to notify that the JS side is now ready.
     35   StartTest@88888888();
     36 
     37   // Indicates end for echo, bit-flip, and back-pointer tests.
     38   TestFinished@99999999();
     39 
     40   // Responses from specific tests.
     41   PingResponse();
     42   EchoResponse(EchoArgsList list);
     43   BitFlipResponse(EchoArgsList arg);
     44   BackPointerResponse(EchoArgsList arg);
     45 };
     46 
     47 [Client=CppSide]
     48 interface JsSide {
     49   Ping();
     50   Echo(int32 numIterations, EchoArgs arg);
     51   BitFlip(EchoArgs arg);
     52   BackPointer(EchoArgs arg);
     53 };
     54 
     55 }
     56