PuzzleSDK
controller.h
浏览该文件的文档.
1/****************************************************************************
2Copyright (c) 2013-2016 Chukong Technologies Inc.
3Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
4
5http://www.cocos2d-x.org
6
7Permission is hereby granted, free of charge, to any person obtaining a copy
8of this software and associated documentation files (the "Software"), to deal
9in the Software without restriction, including without limitation the rights
10to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11copies of the Software, and to permit persons to whom the Software is
12furnished to do so, subject to the following conditions:
13
14The above copyright notice and this permission notice shall be included in
15all copies or substantial portions of the Software.
16
17THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23THE SOFTWARE.
24****************************************************************************/
25
26#ifndef _CPPTESTS_CONTROLLER_H__
27#define _CPPTESTS_CONTROLLER_H__
28
29#include <condition_variable>
30#include <string>
31#include <thread>
32#include <atomic>
33
34class TestList;
35class TestSuite;
36class TestCase;
37
38namespace cocos2d
39{
40 class Director;
41 class Touch;
42 class Event;
43 class EventListenerTouchOneByOne;
44}
45
47{
48public:
50 static void destroyInstance();
51
53
54 void startAutoTest();
55 void stopAutoTest();
56
57 void handleCrash();
58
59 void onEnterBackground();
60 void onEnterForeground();
61
62 bool blockTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event);
63
64 void setCurrTestSuite(TestSuite* testSuite) { _testSuite = testSuite; }
66 bool isAutoTestRunning() const { return !_stopAutoTest; }
67private:
69
70 void traverseThreadFunc();
71
72 void traverseTestList(TestList* testList);
73 void traverseTestSuite(TestSuite* testSuite);
74 bool checkTest(TestCase* testCase);
75
76 void logEx(const char * format, ...);
77
78 std::atomic<bool> _stopAutoTest;
80
83
84 std::thread _autoTestThread;
85
86 std::condition_variable _sleepCondition;
87 std::unique_lock<std::mutex>* _sleepUniqueLock;
88
89 cocos2d::Director* _director;
90 cocos2d::EventListenerTouchOneByOne* _touchListener;
91
92 std::string _logIndentation;
93};
94
95#endif
bool checkTest(TestCase *testCase)
Definition: controller.cpp:375
cocos2d::Director * _director
Definition: controller.h:89
void startAutoTest()
Definition: controller.cpp:157
static void destroyInstance()
Definition: controller.cpp:470
bool isAutoTestRunning() const
Definition: controller.h:66
bool blockTouchBegan(cocos2d::Touch *touch, cocos2d::Event *event)
Definition: controller.cpp:482
void traverseTestList(TestList *testList)
Definition: controller.cpp:187
std::string _logIndentation
Definition: controller.h:92
void onEnterBackground()
Definition: controller.cpp:421
std::unique_lock< std::mutex > * _sleepUniqueLock
Definition: controller.h:87
cocos2d::EventListenerTouchOneByOne * _touchListener
Definition: controller.h:90
void onEnterForeground()
Definition: controller.cpp:426
std::thread _autoTestThread
Definition: controller.h:84
TestSuite * getCurrTestSuite()
Definition: controller.h:65
std::condition_variable _sleepCondition
Definition: controller.h:86
bool _isRunInBackground
Definition: controller.h:79
void stopAutoTest()
Definition: controller.cpp:168
static TestController * getInstance()
Definition: controller.cpp:458
TestList * _rootTestList
Definition: controller.h:81
void handleCrash()
Definition: controller.cpp:409
void traverseTestSuite(TestSuite *testSuite)
Definition: controller.cpp:250
std::atomic< bool > _stopAutoTest
Definition: controller.h:78
TestSuite * _testSuite
Definition: controller.h:82
void traverseThreadFunc()
Definition: controller.cpp:178
void setCurrTestSuite(TestSuite *testSuite)
Definition: controller.h:64
void logEx(const char *format,...)
Definition: controller.cpp:431