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 67namespace dit 68{ 69 70using tcu::TestLog; 71 72class DepoolTests : public tcu::TestCaseGroup 73{ 74public: 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 92extern "C" 93{ 94typedef deUint32 (*GetUint32Func) (void); 95} 96 97class GetUint32Case : public tcu::TestCase 98{ 99public: 100 GetUint32Case (tcu::TestContext& testCtx, const char* name, const char* description, GetUint32Func func) 101 : tcu::TestCase (testCtx, name, description) 102 , m_func (func) 103 , m_description (description) 104 { 105 } 106 107 IterateResult iterate (void) 108 { 109 m_testCtx.getLog() << TestLog::Message << m_description << " returned " << m_func() << TestLog::EndMessage; 110 m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass"); 111 return STOP; 112 } 113 114private: 115 GetUint32Func m_func; 116 const char * m_description; 117}; 118 119class DethreadTests : public tcu::TestCaseGroup 120{ 121public: 122 DethreadTests (tcu::TestContext& testCtx) 123 : tcu::TestCaseGroup(testCtx, "dethread", "dethread self-tests") 124 { 125 } 126 127 void init (void) 128 { 129 addChild(new SelfCheckCase(m_testCtx, "thread", "deThread_selfTest()", deThread_selfTest)); 130 addChild(new SelfCheckCase(m_testCtx, "mutex", "deMutex_selfTest()", deMutex_selfTest)); 131 addChild(new SelfCheckCase(m_testCtx, "semaphore", "deSemaphore_selfTest()", deSemaphore_selfTest)); 132 addChild(new SelfCheckCase(m_testCtx, "atomic", "deAtomic_selfTest()", deAtomic_selfTest)); 133 addChild(new SelfCheckCase(m_testCtx, "singleton", "deSingleton_selfTest()", deSingleton_selfTest)); 134 addChild(new GetUint32Case(m_testCtx, "total_physical_cores", "deGetNumTotalPhysicalCores()", deGetNumTotalPhysicalCores)); 135 addChild(new GetUint32Case(m_testCtx, "total_logical_cores", "deGetNumTotalLogicalCores()", deGetNumTotalLogicalCores)); 136 addChild(new GetUint32Case(m_testCtx, "available_logical_cores", "deGetNumAvailableLogicalCores()", deGetNumAvailableLogicalCores)); 137 } 138}; 139 140class DeutilTests : public tcu::TestCaseGroup 141{ 142public: 143 DeutilTests (tcu::TestContext& testCtx) 144 : tcu::TestCaseGroup(testCtx, "deutil", "deutil self-tests") 145 { 146 } 147 148 void init (void) 149 { 150 addChild(new SelfCheckCase(m_testCtx, "timer", "deTimer_selfTest()", deTimer_selfTest)); 151 addChild(new SelfCheckCase(m_testCtx, "command_line", "deCommandLine_selfTest()", deCommandLine_selfTest)); 152 } 153}; 154 155class DebaseTests : public tcu::TestCaseGroup 156{ 157public: 158 DebaseTests (tcu::TestContext& testCtx) 159 : tcu::TestCaseGroup(testCtx, "debase", "debase self-tests") 160 { 161 } 162 163 void init (void) 164 { 165 addChild(new SelfCheckCase(m_testCtx, "int32", "deInt32_selfTest()", deInt32_selfTest)); 166 addChild(new SelfCheckCase(m_testCtx, "float16", "deFloat16_selfTest()", deFloat16_selfTest)); 167 addChild(new SelfCheckCase(m_testCtx, "math", "deMath_selfTest()", deMath_selfTest)); 168 addChild(new SelfCheckCase(m_testCtx, "sha1", "deSha1_selfTest()", deSha1_selfTest)); 169 addChild(new SelfCheckCase(m_testCtx, "memory", "deMemory_selfTest()", deMemory_selfTest)); 170 } 171}; 172 173class DecppTests : public tcu::TestCaseGroup 174{ 175public: 176 DecppTests (tcu::TestContext& testCtx) 177 : tcu::TestCaseGroup(testCtx, "decpp", "decpp self-tests") 178 { 179 } 180 181 void init (void) 182 { 183 addChild(new SelfCheckCase(m_testCtx, "block_buffer", "de::BlockBuffer_selfTest()", de::BlockBuffer_selfTest)); 184 addChild(new SelfCheckCase(m_testCtx, "file_path", "de::FilePath_selfTest()", de::FilePath_selfTest)); 185 addChild(new SelfCheckCase(m_testCtx, "pool_array", "de::PoolArray_selfTest()", de::PoolArray_selfTest)); 186 addChild(new SelfCheckCase(m_testCtx, "ring_buffer", "de::RingBuffer_selfTest()", de::RingBuffer_selfTest)); 187 addChild(new SelfCheckCase(m_testCtx, "shared_ptr", "de::SharedPtr_selfTest()", de::SharedPtr_selfTest)); 188 addChild(new SelfCheckCase(m_testCtx, "thread_safe_ring_buffer", "de::ThreadSafeRingBuffer_selfTest()", de::ThreadSafeRingBuffer_selfTest)); 189 addChild(new SelfCheckCase(m_testCtx, "unique_ptr", "de::UniquePtr_selfTest()", de::UniquePtr_selfTest)); 190 addChild(new SelfCheckCase(m_testCtx, "random", "de::Random_selfTest()", de::Random_selfTest)); 191 addChild(new SelfCheckCase(m_testCtx, "commandline", "de::cmdline::selfTest()", de::cmdline::selfTest)); 192 addChild(new SelfCheckCase(m_testCtx, "array_buffer", "de::ArrayBuffer_selfTest()", de::ArrayBuffer_selfTest)); 193 addChild(new SelfCheckCase(m_testCtx, "string_util", "de::StringUtil_selfTest()", de::StringUtil_selfTest)); 194 addChild(new SelfCheckCase(m_testCtx, "spin_barrier", "de::SpinBarrier_selfTest()", de::SpinBarrier_selfTest)); 195 addChild(new SelfCheckCase(m_testCtx, "stl_util", "de::STLUtil_selfTest()", de::STLUtil_selfTest)); 196 addChild(new SelfCheckCase(m_testCtx, "append_list", "de::AppendList_selfTest()", de::AppendList_selfTest)); 197 } 198}; 199 200DelibsTests::DelibsTests (tcu::TestContext& testCtx) 201 : tcu::TestCaseGroup(testCtx, "delibs", "delibs Tests") 202{ 203} 204 205DelibsTests::~DelibsTests (void) 206{ 207} 208 209void DelibsTests::init (void) 210{ 211 addChild(new DepoolTests (m_testCtx)); 212 addChild(new DethreadTests (m_testCtx)); 213 addChild(new DeutilTests (m_testCtx)); 214 addChild(new DebaseTests (m_testCtx)); 215 addChild(new DecppTests (m_testCtx)); 216} 217 218} // dit 219