mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
76 lines
1.6 KiB
Plaintext
76 lines
1.6 KiB
Plaintext
|
|
namespace mozilla {
|
|
namespace _ipdltest {
|
|
|
|
|
|
rpc protocol PTestLatency {
|
|
|
|
child:
|
|
__delete__();
|
|
Ping();
|
|
Ping5();
|
|
rpc Rpc();
|
|
Spam();
|
|
rpc Synchro();
|
|
CompressedSpam(uint32_t seqno) compress;
|
|
rpc Synchro2() returns (uint32_t lastSeqno,
|
|
uint32_t numMessagesDispatched);
|
|
|
|
parent:
|
|
Pong();
|
|
Pong5();
|
|
|
|
state START:
|
|
// if the timing resolution is too low, abort the test
|
|
send __delete__;
|
|
// otherwise, kick off the ping/pong trials
|
|
send Ping goto PONG;
|
|
|
|
// Trial 1: single ping/pong latency
|
|
state PING:
|
|
send Ping goto PONG;
|
|
send Ping5 goto PING4;
|
|
|
|
state PONG:
|
|
recv Pong goto PING;
|
|
|
|
// Trial 2: "overlapped" ping/pong latency
|
|
state PING5:
|
|
send Ping5 goto PING4;
|
|
call Rpc goto RPC;
|
|
|
|
state PING4: send Ping5 goto PING3;
|
|
state PING3: send Ping5 goto PING2;
|
|
state PING2: send Ping5 goto PING1;
|
|
state PING1: send Ping5 goto PONG1;
|
|
|
|
state PONG1: recv Pong5 goto PONG2;
|
|
state PONG2: recv Pong5 goto PONG3;
|
|
state PONG3: recv Pong5 goto PONG4;
|
|
state PONG4: recv Pong5 goto PONG5;
|
|
state PONG5: recv Pong5 goto PING5;
|
|
|
|
// Trial 3: lotsa RPC
|
|
state RPC:
|
|
call Rpc goto RPC;
|
|
send Spam goto SPAM;
|
|
|
|
// Trial 4: lots of sequential asyn messages, which tests pipelining
|
|
state SPAM:
|
|
send Spam goto SPAM;
|
|
call Synchro goto COMPRESSED_SPAM;
|
|
|
|
// Trial 5: lots of async spam, but compressed to cut down on
|
|
// dispatch overhead
|
|
state COMPRESSED_SPAM: // compressed spam, mmm
|
|
send CompressedSpam goto COMPRESSED_SPAM;
|
|
call Synchro2 goto DONE;
|
|
|
|
state DONE:
|
|
send __delete__;
|
|
};
|
|
|
|
|
|
} // namespace mozilla
|
|
} // namespace _ipdltest
|