xref: /aosp_15_r20/external/deqp/framework/common/tcuDefs.cpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
1*35238bceSAndroid Build Coastguard Worker /*-------------------------------------------------------------------------
2*35238bceSAndroid Build Coastguard Worker  * drawElements Quality Program Tester Core
3*35238bceSAndroid Build Coastguard Worker  * ----------------------------------------
4*35238bceSAndroid Build Coastguard Worker  *
5*35238bceSAndroid Build Coastguard Worker  * Copyright 2014 The Android Open Source Project
6*35238bceSAndroid Build Coastguard Worker  *
7*35238bceSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
8*35238bceSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
9*35238bceSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
10*35238bceSAndroid Build Coastguard Worker  *
11*35238bceSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
12*35238bceSAndroid Build Coastguard Worker  *
13*35238bceSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
14*35238bceSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
15*35238bceSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16*35238bceSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
17*35238bceSAndroid Build Coastguard Worker  * limitations under the License.
18*35238bceSAndroid Build Coastguard Worker  *
19*35238bceSAndroid Build Coastguard Worker  *//*!
20*35238bceSAndroid Build Coastguard Worker  * \file
21*35238bceSAndroid Build Coastguard Worker  * \brief Basic definitions.
22*35238bceSAndroid Build Coastguard Worker  *//*--------------------------------------------------------------------*/
23*35238bceSAndroid Build Coastguard Worker 
24*35238bceSAndroid Build Coastguard Worker #include "tcuDefs.hpp"
25*35238bceSAndroid Build Coastguard Worker #include "deFilePath.hpp"
26*35238bceSAndroid Build Coastguard Worker #include "qpDebugOut.h"
27*35238bceSAndroid Build Coastguard Worker 
28*35238bceSAndroid Build Coastguard Worker #include <sstream>
29*35238bceSAndroid Build Coastguard Worker #include <stdarg.h>
30*35238bceSAndroid Build Coastguard Worker 
31*35238bceSAndroid Build Coastguard Worker namespace tcu
32*35238bceSAndroid Build Coastguard Worker {
33*35238bceSAndroid Build Coastguard Worker 
die(const char * format,...)34*35238bceSAndroid Build Coastguard Worker void die(const char *format, ...)
35*35238bceSAndroid Build Coastguard Worker {
36*35238bceSAndroid Build Coastguard Worker     va_list args;
37*35238bceSAndroid Build Coastguard Worker     va_start(args, format);
38*35238bceSAndroid Build Coastguard Worker     qpDiev(format, args);
39*35238bceSAndroid Build Coastguard Worker     va_end(args);
40*35238bceSAndroid Build Coastguard Worker }
41*35238bceSAndroid Build Coastguard Worker 
print(const char * format,...)42*35238bceSAndroid Build Coastguard Worker void print(const char *format, ...)
43*35238bceSAndroid Build Coastguard Worker {
44*35238bceSAndroid Build Coastguard Worker     va_list args;
45*35238bceSAndroid Build Coastguard Worker     va_start(args, format);
46*35238bceSAndroid Build Coastguard Worker     qpPrintv(format, args);
47*35238bceSAndroid Build Coastguard Worker     va_end(args);
48*35238bceSAndroid Build Coastguard Worker }
49*35238bceSAndroid Build Coastguard Worker 
printError(const char * format,...)50*35238bceSAndroid Build Coastguard Worker void printError(const char *format, ...)
51*35238bceSAndroid Build Coastguard Worker {
52*35238bceSAndroid Build Coastguard Worker     va_list args;
53*35238bceSAndroid Build Coastguard Worker     va_start(args, format);
54*35238bceSAndroid Build Coastguard Worker     qpPrintErrorv(format, args);
55*35238bceSAndroid Build Coastguard Worker     va_end(args);
56*35238bceSAndroid Build Coastguard Worker }
57*35238bceSAndroid Build Coastguard Worker 
formatError(const char * message,const char * expr,const char * file,int line)58*35238bceSAndroid Build Coastguard Worker static std::string formatError(const char *message, const char *expr, const char *file, int line)
59*35238bceSAndroid Build Coastguard Worker {
60*35238bceSAndroid Build Coastguard Worker     std::ostringstream msg;
61*35238bceSAndroid Build Coastguard Worker     msg << (message ? message : "Runtime check failed");
62*35238bceSAndroid Build Coastguard Worker 
63*35238bceSAndroid Build Coastguard Worker     if (expr)
64*35238bceSAndroid Build Coastguard Worker         msg << ": '" << expr << '\'';
65*35238bceSAndroid Build Coastguard Worker 
66*35238bceSAndroid Build Coastguard Worker     if (file)
67*35238bceSAndroid Build Coastguard Worker         msg << " at " << de::FilePath(file).getBaseName() << ":" << line;
68*35238bceSAndroid Build Coastguard Worker 
69*35238bceSAndroid Build Coastguard Worker     return msg.str();
70*35238bceSAndroid Build Coastguard Worker }
71*35238bceSAndroid Build Coastguard Worker 
Exception(const char * message,const char * expr,const char * file,int line)72*35238bceSAndroid Build Coastguard Worker Exception::Exception(const char *message, const char *expr, const char *file, int line)
73*35238bceSAndroid Build Coastguard Worker     : std::runtime_error(formatError(message, expr, file, line))
74*35238bceSAndroid Build Coastguard Worker     , m_message(message ? message : "Runtime check failed")
75*35238bceSAndroid Build Coastguard Worker {
76*35238bceSAndroid Build Coastguard Worker }
77*35238bceSAndroid Build Coastguard Worker 
Exception(const std::string & message)78*35238bceSAndroid Build Coastguard Worker Exception::Exception(const std::string &message) : std::runtime_error(message), m_message(message)
79*35238bceSAndroid Build Coastguard Worker {
80*35238bceSAndroid Build Coastguard Worker }
81*35238bceSAndroid Build Coastguard Worker 
TestException(const char * message,const char * expr,const char * file,int line,qpTestResult result)82*35238bceSAndroid Build Coastguard Worker TestException::TestException(const char *message, const char *expr, const char *file, int line, qpTestResult result)
83*35238bceSAndroid Build Coastguard Worker     : Exception(formatError(message, expr, file, line))
84*35238bceSAndroid Build Coastguard Worker     , m_result(result)
85*35238bceSAndroid Build Coastguard Worker {
86*35238bceSAndroid Build Coastguard Worker }
87*35238bceSAndroid Build Coastguard Worker 
TestException(const std::string & message,qpTestResult result)88*35238bceSAndroid Build Coastguard Worker TestException::TestException(const std::string &message, qpTestResult result) : Exception(message), m_result(result)
89*35238bceSAndroid Build Coastguard Worker {
90*35238bceSAndroid Build Coastguard Worker }
91*35238bceSAndroid Build Coastguard Worker 
TestError(const char * message,const char * expr,const char * file,int line,qpTestResult result)92*35238bceSAndroid Build Coastguard Worker TestError::TestError(const char *message, const char *expr, const char *file, int line, qpTestResult result)
93*35238bceSAndroid Build Coastguard Worker     : TestException(message, expr, file, line, result)
94*35238bceSAndroid Build Coastguard Worker {
95*35238bceSAndroid Build Coastguard Worker }
96*35238bceSAndroid Build Coastguard Worker 
TestError(const char * message,const char * expr,const char * file,int line)97*35238bceSAndroid Build Coastguard Worker TestError::TestError(const char *message, const char *expr, const char *file, int line)
98*35238bceSAndroid Build Coastguard Worker     : TestException(message, expr, file, line, QP_TEST_RESULT_FAIL)
99*35238bceSAndroid Build Coastguard Worker {
100*35238bceSAndroid Build Coastguard Worker }
TestError(const std::string & message,const char * expr,const char * file,int line)101*35238bceSAndroid Build Coastguard Worker TestError::TestError(const std::string &message, const char *expr, const char *file, int line)
102*35238bceSAndroid Build Coastguard Worker     : TestException(message.c_str(), expr, file, line, QP_TEST_RESULT_FAIL)
103*35238bceSAndroid Build Coastguard Worker {
104*35238bceSAndroid Build Coastguard Worker }
105*35238bceSAndroid Build Coastguard Worker 
TestError(const std::string & message)106*35238bceSAndroid Build Coastguard Worker TestError::TestError(const std::string &message) : TestException(message, QP_TEST_RESULT_FAIL)
107*35238bceSAndroid Build Coastguard Worker {
108*35238bceSAndroid Build Coastguard Worker }
109*35238bceSAndroid Build Coastguard Worker 
InternalError(const char * message,const char * expr,const char * file,int line)110*35238bceSAndroid Build Coastguard Worker InternalError::InternalError(const char *message, const char *expr, const char *file, int line)
111*35238bceSAndroid Build Coastguard Worker     : TestException(message, expr, file, line, QP_TEST_RESULT_INTERNAL_ERROR)
112*35238bceSAndroid Build Coastguard Worker {
113*35238bceSAndroid Build Coastguard Worker }
114*35238bceSAndroid Build Coastguard Worker 
InternalError(const std::string & message,const char * expr,const char * file,int line)115*35238bceSAndroid Build Coastguard Worker InternalError::InternalError(const std::string &message, const char *expr, const char *file, int line)
116*35238bceSAndroid Build Coastguard Worker     : TestException(message.c_str(), expr, file, line, QP_TEST_RESULT_INTERNAL_ERROR)
117*35238bceSAndroid Build Coastguard Worker {
118*35238bceSAndroid Build Coastguard Worker }
119*35238bceSAndroid Build Coastguard Worker 
InternalError(const std::string & message)120*35238bceSAndroid Build Coastguard Worker InternalError::InternalError(const std::string &message) : TestException(message, QP_TEST_RESULT_INTERNAL_ERROR)
121*35238bceSAndroid Build Coastguard Worker {
122*35238bceSAndroid Build Coastguard Worker }
123*35238bceSAndroid Build Coastguard Worker 
ResourceError(const char * message,const char * expr,const char * file,int line)124*35238bceSAndroid Build Coastguard Worker ResourceError::ResourceError(const char *message, const char *expr, const char *file, int line)
125*35238bceSAndroid Build Coastguard Worker     : TestException(message, expr, file, line, QP_TEST_RESULT_RESOURCE_ERROR)
126*35238bceSAndroid Build Coastguard Worker {
127*35238bceSAndroid Build Coastguard Worker }
128*35238bceSAndroid Build Coastguard Worker 
ResourceError(const std::string & message)129*35238bceSAndroid Build Coastguard Worker ResourceError::ResourceError(const std::string &message) : TestException(message, QP_TEST_RESULT_RESOURCE_ERROR)
130*35238bceSAndroid Build Coastguard Worker {
131*35238bceSAndroid Build Coastguard Worker }
132*35238bceSAndroid Build Coastguard Worker 
NotSupportedError(const char * message,const char * expr,const char * file,int line)133*35238bceSAndroid Build Coastguard Worker NotSupportedError::NotSupportedError(const char *message, const char *expr, const char *file, int line)
134*35238bceSAndroid Build Coastguard Worker     : TestException(message, expr, file, line, QP_TEST_RESULT_NOT_SUPPORTED)
135*35238bceSAndroid Build Coastguard Worker {
136*35238bceSAndroid Build Coastguard Worker }
137*35238bceSAndroid Build Coastguard Worker 
NotSupportedError(const std::string & message,const char * expr,const char * file,int line)138*35238bceSAndroid Build Coastguard Worker NotSupportedError::NotSupportedError(const std::string &message, const char *expr, const char *file, int line)
139*35238bceSAndroid Build Coastguard Worker     : TestException(message.c_str(), expr, file, line, QP_TEST_RESULT_NOT_SUPPORTED)
140*35238bceSAndroid Build Coastguard Worker {
141*35238bceSAndroid Build Coastguard Worker }
142*35238bceSAndroid Build Coastguard Worker 
NotSupportedError(const std::string & message)143*35238bceSAndroid Build Coastguard Worker NotSupportedError::NotSupportedError(const std::string &message) : TestException(message, QP_TEST_RESULT_NOT_SUPPORTED)
144*35238bceSAndroid Build Coastguard Worker {
145*35238bceSAndroid Build Coastguard Worker }
146*35238bceSAndroid Build Coastguard Worker 
QualityWarning(const char * message,const char * expr,const char * file,int line)147*35238bceSAndroid Build Coastguard Worker QualityWarning::QualityWarning(const char *message, const char *expr, const char *file, int line)
148*35238bceSAndroid Build Coastguard Worker     : TestException(message, expr, file, line, QP_TEST_RESULT_QUALITY_WARNING)
149*35238bceSAndroid Build Coastguard Worker {
150*35238bceSAndroid Build Coastguard Worker }
151*35238bceSAndroid Build Coastguard Worker 
QualityWarning(const std::string & message,const char * expr,const char * file,int line)152*35238bceSAndroid Build Coastguard Worker QualityWarning::QualityWarning(const std::string &message, const char *expr, const char *file, int line)
153*35238bceSAndroid Build Coastguard Worker     : TestException(message.c_str(), expr, file, line, QP_TEST_RESULT_QUALITY_WARNING)
154*35238bceSAndroid Build Coastguard Worker {
155*35238bceSAndroid Build Coastguard Worker }
156*35238bceSAndroid Build Coastguard Worker 
QualityWarning(const std::string & message)157*35238bceSAndroid Build Coastguard Worker QualityWarning::QualityWarning(const std::string &message) : TestException(message, QP_TEST_RESULT_QUALITY_WARNING)
158*35238bceSAndroid Build Coastguard Worker {
159*35238bceSAndroid Build Coastguard Worker }
160*35238bceSAndroid Build Coastguard Worker 
161*35238bceSAndroid Build Coastguard Worker } // namespace tcu
162