Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 #ifndef mozilla__ipdltest_TestLatency_h
2 #define mozilla__ipdltest_TestLatency_h 1
4 #include "mozilla/_ipdltest/IPDLUnitTests.h"
6 #include "mozilla/_ipdltest/PTestLatencyParent.h"
7 #include "mozilla/_ipdltest/PTestLatencyChild.h"
9 #include "mozilla/TimeStamp.h"
11 #define NR_TRIALS 10000
12 #define NR_SPAMS 25000
14 namespace mozilla {
15 namespace _ipdltest {
17 class TestLatencyParent :
18 public PTestLatencyParent
19 {
20 private:
21 typedef mozilla::TimeStamp TimeStamp;
22 typedef mozilla::TimeDuration TimeDuration;
24 public:
25 TestLatencyParent();
26 virtual ~TestLatencyParent();
28 static bool RunTestInProcesses() { return true; }
29 static bool RunTestInThreads() { return true; }
31 void Main();
33 protected:
34 virtual bool RecvPong() MOZ_OVERRIDE;
35 virtual bool RecvPong5() MOZ_OVERRIDE;
37 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE
38 {
39 if (NormalShutdown != why)
40 fail("unexpected destruction!");
42 passed("\n"
43 " average #ping-pong/sec: %g\n"
44 " average #ping5-pong5/sec: %g\n"
45 " average #RPC call-answer/sec: %g\n"
46 " average #spams/sec: %g\n"
47 " pct. spams compressed away: %g\n",
48 double(NR_TRIALS) / mPPTimeTotal.ToSecondsSigDigits(),
49 double(NR_TRIALS) / mPP5TimeTotal.ToSecondsSigDigits(),
50 double(NR_TRIALS) / mRpcTimeTotal.ToSecondsSigDigits(),
51 double(NR_SPAMS) / mSpamTimeTotal.ToSecondsSigDigits(),
52 100.0 * (double(NR_SPAMS - mNumChildProcessedCompressedSpams) /
53 double(NR_SPAMS)));
55 QuitParent();
56 }
58 private:
59 void PingPongTrial();
60 void Ping5Pong5Trial();
61 void RpcTrials();
62 void SpamTrial();
63 void CompressedSpamTrial();
64 void Exit();
66 TimeStamp mStart;
67 TimeDuration mPPTimeTotal;
68 TimeDuration mPP5TimeTotal;
69 TimeDuration mRpcTimeTotal;
70 TimeDuration mSpamTimeTotal;
72 int mPPTrialsToGo;
73 int mPP5TrialsToGo;
74 uint32_t mNumChildProcessedCompressedSpams;
75 };
78 class TestLatencyChild :
79 public PTestLatencyChild
80 {
81 public:
82 TestLatencyChild();
83 virtual ~TestLatencyChild();
85 protected:
86 virtual bool RecvPing() MOZ_OVERRIDE;
87 virtual bool RecvPing5() MOZ_OVERRIDE;
88 virtual bool AnswerRpc() MOZ_OVERRIDE;
89 virtual bool RecvSpam() MOZ_OVERRIDE;
90 virtual bool AnswerSynchro() MOZ_OVERRIDE;
91 virtual bool RecvCompressedSpam(const uint32_t& seqno) MOZ_OVERRIDE;
92 virtual bool AnswerSynchro2(uint32_t* lastSeqno,
93 uint32_t* numMessagesDispatched) MOZ_OVERRIDE;
95 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE
96 {
97 if (NormalShutdown != why)
98 fail("unexpected destruction!");
99 QuitChild();
100 }
102 uint32_t mLastSeqno;
103 uint32_t mNumProcessedCompressedSpams;
104 };
107 } // namespace _ipdltest
108 } // namespace mozilla
111 #endif // ifndef mozilla__ipdltest_TestLatency_h