xref: /haiku/src/tests/kits/app/bmessagerunner/SetIntervalTester.cpp (revision 268f99dd7dc4bd7474a8bd2742d3f1ec1de6752a)
1dace24c6SIngo Weinhold //------------------------------------------------------------------------------
2dace24c6SIngo Weinhold //	SetIntervalTester.cpp
3dace24c6SIngo Weinhold //
4dace24c6SIngo Weinhold //------------------------------------------------------------------------------
5dace24c6SIngo Weinhold 
6dace24c6SIngo Weinhold // Standard Includes -----------------------------------------------------------
7bef39d09SClemens Zeidler #include <algorithm>
8dace24c6SIngo Weinhold #include <stdio.h>
9dace24c6SIngo Weinhold 
10dace24c6SIngo Weinhold // System Includes -------------------------------------------------------------
11dace24c6SIngo Weinhold #include <Application.h>
12dace24c6SIngo Weinhold #include <Handler.h>
13dace24c6SIngo Weinhold #include <Looper.h>
14dace24c6SIngo Weinhold #include <Message.h>
15dace24c6SIngo Weinhold #include <MessageRunner.h>
16dace24c6SIngo Weinhold #include <Messenger.h>
17dace24c6SIngo Weinhold #include <OS.h>
18dace24c6SIngo Weinhold 
19dace24c6SIngo Weinhold // Project Includes ------------------------------------------------------------
20dace24c6SIngo Weinhold #include <TestShell.h>
21dace24c6SIngo Weinhold #include <TestUtils.h>
22dace24c6SIngo Weinhold #include <cppunit/TestAssert.h>
23dace24c6SIngo Weinhold 
24dace24c6SIngo Weinhold // Local Includes --------------------------------------------------------------
25dace24c6SIngo Weinhold #include "MessageRunnerTestHelpers.h"
26dace24c6SIngo Weinhold #include "SetIntervalTester.h"
27dace24c6SIngo Weinhold 
28dace24c6SIngo Weinhold // Local Defines ---------------------------------------------------------------
29dace24c6SIngo Weinhold 
30dace24c6SIngo Weinhold // Globals ---------------------------------------------------------------------
31dace24c6SIngo Weinhold 
32dace24c6SIngo Weinhold //------------------------------------------------------------------------------
33dace24c6SIngo Weinhold 
34bef39d09SClemens Zeidler 
35bef39d09SClemens Zeidler using namespace std;
36bef39d09SClemens Zeidler 
37bef39d09SClemens Zeidler 
38dace24c6SIngo Weinhold static const char *kTesterSignature
39dace24c6SIngo Weinhold 	= "application/x-vnd.obos-messagerunner-setinterval-test";
40dace24c6SIngo Weinhold 
41dace24c6SIngo Weinhold static const bigtime_t kMinTimeInterval = 50000;
42dace24c6SIngo Weinhold 
43dace24c6SIngo Weinhold // check_message_runner_info
44dace24c6SIngo Weinhold static
45dace24c6SIngo Weinhold void
check_message_runner_info(const BMessageRunner & runner,status_t error,bigtime_t interval=0,int32 count=0)46dace24c6SIngo Weinhold check_message_runner_info(const BMessageRunner &runner, status_t error,
47dace24c6SIngo Weinhold 						  bigtime_t interval = 0, int32 count = 0)
48dace24c6SIngo Weinhold {
49dace24c6SIngo Weinhold 	bigtime_t runnerInterval = 0;
50dace24c6SIngo Weinhold 	int32 runnerCount = 0;
51dace24c6SIngo Weinhold 	CHK(runner.GetInfo(&runnerInterval, &runnerCount) == error);
52dace24c6SIngo Weinhold 	if (error == B_OK) {
53dace24c6SIngo Weinhold 		CHK(runnerInterval == interval);
54dace24c6SIngo Weinhold 		CHK(runnerCount == count);
55dace24c6SIngo Weinhold 	}
56dace24c6SIngo Weinhold }
57dace24c6SIngo Weinhold 
58dace24c6SIngo Weinhold /*
59dace24c6SIngo Weinhold 	status_t SetInterval(bigtime_t interval)
60dace24c6SIngo Weinhold 	@case 1			object is not properly initialized, interval > 0
61dace24c6SIngo Weinhold 	@results		Should return B_BAD_VALUE.
62dace24c6SIngo Weinhold 					InitCheck() should return B_ERROR.
63dace24c6SIngo Weinhold 					GetInfo() should return B_BAD_VALUE.
64dace24c6SIngo Weinhold  */
SetInterval1()65dace24c6SIngo Weinhold void SetIntervalTester::SetInterval1()
66dace24c6SIngo Weinhold {
67dace24c6SIngo Weinhold 	MessageRunnerTestApp app(kTesterSignature);
68dace24c6SIngo Weinhold 	BMessenger target;
69dace24c6SIngo Weinhold 	BMessage message(MSG_RUNNER_MESSAGE);
70dace24c6SIngo Weinhold 	bigtime_t interval = 100000;
71dace24c6SIngo Weinhold 	int32 count = 0;
72dace24c6SIngo Weinhold 	BMessageRunner runner(target, &message, interval, count);
73dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_ERROR);
74dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_BAD_VALUE);
75dace24c6SIngo Weinhold 	bigtime_t newInterval = 100000;
76dace24c6SIngo Weinhold 	CHK(runner.SetInterval(newInterval) == B_BAD_VALUE);
77dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_ERROR);
78dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_BAD_VALUE);
79dace24c6SIngo Weinhold }
80dace24c6SIngo Weinhold 
81dace24c6SIngo Weinhold /*
82dace24c6SIngo Weinhold 	status_t SetInterval(bigtime_t interval)
83dace24c6SIngo Weinhold 	@case 2			object was properly initialized, but has already delivered
84dace24c6SIngo Weinhold 					all its messages and thus became unusable, interval > 0
85dace24c6SIngo Weinhold 	@results		Should return B_BAD_VALUE.
86dace24c6SIngo Weinhold 					InitCheck() should return B_OK.
87dace24c6SIngo Weinhold 					GetInfo() should return B_BAD_VALUE.
88dace24c6SIngo Weinhold  */
SetInterval2()89dace24c6SIngo Weinhold void SetIntervalTester::SetInterval2()
90dace24c6SIngo Weinhold {
91dace24c6SIngo Weinhold 	MessageRunnerTestApp app(kTesterSignature);
92dace24c6SIngo Weinhold 	BMessenger target;
93dace24c6SIngo Weinhold 	BMessage message(MSG_RUNNER_MESSAGE);
94dace24c6SIngo Weinhold 	bigtime_t interval = 50000;
95dace24c6SIngo Weinhold 	int32 count = 1;
96dace24c6SIngo Weinhold 	BMessageRunner runner(target, &message, interval, count);
97dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
98dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, interval, count);
99dace24c6SIngo Weinhold 	snooze(count * interval + 10000);
100dace24c6SIngo Weinhold 	// set new interval
101dace24c6SIngo Weinhold 	bigtime_t newInterval = 100000;
102dace24c6SIngo Weinhold 	CHK(runner.SetInterval(newInterval) == B_BAD_VALUE);
103dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
104dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_BAD_VALUE);
105dace24c6SIngo Weinhold }
106dace24c6SIngo Weinhold 
107dace24c6SIngo Weinhold /*
108dace24c6SIngo Weinhold 	status_t SetInterval(bigtime_t interval)
109dace24c6SIngo Weinhold 	@case 3			object is properly initialized and has still one message
110dace24c6SIngo Weinhold 					to deliver, interval > 0
111dace24c6SIngo Weinhold 	@results		Should return B_OK.
112dace24c6SIngo Weinhold 					InitCheck() should return B_OK.
113dace24c6SIngo Weinhold 					GetInfo() should return B_OK and the new interval.
114dace24c6SIngo Weinhold 					The timer is reset. The last message arives after the time
115dace24c6SIngo Weinhold 					specified by interval has passed.
116dace24c6SIngo Weinhold  */
SetInterval3()117dace24c6SIngo Weinhold void SetIntervalTester::SetInterval3()
118dace24c6SIngo Weinhold {
119dace24c6SIngo Weinhold 	MessageRunnerTestApp app(kTesterSignature);
120dace24c6SIngo Weinhold 	MessageRunnerTestLooper *looper = app.TestLooper();
121dace24c6SIngo Weinhold 	BMessenger target(looper);
122dace24c6SIngo Weinhold 	BMessage message(MSG_RUNNER_MESSAGE);
123dace24c6SIngo Weinhold 	bigtime_t interval = 50000;
124dace24c6SIngo Weinhold 	int32 count = 5;
125dace24c6SIngo Weinhold 	BMessageRunner runner(target, &message, interval, count);
126dace24c6SIngo Weinhold 	bigtime_t startTime = system_time();
127dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
128dace24c6SIngo Weinhold 	interval = max(interval, kMinTimeInterval);
129dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, interval, count);
130dace24c6SIngo Weinhold 	snooze((count - 1) * interval + 10000);
131dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(startTime, interval, count - 1));
132dace24c6SIngo Weinhold 	CHK(app.CountReplies() == count - 1);
133dace24c6SIngo Weinhold 	// set new interval
134dace24c6SIngo Weinhold 	bigtime_t newInterval = 100000;
135dace24c6SIngo Weinhold 	CHK(runner.SetInterval(newInterval) == B_OK);
136dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
137dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, newInterval, 1);
138dace24c6SIngo Weinhold 	startTime = system_time();
139dace24c6SIngo Weinhold 	snooze(2 * newInterval + 10000);
140dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(count - 1, startTime, newInterval, 1));
141dace24c6SIngo Weinhold 	CHK(app.CountReplies() == count);
142dace24c6SIngo Weinhold }
143dace24c6SIngo Weinhold 
144dace24c6SIngo Weinhold /*
145dace24c6SIngo Weinhold 	status_t SetInterval(bigtime_t interval)
146dace24c6SIngo Weinhold 	@case 4			object is properly initialized and has still some messages
147dace24c6SIngo Weinhold 					to deliver, interval > 0
148dace24c6SIngo Weinhold 	@results		Should return B_OK.
149dace24c6SIngo Weinhold 					InitCheck() should return B_OK.
150dace24c6SIngo Weinhold 					GetInfo() should return B_OK and the new interval.
151dace24c6SIngo Weinhold 					The timer is reset. The messages start to arive after
152dace24c6SIngo Weinhold 					the time specified by interval.
153dace24c6SIngo Weinhold  */
SetInterval4()154dace24c6SIngo Weinhold void SetIntervalTester::SetInterval4()
155dace24c6SIngo Weinhold {
156dace24c6SIngo Weinhold 	MessageRunnerTestApp app(kTesterSignature);
157dace24c6SIngo Weinhold 	MessageRunnerTestLooper *looper = app.TestLooper();
158dace24c6SIngo Weinhold 	BMessenger target(looper);
159dace24c6SIngo Weinhold 	BMessage message(MSG_RUNNER_MESSAGE);
160dace24c6SIngo Weinhold 	bigtime_t interval = 50000;
161dace24c6SIngo Weinhold 	int32 count = 5;
162dace24c6SIngo Weinhold 	BMessageRunner runner(target, &message, interval, count);
163dace24c6SIngo Weinhold 	bigtime_t startTime = system_time();
164dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
165dace24c6SIngo Weinhold 	interval = max(interval, kMinTimeInterval);
166dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, interval, count);
167dace24c6SIngo Weinhold 	snooze(1 * interval + 10000);
168dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(startTime, interval, 1));
169dace24c6SIngo Weinhold 	CHK(app.CountReplies() == 1);
170dace24c6SIngo Weinhold 	// set new interval
171dace24c6SIngo Weinhold 	bigtime_t newInterval = 70000;
172dace24c6SIngo Weinhold 	CHK(runner.SetInterval(newInterval) == B_OK);
173dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
174dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, newInterval, count - 1);
175dace24c6SIngo Weinhold 	startTime = system_time();
176dace24c6SIngo Weinhold 	snooze(count * newInterval + 10000);
177dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(1, startTime, newInterval, count - 1));
178dace24c6SIngo Weinhold 	CHK(app.CountReplies() == count);
179dace24c6SIngo Weinhold }
180dace24c6SIngo Weinhold 
181dace24c6SIngo Weinhold /*
182dace24c6SIngo Weinhold 	status_t SetInterval(bigtime_t interval)
183dace24c6SIngo Weinhold 	@case 5			object is properly initialized and has still an unlimited
184dace24c6SIngo Weinhold 					number of messages to deliver, interval > 0
185dace24c6SIngo Weinhold 	@results		Should return B_OK.
186dace24c6SIngo Weinhold 					InitCheck() should return B_OK.
187dace24c6SIngo Weinhold 					GetInfo() should return B_OK and the new interval.
188dace24c6SIngo Weinhold 					The timer is reset. The messages start to arive after
189dace24c6SIngo Weinhold 					the time specified by interval.
190dace24c6SIngo Weinhold  */
SetInterval5()191dace24c6SIngo Weinhold void SetIntervalTester::SetInterval5()
192dace24c6SIngo Weinhold {
193dace24c6SIngo Weinhold 	MessageRunnerTestApp app(kTesterSignature);
194dace24c6SIngo Weinhold 	MessageRunnerTestLooper *looper = app.TestLooper();
195dace24c6SIngo Weinhold 	BMessenger target(looper);
196dace24c6SIngo Weinhold 	BMessage message(MSG_RUNNER_MESSAGE);
197dace24c6SIngo Weinhold 	bigtime_t interval = 50000;
198dace24c6SIngo Weinhold 	int32 count = -1;
199dace24c6SIngo Weinhold 	BMessageRunner runner(target, &message, interval, count);
200dace24c6SIngo Weinhold 	bigtime_t startTime = system_time();
201dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
202dace24c6SIngo Weinhold 	interval = max(interval, kMinTimeInterval);
203dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, interval, count);
204dace24c6SIngo Weinhold 	snooze(1 * interval + 10000);
205dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(startTime, interval, 1));
206dace24c6SIngo Weinhold 	CHK(app.CountReplies() == 1);
207dace24c6SIngo Weinhold 	// set new interval
208dace24c6SIngo Weinhold 	bigtime_t newInterval = 70000;
209dace24c6SIngo Weinhold 	CHK(runner.SetInterval(newInterval) == B_OK);
210dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
211dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, newInterval, -1);
212dace24c6SIngo Weinhold 	startTime = system_time();
213dace24c6SIngo Weinhold 	int32 checkCount = 5;
214dace24c6SIngo Weinhold 	snooze(checkCount * newInterval + 10000);
215dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(1, startTime, newInterval, checkCount));
216dace24c6SIngo Weinhold 	CHK(app.CountReplies() == checkCount + 1);
217dace24c6SIngo Weinhold }
218dace24c6SIngo Weinhold 
219dace24c6SIngo Weinhold /*
220dace24c6SIngo Weinhold 	status_t SetInterval(bigtime_t interval)
221dace24c6SIngo Weinhold 	@case 6			object is properly initialized and has still some messages
222dace24c6SIngo Weinhold 					to deliver, interval == 0
223dace24c6SIngo Weinhold 	@results		Should return B_OK.
224dace24c6SIngo Weinhold 					InitCheck() should return B_OK.
225dace24c6SIngo Weinhold 					R5: GetInfo() should return B_BAD_VALUE.
226dace24c6SIngo Weinhold 						All messages are delivered, but at weird times.
227*2ca13760SColdfirex 					Haiku: GetInfo() should return B_OK and the minimal
228dace24c6SIngo Weinhold 						  interval. The timer is reset. The messages start to
229dace24c6SIngo Weinhold 						  arive after the time specified by the minimal
230dace24c6SIngo Weinhold 						  interval.
231dace24c6SIngo Weinhold  */
SetInterval6()232dace24c6SIngo Weinhold void SetIntervalTester::SetInterval6()
233dace24c6SIngo Weinhold {
234dace24c6SIngo Weinhold 	MessageRunnerTestApp app(kTesterSignature);
235dace24c6SIngo Weinhold 	MessageRunnerTestLooper *looper = app.TestLooper();
236dace24c6SIngo Weinhold 	BMessenger target(looper);
237dace24c6SIngo Weinhold 	BMessage message(MSG_RUNNER_MESSAGE);
238dace24c6SIngo Weinhold 	bigtime_t interval = 70000;
239dace24c6SIngo Weinhold 	int32 count = 5;
240dace24c6SIngo Weinhold 	BMessageRunner runner(target, &message, interval, count);
241dace24c6SIngo Weinhold 	bigtime_t startTime = system_time();
242dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
243dace24c6SIngo Weinhold 	interval = max(interval, kMinTimeInterval);
244dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, interval, count);
245dace24c6SIngo Weinhold 	snooze(1 * interval + 10000);
246dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(startTime, interval, 1));
247dace24c6SIngo Weinhold 	CHK(app.CountReplies() == 1);
248dace24c6SIngo Weinhold 	// set new interval
249dace24c6SIngo Weinhold 	bigtime_t newInterval = 0;
250dace24c6SIngo Weinhold 	CHK(runner.SetInterval(newInterval) == B_OK);
251dace24c6SIngo Weinhold 	newInterval = max(newInterval, kMinTimeInterval);
252dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
253dace24c6SIngo Weinhold #ifdef TEST_R5
254dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_BAD_VALUE);
255dace24c6SIngo Weinhold 	snooze(count * interval + 10000);
256dace24c6SIngo Weinhold #else
257dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, newInterval, count - 1);
258dace24c6SIngo Weinhold 	startTime = system_time();
259dace24c6SIngo Weinhold 	snooze(count * newInterval + 10000);
260dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(1, startTime, newInterval, count - 1));
261dace24c6SIngo Weinhold #endif
262dace24c6SIngo Weinhold 	CHK(app.CountReplies() == count);
263dace24c6SIngo Weinhold }
264dace24c6SIngo Weinhold 
265dace24c6SIngo Weinhold /*
266dace24c6SIngo Weinhold 	status_t SetInterval(bigtime_t interval)
267dace24c6SIngo Weinhold 	@case 7			object is properly initialized and has still some messages
268dace24c6SIngo Weinhold 					to deliver, interval < 0
269dace24c6SIngo Weinhold 	@results		Should return B_OK.
270dace24c6SIngo Weinhold 					InitCheck() should return B_OK.
271dace24c6SIngo Weinhold 					R5: GetInfo() should return B_BAD_VALUE.
272dace24c6SIngo Weinhold 						All messages are delivered, but at weird times.
273*2ca13760SColdfirex 					Haiku: GetInfo() should return B_OK and the minimal
274dace24c6SIngo Weinhold 						  interval. The timer is reset. The messages start to
275dace24c6SIngo Weinhold 						  arive after the time specified by the minimal
276dace24c6SIngo Weinhold 						  interval.
277dace24c6SIngo Weinhold  */
SetInterval7()278dace24c6SIngo Weinhold void SetIntervalTester::SetInterval7()
279dace24c6SIngo Weinhold {
280dace24c6SIngo Weinhold 	MessageRunnerTestApp app(kTesterSignature);
281dace24c6SIngo Weinhold 	MessageRunnerTestLooper *looper = app.TestLooper();
282dace24c6SIngo Weinhold 	BMessenger target(looper);
283dace24c6SIngo Weinhold 	BMessage message(MSG_RUNNER_MESSAGE);
284dace24c6SIngo Weinhold 	bigtime_t interval = 70000;
285dace24c6SIngo Weinhold 	int32 count = 5;
286dace24c6SIngo Weinhold 	BMessageRunner runner(target, &message, interval, count);
287dace24c6SIngo Weinhold 	bigtime_t startTime = system_time();
288dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
289dace24c6SIngo Weinhold 	interval = max(interval, kMinTimeInterval);
290dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, interval, count);
291dace24c6SIngo Weinhold 	snooze(1 * interval + 10000);
292dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(startTime, interval, 1));
293dace24c6SIngo Weinhold 	CHK(app.CountReplies() == 1);
294dace24c6SIngo Weinhold 	// set new interval
295dace24c6SIngo Weinhold 	bigtime_t newInterval = -1;
296dace24c6SIngo Weinhold 	CHK(runner.SetInterval(newInterval) == B_OK);
297dace24c6SIngo Weinhold 	newInterval = max(newInterval, kMinTimeInterval);
298dace24c6SIngo Weinhold 	CHK(runner.InitCheck() == B_OK);
299dace24c6SIngo Weinhold #ifdef TEST_R5
300dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_BAD_VALUE);
301dace24c6SIngo Weinhold 	snooze(count * interval + 10000);
302dace24c6SIngo Weinhold #else
303dace24c6SIngo Weinhold 	check_message_runner_info(runner, B_OK, newInterval, count - 1);
304dace24c6SIngo Weinhold 	startTime = system_time();
305dace24c6SIngo Weinhold 	snooze(count * newInterval + 10000);
306dace24c6SIngo Weinhold 	CHK(looper->CheckMessages(1, startTime, newInterval, count - 1));
307dace24c6SIngo Weinhold #endif
308dace24c6SIngo Weinhold 	CHK(app.CountReplies() == count);
309dace24c6SIngo Weinhold }
310dace24c6SIngo Weinhold 
311dace24c6SIngo Weinhold 
Suite()312dace24c6SIngo Weinhold Test* SetIntervalTester::Suite()
313dace24c6SIngo Weinhold {
314dace24c6SIngo Weinhold 	TestSuite* SuiteOfTests = new TestSuite;
315dace24c6SIngo Weinhold 
316dace24c6SIngo Weinhold 	ADD_TEST4(BMessageRunner, SuiteOfTests, SetIntervalTester, SetInterval1);
317dace24c6SIngo Weinhold 	ADD_TEST4(BMessageRunner, SuiteOfTests, SetIntervalTester, SetInterval2);
318dace24c6SIngo Weinhold 	ADD_TEST4(BMessageRunner, SuiteOfTests, SetIntervalTester, SetInterval3);
319dace24c6SIngo Weinhold 	ADD_TEST4(BMessageRunner, SuiteOfTests, SetIntervalTester, SetInterval4);
320dace24c6SIngo Weinhold 	ADD_TEST4(BMessageRunner, SuiteOfTests, SetIntervalTester, SetInterval5);
321dace24c6SIngo Weinhold 	ADD_TEST4(BMessageRunner, SuiteOfTests, SetIntervalTester, SetInterval6);
322dace24c6SIngo Weinhold 	ADD_TEST4(BMessageRunner, SuiteOfTests, SetIntervalTester, SetInterval7);
323dace24c6SIngo Weinhold 
324dace24c6SIngo Weinhold 	return SuiteOfTests;
325dace24c6SIngo Weinhold }
326dace24c6SIngo Weinhold 
327