Vulkan: Add wide-color tests
[platform/upstream/VK-GL-CTS.git] / modules / internal / ditDelibsTests.cpp
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:
75         DepoolTests (tcu::TestContext& testCtx)
76                 : tcu::TestCaseGroup(testCtx, "depool", "depool self-tests")
77         {
78         }
79
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:
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
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:
120         DethreadTests (tcu::TestContext& testCtx)
121                 : tcu::TestCaseGroup(testCtx, "dethread", "dethread self-tests")
122         {
123         }
124
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:
141         DeutilTests (tcu::TestContext& testCtx)
142                 : tcu::TestCaseGroup(testCtx, "deutil", "deutil self-tests")
143         {
144         }
145
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:
156         DebaseTests (tcu::TestContext& testCtx)
157                 : tcu::TestCaseGroup(testCtx, "debase", "debase self-tests")
158         {
159         }
160
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:
174         DecppTests (tcu::TestContext& testCtx)
175                 : tcu::TestCaseGroup(testCtx, "decpp", "decpp self-tests")
176         {
177         }
178
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
198 DelibsTests::DelibsTests (tcu::TestContext& testCtx)
199         : tcu::TestCaseGroup(testCtx, "delibs", "delibs Tests")
200 {
201 }
202
203 DelibsTests::~DelibsTests (void)
204 {
205 }
206
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