blob: be4d8dbd616329f674e934b94bba6524e4572ca4 [file] [log] [blame]
Jarkko Poyry3c827362014-09-02 11:48:52 +03001/*-------------------------------------------------------------------------
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
Jarkko Pöyry5f400532015-05-29 16:45:58 -070040void InfoLog::append (const deUint8* bytes, size_t numBytes)
Jarkko Poyry3c827362014-09-02 11:48:52 +030041{
42 DE_ASSERT(numBytes > 0);
Jarkko Pöyry5f400532015-05-29 16:45:58 -070043 const size_t oldSize = m_data.size();
Jarkko Poyry3c827362014-09-02 11:48:52 +030044 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