1//------------------------------------------------------------------------------
2//	RunTest.cpp
3//
4//------------------------------------------------------------------------------
5
6// Standard Includes -----------------------------------------------------------
7
8// System Includes -------------------------------------------------------------
9#include <Looper.h>
10
11// Project Includes ------------------------------------------------------------
12
13// Local Includes --------------------------------------------------------------
14#include "RunTest.h"
15
16// Local Defines ---------------------------------------------------------------
17
18// Globals ---------------------------------------------------------------------
19
20//------------------------------------------------------------------------------
21/**
22	Run()
23	@case		Attempt to call Run() twice
24	@results	debugger message "can't call BLooper::Run twice!"
25 */
26void TRunTest::RunTest1()
27{
28	DEBUGGER_ESCAPE;
29
30	BLooper Looper;
31	Looper.Run();
32	Looper.Run();
33	Looper.Quit();
34}
35//------------------------------------------------------------------------------
36/**
37	Run()
38	@case		Check thread_id of Looper
39	@results	Run() and Thread() return the same thread_id
40 */
41void TRunTest::RunTest2()
42{
43	BLooper* Looper = new BLooper;
44	thread_id tid = Looper->Run();
45	CPPUNIT_ASSERT(tid == Looper->Thread());
46	Looper->Lock();
47	Looper->Quit();
48}
49//------------------------------------------------------------------------------
50/**
51	Run()
52	@case		Delete looper after calling Run()
53	@results	Debugger message "You can't call delete on a BLooper object
54				once it is running."
55 */
56void TRunTest::RunTest3()
57{
58	BLooper* Looper = new BLooper;
59	Looper->Run();
60	delete Looper;
61}
62//------------------------------------------------------------------------------
63#ifdef ADD_TEST
64#undef ADD_TEST
65#endif
66#define ADD_TEST(__test_name__)	\
67	ADD_TEST4(BLooper, suite, TRunTest, __test_name__)
68
69TestSuite* TRunTest::Suite()
70{
71	TestSuite* suite = new TestSuite("BLooper::Run()");
72
73	ADD_TEST(RunTest1);
74	ADD_TEST(RunTest2);
75
76	return suite;
77}
78//------------------------------------------------------------------------------
79
80/*
81 * $Log $
82 *
83 * $Id  $
84 *
85 */
86
87