• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*-------------------------------------------------------------------------
2  * drawElements Internal Test Module
3  * ---------------------------------
4  *
5  * Copyright 2014 The Android Open Source Project
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  *//*!
20  * \file
21  * \brief delibs self-tests.
22  *//*--------------------------------------------------------------------*/
23 
24 #include "ditDelibsTests.hpp"
25 #include "tcuTestLog.hpp"
26 
27 // depool
28 #include "dePoolArray.h"
29 #include "dePoolHeap.h"
30 #include "dePoolHash.h"
31 #include "dePoolSet.h"
32 #include "dePoolHashSet.h"
33 #include "dePoolHashArray.h"
34 #include "dePoolMultiSet.h"
35 
36 // dethread
37 #include "deThreadTest.h"
38 #include "deThread.h"
39 
40 // deutil
41 #include "deTimerTest.h"
42 #include "deCommandLine.h"
43 
44 // debase
45 #include "deInt32.h"
46 #include "deFloat16.h"
47 #include "deMath.h"
48 #include "deSha1.h"
49 #include "deMemory.h"
50 
51 // decpp
52 #include "deBlockBuffer.hpp"
53 #include "deFilePath.hpp"
54 #include "dePoolArray.hpp"
55 #include "deRingBuffer.hpp"
56 #include "deSharedPtr.hpp"
57 #include "deThreadSafeRingBuffer.hpp"
58 #include "deUniquePtr.hpp"
59 #include "deRandom.hpp"
60 #include "deCommandLine.hpp"
61 #include "deArrayBuffer.hpp"
62 #include "deStringUtil.hpp"
63 #include "deSpinBarrier.hpp"
64 #include "deSTLUtil.hpp"
65 #include "deAppendList.hpp"
66 
67 namespace dit
68 {
69 
70 using tcu::TestLog;
71 
72 class DepoolTests : public tcu::TestCaseGroup
73 {
74 public:
DepoolTests(tcu::TestContext & testCtx)75 	DepoolTests (tcu::TestContext& testCtx)
76 		: tcu::TestCaseGroup(testCtx, "depool", "depool self-tests")
77 	{
78 	}
79 
init(void)80 	void init (void)
81 	{
82 		addChild(new SelfCheckCase(m_testCtx, "array",		"dePoolArray_selfTest()",		dePoolArray_selfTest));
83 		addChild(new SelfCheckCase(m_testCtx, "heap",		"dePoolHeap_selfTest()",		dePoolHeap_selfTest));
84 		addChild(new SelfCheckCase(m_testCtx, "hash",		"dePoolHash_selfTest()",		dePoolHash_selfTest));
85 		addChild(new SelfCheckCase(m_testCtx, "set",		"dePoolSet_selfTest()",			dePoolSet_selfTest));
86 		addChild(new SelfCheckCase(m_testCtx, "hash_set",	"dePoolHashSet_selfTest()",		dePoolHashSet_selfTest));
87 		addChild(new SelfCheckCase(m_testCtx, "hash_array",	"dePoolHashArray_selfTest()",	dePoolHashArray_selfTest));
88 		addChild(new SelfCheckCase(m_testCtx, "multi_set",	"dePoolMultiSet_selfTest()",	dePoolMultiSet_selfTest));
89 	}
90 };
91 
92 extern "C"
93 {
94 typedef deUint32	(*GetUint32Func)	(void);
95 }
96 
97 class GetUint32Case : public tcu::TestCase
98 {
99 public:
GetUint32Case(tcu::TestContext & testCtx,const char * name,const char * description,GetUint32Func func)100 	GetUint32Case (tcu::TestContext& testCtx, const char* name, const char* description, GetUint32Func func)
101 		: tcu::TestCase	(testCtx, name, description)
102 		, m_func		(func)
103 	{
104 	}
105 
iterate(void)106 	IterateResult iterate (void)
107 	{
108 		m_testCtx.getLog() << TestLog::Message << getDescription() << " returned " << m_func() << TestLog::EndMessage;
109 		m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
110 		return STOP;
111 	}
112 
113 private:
114 	GetUint32Func	m_func;
115 };
116 
117 class DethreadTests : public tcu::TestCaseGroup
118 {
119 public:
DethreadTests(tcu::TestContext & testCtx)120 	DethreadTests (tcu::TestContext& testCtx)
121 		: tcu::TestCaseGroup(testCtx, "dethread", "dethread self-tests")
122 	{
123 	}
124 
init(void)125 	void init (void)
126 	{
127 		addChild(new SelfCheckCase(m_testCtx, "thread",						"deThread_selfTest()",				deThread_selfTest));
128 		addChild(new SelfCheckCase(m_testCtx, "mutex",						"deMutex_selfTest()",				deMutex_selfTest));
129 		addChild(new SelfCheckCase(m_testCtx, "semaphore",					"deSemaphore_selfTest()",			deSemaphore_selfTest));
130 		addChild(new SelfCheckCase(m_testCtx, "atomic",						"deAtomic_selfTest()",				deAtomic_selfTest));
131 		addChild(new SelfCheckCase(m_testCtx, "singleton",					"deSingleton_selfTest()",			deSingleton_selfTest));
132 		addChild(new GetUint32Case(m_testCtx, "total_physical_cores",		"deGetNumTotalPhysicalCores()",		deGetNumTotalPhysicalCores));
133 		addChild(new GetUint32Case(m_testCtx, "total_logical_cores",		"deGetNumTotalLogicalCores()",		deGetNumTotalLogicalCores));
134 		addChild(new GetUint32Case(m_testCtx, "available_logical_cores",	"deGetNumAvailableLogicalCores()",	deGetNumAvailableLogicalCores));
135 	}
136 };
137 
138 class DeutilTests : public tcu::TestCaseGroup
139 {
140 public:
DeutilTests(tcu::TestContext & testCtx)141 	DeutilTests (tcu::TestContext& testCtx)
142 		: tcu::TestCaseGroup(testCtx, "deutil", "deutil self-tests")
143 	{
144 	}
145 
init(void)146 	void init (void)
147 	{
148 		addChild(new SelfCheckCase(m_testCtx, "timer",			"deTimer_selfTest()",		deTimer_selfTest));
149 		addChild(new SelfCheckCase(m_testCtx, "command_line",	"deCommandLine_selfTest()",	deCommandLine_selfTest));
150 	}
151 };
152 
153 class DebaseTests : public tcu::TestCaseGroup
154 {
155 public:
DebaseTests(tcu::TestContext & testCtx)156 	DebaseTests (tcu::TestContext& testCtx)
157 		: tcu::TestCaseGroup(testCtx, "debase", "debase self-tests")
158 	{
159 	}
160 
init(void)161 	void init (void)
162 	{
163 		addChild(new SelfCheckCase(m_testCtx, "int32",		"deInt32_selfTest()",	deInt32_selfTest));
164 		addChild(new SelfCheckCase(m_testCtx, "float16",	"deFloat16_selfTest()",	deFloat16_selfTest));
165 		addChild(new SelfCheckCase(m_testCtx, "math",		"deMath_selfTest()",	deMath_selfTest));
166 		addChild(new SelfCheckCase(m_testCtx, "sha1",		"deSha1_selfTest()",	deSha1_selfTest));
167 		addChild(new SelfCheckCase(m_testCtx, "memory",		"deMemory_selfTest()",	deMemory_selfTest));
168 	}
169 };
170 
171 class DecppTests : public tcu::TestCaseGroup
172 {
173 public:
DecppTests(tcu::TestContext & testCtx)174 	DecppTests (tcu::TestContext& testCtx)
175 		: tcu::TestCaseGroup(testCtx, "decpp", "decpp self-tests")
176 	{
177 	}
178 
init(void)179 	void init (void)
180 	{
181 		addChild(new SelfCheckCase(m_testCtx, "block_buffer",				"de::BlockBuffer_selfTest()",			de::BlockBuffer_selfTest));
182 		addChild(new SelfCheckCase(m_testCtx, "file_path",					"de::FilePath_selfTest()",				de::FilePath_selfTest));
183 		addChild(new SelfCheckCase(m_testCtx, "pool_array",					"de::PoolArray_selfTest()",				de::PoolArray_selfTest));
184 		addChild(new SelfCheckCase(m_testCtx, "ring_buffer",				"de::RingBuffer_selfTest()",			de::RingBuffer_selfTest));
185 		addChild(new SelfCheckCase(m_testCtx, "shared_ptr",					"de::SharedPtr_selfTest()",				de::SharedPtr_selfTest));
186 		addChild(new SelfCheckCase(m_testCtx, "thread_safe_ring_buffer",	"de::ThreadSafeRingBuffer_selfTest()",	de::ThreadSafeRingBuffer_selfTest));
187 		addChild(new SelfCheckCase(m_testCtx, "unique_ptr",					"de::UniquePtr_selfTest()",				de::UniquePtr_selfTest));
188 		addChild(new SelfCheckCase(m_testCtx, "random",						"de::Random_selfTest()",				de::Random_selfTest));
189 		addChild(new SelfCheckCase(m_testCtx, "commandline",				"de::cmdline::selfTest()",				de::cmdline::selfTest));
190 		addChild(new SelfCheckCase(m_testCtx, "array_buffer",				"de::ArrayBuffer_selfTest()",			de::ArrayBuffer_selfTest));
191 		addChild(new SelfCheckCase(m_testCtx, "string_util",				"de::StringUtil_selfTest()",			de::StringUtil_selfTest));
192 		addChild(new SelfCheckCase(m_testCtx, "spin_barrier",				"de::SpinBarrier_selfTest()",			de::SpinBarrier_selfTest));
193 		addChild(new SelfCheckCase(m_testCtx, "stl_util",					"de::STLUtil_selfTest()",				de::STLUtil_selfTest));
194 		addChild(new SelfCheckCase(m_testCtx, "append_list",				"de::AppendList_selfTest()",			de::AppendList_selfTest));
195 	}
196 };
197 
DelibsTests(tcu::TestContext & testCtx)198 DelibsTests::DelibsTests (tcu::TestContext& testCtx)
199 	: tcu::TestCaseGroup(testCtx, "delibs", "delibs Tests")
200 {
201 }
202 
~DelibsTests(void)203 DelibsTests::~DelibsTests (void)
204 {
205 }
206 
init(void)207 void DelibsTests::init (void)
208 {
209 	addChild(new DepoolTests	(m_testCtx));
210 	addChild(new DethreadTests	(m_testCtx));
211 	addChild(new DeutilTests	(m_testCtx));
212 	addChild(new DebaseTests	(m_testCtx));
213 	addChild(new DecppTests		(m_testCtx));
214 }
215 
216 } // dit
217