зеркало из https://github.com/mozilla/pjs.git
66 строки
1.2 KiB
Plaintext
66 строки
1.2 KiB
Plaintext
|
|
namespace mozilla {
|
|
namespace _ipdltest {
|
|
|
|
|
|
rpc protocol PTestLatency {
|
|
|
|
child:
|
|
__delete__();
|
|
Ping();
|
|
Ping5();
|
|
rpc Rpc();
|
|
Spam();
|
|
rpc Synchro();
|
|
|
|
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;
|
|
|
|
state SPAM:
|
|
send Spam goto SPAM;
|
|
call Synchro goto DONE;
|
|
|
|
state DONE:
|
|
send __delete__;
|
|
};
|
|
|
|
|
|
} // namespace mozilla
|
|
} // namespace _ipdltest
|