1/*------------------------------------------------------------------------- 2 * drawElements Quality Program Test Executor 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 Test batch result. 22 *//*--------------------------------------------------------------------*/ 23 24#include "xeBatchResult.hpp" 25#include "deMemory.h" 26 27using std::vector; 28using std::string; 29using std::map; 30 31namespace xe 32{ 33 34// InfoLog 35 36InfoLog::InfoLog (void) 37{ 38} 39 40void InfoLog::append (const deUint8* bytes, size_t numBytes) 41{ 42 DE_ASSERT(numBytes > 0); 43 const size_t oldSize = m_data.size(); 44 m_data.resize(oldSize+numBytes); 45 deMemcpy(&m_data[oldSize], bytes, numBytes); 46} 47 48// TestCaseResultData 49 50TestCaseResultData::TestCaseResultData (const char* casePath) 51 : m_casePath (casePath) 52 , m_statusCode (TESTSTATUSCODE_LAST) 53{ 54} 55 56TestCaseResultData::~TestCaseResultData (void) 57{ 58} 59 60void TestCaseResultData::setTestResult (TestStatusCode statusCode, const char* statusDetails) 61{ 62 m_statusCode = statusCode; 63 m_statusDetails = statusDetails; 64} 65 66void TestCaseResultData::clear (void) 67{ 68 m_statusCode = TESTSTATUSCODE_LAST; 69 m_statusDetails.clear(); 70 m_casePath.clear(); 71 m_data.clear(); 72} 73 74// BatchResult 75 76BatchResult::BatchResult (void) 77{ 78} 79 80BatchResult::~BatchResult (void) 81{ 82} 83 84bool BatchResult::hasTestCaseResult (const char* casePath) const 85{ 86 return m_resultMap.find(casePath) != m_resultMap.end(); 87} 88 89ConstTestCaseResultPtr BatchResult::getTestCaseResult (const char* casePath) const 90{ 91 map<string, int>::const_iterator pos = m_resultMap.find(casePath); 92 DE_ASSERT(pos != m_resultMap.end()); 93 return getTestCaseResult(pos->second); 94} 95 96TestCaseResultPtr BatchResult::getTestCaseResult (const char* casePath) 97{ 98 map<string, int>::const_iterator pos = m_resultMap.find(casePath); 99 DE_ASSERT(pos != m_resultMap.end()); 100 return getTestCaseResult(pos->second); 101} 102 103TestCaseResultPtr BatchResult::createTestCaseResult (const char* casePath) 104{ 105 DE_ASSERT(!hasTestCaseResult(casePath)); 106 107 m_testCaseResults.reserve(m_testCaseResults.size()+1); 108 m_resultMap[casePath] = (int)m_testCaseResults.size(); 109 110 TestCaseResultPtr caseResult(new TestCaseResultData(casePath)); 111 m_testCaseResults.push_back(caseResult); 112 113 return caseResult; 114} 115 116} // xe 117