Home | History | Annotate | Download | only in executor
      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 
     27 using std::vector;
     28 using std::string;
     29 using std::map;
     30 
     31 namespace xe
     32 {
     33 
     34 // InfoLog
     35 
     36 InfoLog::InfoLog (void)
     37 {
     38 }
     39 
     40 void 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 
     50 TestCaseResultData::TestCaseResultData (const char* casePath)
     51 	: m_casePath	(casePath)
     52 	, m_statusCode	(TESTSTATUSCODE_LAST)
     53 {
     54 }
     55 
     56 TestCaseResultData::~TestCaseResultData (void)
     57 {
     58 }
     59 
     60 void TestCaseResultData::setTestResult (TestStatusCode statusCode, const char* statusDetails)
     61 {
     62 	m_statusCode	= statusCode;
     63 	m_statusDetails	= statusDetails;
     64 }
     65 
     66 void 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 
     76 BatchResult::BatchResult (void)
     77 {
     78 }
     79 
     80 BatchResult::~BatchResult (void)
     81 {
     82 }
     83 
     84 bool BatchResult::hasTestCaseResult (const char* casePath) const
     85 {
     86 	return m_resultMap.find(casePath) != m_resultMap.end();
     87 }
     88 
     89 ConstTestCaseResultPtr 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 
     96 TestCaseResultPtr 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 
    103 TestCaseResultPtr 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