xref: /aosp_15_r20/external/deqp/framework/qphelper/qpTestLog.h (revision 35238bce31c2a825756842865a792f8cf7f89930)
1*35238bceSAndroid Build Coastguard Worker #ifndef _QPTESTLOG_H
2*35238bceSAndroid Build Coastguard Worker #define _QPTESTLOG_H
3*35238bceSAndroid Build Coastguard Worker /*-------------------------------------------------------------------------
4*35238bceSAndroid Build Coastguard Worker  * drawElements Quality Program Helper Library
5*35238bceSAndroid Build Coastguard Worker  * -------------------------------------------
6*35238bceSAndroid Build Coastguard Worker  *
7*35238bceSAndroid Build Coastguard Worker  * Copyright 2014 The Android Open Source Project
8*35238bceSAndroid Build Coastguard Worker  *
9*35238bceSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
10*35238bceSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
11*35238bceSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
12*35238bceSAndroid Build Coastguard Worker  *
13*35238bceSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
14*35238bceSAndroid Build Coastguard Worker  *
15*35238bceSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
16*35238bceSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
17*35238bceSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18*35238bceSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
19*35238bceSAndroid Build Coastguard Worker  * limitations under the License.
20*35238bceSAndroid Build Coastguard Worker  *
21*35238bceSAndroid Build Coastguard Worker  *//*!
22*35238bceSAndroid Build Coastguard Worker  * \defgroup TestLog
23*35238bceSAndroid Build Coastguard Worker  * \ingroup TestLog
24*35238bceSAndroid Build Coastguard Worker  * \{
25*35238bceSAndroid Build Coastguard Worker  * \file
26*35238bceSAndroid Build Coastguard Worker  * \brief Test log library
27*35238bceSAndroid Build Coastguard Worker  *
28*35238bceSAndroid Build Coastguard Worker  * qpTestLog Conventions:
29*35238bceSAndroid Build Coastguard Worker  *
30*35238bceSAndroid Build Coastguard Worker  * Each function takes qpTestLog pointer. Operations are done on that log
31*35238bceSAndroid Build Coastguard Worker  * instance.
32*35238bceSAndroid Build Coastguard Worker  *
33*35238bceSAndroid Build Coastguard Worker  * When function takes a 'name' parameter, that name is expected to
34*35238bceSAndroid Build Coastguard Worker  * be a unique identifier within the scope of one test case. Test case
35*35238bceSAndroid Build Coastguard Worker  * begins with a call to qpTestLog_startCase and ends with a call to
36*35238bceSAndroid Build Coastguard Worker  * qpTestLog_endCase or qpTestLog_terminateCase. The human readable
37*35238bceSAndroid Build Coastguard Worker  * "name" for a piece of information is given with the parameter
38*35238bceSAndroid Build Coastguard Worker  * called 'description'.
39*35238bceSAndroid Build Coastguard Worker  *
40*35238bceSAndroid Build Coastguard Worker  * All functions writing to the log return a boolean value. False
41*35238bceSAndroid Build Coastguard Worker  * means that the current write operation failed and the current log
42*35238bceSAndroid Build Coastguard Worker  * instance should be abandoned.
43*35238bceSAndroid Build Coastguard Worker  *
44*35238bceSAndroid Build Coastguard Worker  *//*--------------------------------------------------------------------*/
45*35238bceSAndroid Build Coastguard Worker 
46*35238bceSAndroid Build Coastguard Worker #include "deDefs.h"
47*35238bceSAndroid Build Coastguard Worker 
48*35238bceSAndroid Build Coastguard Worker typedef struct qpTestLog_s qpTestLog;
49*35238bceSAndroid Build Coastguard Worker 
50*35238bceSAndroid Build Coastguard Worker /* Test results supported by current report version */
51*35238bceSAndroid Build Coastguard Worker /* \note Keep in sync with TestCaseStatus in Candy project. */
52*35238bceSAndroid Build Coastguard Worker typedef enum qpTestResult_e
53*35238bceSAndroid Build Coastguard Worker {
54*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_PASS =
55*35238bceSAndroid Build Coastguard Worker         0,               /*!< Test case passed.                                                                    */
56*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_FAIL, /*!< Implementation produced incorrect results                                            */
57*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_QUALITY_WARNING, /*!< Result is within specification, but is not of high quality                            */
58*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_COMPATIBILITY_WARNING, /*!< Result is within specification, but likely to cause fragmentation in the market    */
59*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_PENDING, /*!< The test is still running. Not a valid end result                                    */
60*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_NOT_SUPPORTED, /*!< Implementation does not support functionality needed by this test case                */
61*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_RESOURCE_ERROR, /*!< Implementation fails to pass the test due to lack of resources                        */
62*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_INTERNAL_ERROR, /*!< Error occurred within Tester Core                                                    */
63*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_CRASH,   /*!< Crash occurred in test execution.                                                    */
64*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_TIMEOUT, /*!< Timeout occurred in test execution.                                                */
65*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_WAIVER,  /*!< Status code reported by waived test.                                                */
66*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_DEVICE_LOST, /*!< Test caused a Device Lost error                                                    */
67*35238bceSAndroid Build Coastguard Worker 
68*35238bceSAndroid Build Coastguard Worker     QP_TEST_RESULT_LAST
69*35238bceSAndroid Build Coastguard Worker } qpTestResult;
70*35238bceSAndroid Build Coastguard Worker 
71*35238bceSAndroid Build Coastguard Worker /* Test case types. */
72*35238bceSAndroid Build Coastguard Worker typedef enum qpTestCaseType_e
73*35238bceSAndroid Build Coastguard Worker {
74*35238bceSAndroid Build Coastguard Worker     QP_TEST_CASE_TYPE_SELF_VALIDATE = 0, /*!< Self-validating test case            */
75*35238bceSAndroid Build Coastguard Worker     QP_TEST_CASE_TYPE_PERFORMANCE,       /*!< Performace test case                */
76*35238bceSAndroid Build Coastguard Worker     QP_TEST_CASE_TYPE_CAPABILITY,        /*!< Capability score case                */
77*35238bceSAndroid Build Coastguard Worker     QP_TEST_CASE_TYPE_ACCURACY,          /*!< Accuracy test case                    */
78*35238bceSAndroid Build Coastguard Worker 
79*35238bceSAndroid Build Coastguard Worker     QP_TEST_CASE_TYPE_LAST
80*35238bceSAndroid Build Coastguard Worker } qpTestCaseType;
81*35238bceSAndroid Build Coastguard Worker 
82*35238bceSAndroid Build Coastguard Worker /*--------------------------------------------------------------------*//*!
83*35238bceSAndroid Build Coastguard Worker  * \brief Tag key-value pairs to give cues on proper visualization in GUI
84*35238bceSAndroid Build Coastguard Worker  *//*--------------------------------------------------------------------*/
85*35238bceSAndroid Build Coastguard Worker typedef enum qpKeyValueTag_e
86*35238bceSAndroid Build Coastguard Worker {
87*35238bceSAndroid Build Coastguard Worker     QP_KEY_TAG_NONE = 0,
88*35238bceSAndroid Build Coastguard Worker     QP_KEY_TAG_PERFORMANCE,
89*35238bceSAndroid Build Coastguard Worker     QP_KEY_TAG_QUALITY,
90*35238bceSAndroid Build Coastguard Worker     QP_KEY_TAG_PRECISION,
91*35238bceSAndroid Build Coastguard Worker     QP_KEY_TAG_TIME,
92*35238bceSAndroid Build Coastguard Worker 
93*35238bceSAndroid Build Coastguard Worker     /* Add new values here if needed, remember to update relevant code in qpTestLog.c and change format revision */
94*35238bceSAndroid Build Coastguard Worker 
95*35238bceSAndroid Build Coastguard Worker     QP_KEY_TAG_LAST /* Do not remove */
96*35238bceSAndroid Build Coastguard Worker } qpKeyValueTag;
97*35238bceSAndroid Build Coastguard Worker 
98*35238bceSAndroid Build Coastguard Worker /*--------------------------------------------------------------------*//*!
99*35238bceSAndroid Build Coastguard Worker  * \brief Sample value tag for giving hints for analysis
100*35238bceSAndroid Build Coastguard Worker  *//*--------------------------------------------------------------------*/
101*35238bceSAndroid Build Coastguard Worker typedef enum qpSampleValueTag_e
102*35238bceSAndroid Build Coastguard Worker {
103*35238bceSAndroid Build Coastguard Worker     QP_SAMPLE_VALUE_TAG_PREDICTOR = 0, /*!< Predictor for sample, such as number of operations.    */
104*35238bceSAndroid Build Coastguard Worker     QP_SAMPLE_VALUE_TAG_RESPONSE,      /*!< Response, i.e. measured value, such as render time.    */
105*35238bceSAndroid Build Coastguard Worker 
106*35238bceSAndroid Build Coastguard Worker     /* Add new values here if needed, remember to update relevant code in qpTestLog.c and change format revision */
107*35238bceSAndroid Build Coastguard Worker 
108*35238bceSAndroid Build Coastguard Worker     QP_SAMPLE_VALUE_TAG_LAST /* Do not remove */
109*35238bceSAndroid Build Coastguard Worker } qpSampleValueTag;
110*35238bceSAndroid Build Coastguard Worker 
111*35238bceSAndroid Build Coastguard Worker /* Image compression type. */
112*35238bceSAndroid Build Coastguard Worker typedef enum qpImageCompressionMode_e
113*35238bceSAndroid Build Coastguard Worker {
114*35238bceSAndroid Build Coastguard Worker     QP_IMAGE_COMPRESSION_MODE_NONE = 0, /*!< Do not compress images.                    */
115*35238bceSAndroid Build Coastguard Worker     QP_IMAGE_COMPRESSION_MODE_PNG,      /*!< Compress images using lossless libpng.        */
116*35238bceSAndroid Build Coastguard Worker     QP_IMAGE_COMPRESSION_MODE_BEST,     /*!< Choose the best image compression mode.    */
117*35238bceSAndroid Build Coastguard Worker 
118*35238bceSAndroid Build Coastguard Worker     QP_IMAGE_COMPRESSION_MODE_LAST
119*35238bceSAndroid Build Coastguard Worker } qpImageCompressionMode;
120*35238bceSAndroid Build Coastguard Worker 
121*35238bceSAndroid Build Coastguard Worker /*--------------------------------------------------------------------*//*!
122*35238bceSAndroid Build Coastguard Worker  * \brief Image formats.
123*35238bceSAndroid Build Coastguard Worker  *
124*35238bceSAndroid Build Coastguard Worker  * Pixels are handled as a byte stream, i.e., endianess does not
125*35238bceSAndroid Build Coastguard Worker  * affect component ordering.
126*35238bceSAndroid Build Coastguard Worker  *//*--------------------------------------------------------------------*/
127*35238bceSAndroid Build Coastguard Worker typedef enum qpImageFormat_e
128*35238bceSAndroid Build Coastguard Worker {
129*35238bceSAndroid Build Coastguard Worker     QP_IMAGE_FORMAT_RGB888 = 0,
130*35238bceSAndroid Build Coastguard Worker     QP_IMAGE_FORMAT_RGBA8888,
131*35238bceSAndroid Build Coastguard Worker 
132*35238bceSAndroid Build Coastguard Worker     QP_IMAGE_FORMAT_LAST
133*35238bceSAndroid Build Coastguard Worker } qpImageFormat;
134*35238bceSAndroid Build Coastguard Worker 
135*35238bceSAndroid Build Coastguard Worker /* Test log flags. */
136*35238bceSAndroid Build Coastguard Worker typedef enum qpTestLogFlag_e
137*35238bceSAndroid Build Coastguard Worker {
138*35238bceSAndroid Build Coastguard Worker     QP_TEST_LOG_EXCLUDE_IMAGES = (1 << 0) /*!< Do not log images. This reduces log size considerably.            */
139*35238bceSAndroid Build Coastguard Worker     ,
140*35238bceSAndroid Build Coastguard Worker     QP_TEST_LOG_EXCLUDE_SHADER_SOURCES =
141*35238bceSAndroid Build Coastguard Worker         (1 << 1) /*!< Do not log shader sources. Helps to reduce log size further.    */
142*35238bceSAndroid Build Coastguard Worker     ,
143*35238bceSAndroid Build Coastguard Worker     QP_TEST_LOG_NO_FLUSH = (1 << 2) /*!< Do not do a fflush after writing the log.                        */
144*35238bceSAndroid Build Coastguard Worker     ,
145*35238bceSAndroid Build Coastguard Worker     QP_TEST_LOG_EXCLUDE_EMPTY_LOGINFO = (1 << 3) /*!< Do not log empty shader compile or link loginfo.                */
146*35238bceSAndroid Build Coastguard Worker     ,
147*35238bceSAndroid Build Coastguard Worker     QP_TEST_LOG_NO_INITIAL_OUTPUT = (1 << 4) /*!< Do not push data to cout when initializing log.                */
148*35238bceSAndroid Build Coastguard Worker     ,
149*35238bceSAndroid Build Coastguard Worker     QP_TEST_LOG_COMPACT = (1 << 5) /*!< Only write test case status.                                    */
150*35238bceSAndroid Build Coastguard Worker } qpTestLogFlag;
151*35238bceSAndroid Build Coastguard Worker 
152*35238bceSAndroid Build Coastguard Worker /* Shader type. */
153*35238bceSAndroid Build Coastguard Worker typedef enum qpShaderType_e
154*35238bceSAndroid Build Coastguard Worker {
155*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_VERTEX = 0,
156*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_FRAGMENT,
157*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_GEOMETRY,
158*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_TESS_CONTROL,
159*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_TESS_EVALUATION,
160*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_COMPUTE,
161*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_RAYGEN,
162*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_ANY_HIT,
163*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_CLOSEST_HIT,
164*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_MISS,
165*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_INTERSECTION,
166*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_CALLABLE,
167*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_TASK,
168*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_MESH,
169*35238bceSAndroid Build Coastguard Worker 
170*35238bceSAndroid Build Coastguard Worker     QP_SHADER_TYPE_LAST
171*35238bceSAndroid Build Coastguard Worker } qpShaderType;
172*35238bceSAndroid Build Coastguard Worker 
173*35238bceSAndroid Build Coastguard Worker DE_BEGIN_EXTERN_C
174*35238bceSAndroid Build Coastguard Worker 
175*35238bceSAndroid Build Coastguard Worker /* \todo [2013-04-13 pyry] Clean up & document. Do we actually want this? */
176*35238bceSAndroid Build Coastguard Worker typedef struct qpEglConfigInfo_s
177*35238bceSAndroid Build Coastguard Worker {
178*35238bceSAndroid Build Coastguard Worker     int bufferSize;
179*35238bceSAndroid Build Coastguard Worker     int redSize;
180*35238bceSAndroid Build Coastguard Worker     int greenSize;
181*35238bceSAndroid Build Coastguard Worker     int blueSize;
182*35238bceSAndroid Build Coastguard Worker     int luminanceSize;
183*35238bceSAndroid Build Coastguard Worker     int alphaSize;
184*35238bceSAndroid Build Coastguard Worker     int alphaMaskSize;
185*35238bceSAndroid Build Coastguard Worker     bool bindToTextureRGB;
186*35238bceSAndroid Build Coastguard Worker     bool bindToTextureRGBA;
187*35238bceSAndroid Build Coastguard Worker     const char *colorBufferType;
188*35238bceSAndroid Build Coastguard Worker     const char *configCaveat;
189*35238bceSAndroid Build Coastguard Worker     int configID;
190*35238bceSAndroid Build Coastguard Worker     const char *conformant;
191*35238bceSAndroid Build Coastguard Worker     int depthSize;
192*35238bceSAndroid Build Coastguard Worker     int level;
193*35238bceSAndroid Build Coastguard Worker     int maxPBufferWidth;
194*35238bceSAndroid Build Coastguard Worker     int maxPBufferHeight;
195*35238bceSAndroid Build Coastguard Worker     int maxPBufferPixels;
196*35238bceSAndroid Build Coastguard Worker     int maxSwapInterval;
197*35238bceSAndroid Build Coastguard Worker     int minSwapInterval;
198*35238bceSAndroid Build Coastguard Worker     bool nativeRenderable;
199*35238bceSAndroid Build Coastguard Worker     const char *renderableType;
200*35238bceSAndroid Build Coastguard Worker     int sampleBuffers;
201*35238bceSAndroid Build Coastguard Worker     int samples;
202*35238bceSAndroid Build Coastguard Worker     int stencilSize;
203*35238bceSAndroid Build Coastguard Worker     const char *surfaceTypes;
204*35238bceSAndroid Build Coastguard Worker     const char *transparentType;
205*35238bceSAndroid Build Coastguard Worker     int transparentRedValue;
206*35238bceSAndroid Build Coastguard Worker     int transparentGreenValue;
207*35238bceSAndroid Build Coastguard Worker     int transparentBlueValue;
208*35238bceSAndroid Build Coastguard Worker     bool recordableAndroid;
209*35238bceSAndroid Build Coastguard Worker } qpEglConfigInfo;
210*35238bceSAndroid Build Coastguard Worker 
211*35238bceSAndroid Build Coastguard Worker qpTestLog *qpTestLog_createFileLog(const char *fileName, uint32_t flags);
212*35238bceSAndroid Build Coastguard Worker bool qpTestLog_beginSession(qpTestLog *log, const char *additionalSessionInfo);
213*35238bceSAndroid Build Coastguard Worker void qpTestLog_destroy(qpTestLog *log);
214*35238bceSAndroid Build Coastguard Worker bool qpTestLog_isCompact(qpTestLog *log);
215*35238bceSAndroid Build Coastguard Worker 
216*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startCase(qpTestLog *log, const char *testCasePath, qpTestCaseType testCaseType);
217*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endCase(qpTestLog *log, qpTestResult result, const char *description);
218*35238bceSAndroid Build Coastguard Worker 
219*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startTestsCasesTime(qpTestLog *log);
220*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endTestsCasesTime(qpTestLog *log);
221*35238bceSAndroid Build Coastguard Worker 
222*35238bceSAndroid Build Coastguard Worker bool qpTestLog_terminateCase(qpTestLog *log, qpTestResult result);
223*35238bceSAndroid Build Coastguard Worker 
224*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startSection(qpTestLog *log, const char *name, const char *description);
225*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endSection(qpTestLog *log);
226*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeText(qpTestLog *log, const char *name, const char *description, qpKeyValueTag tag,
227*35238bceSAndroid Build Coastguard Worker                          const char *value);
228*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeInteger(qpTestLog *log, const char *name, const char *description, const char *unit,
229*35238bceSAndroid Build Coastguard Worker                             qpKeyValueTag tag, int64_t value);
230*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeFloat(qpTestLog *log, const char *name, const char *description, const char *unit,
231*35238bceSAndroid Build Coastguard Worker                           qpKeyValueTag tag, float value);
232*35238bceSAndroid Build Coastguard Worker 
233*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startImageSet(qpTestLog *log, const char *name, const char *description);
234*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endImageSet(qpTestLog *log);
235*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeImage(qpTestLog *log, const char *name, const char *description,
236*35238bceSAndroid Build Coastguard Worker                           qpImageCompressionMode compressionMode, qpImageFormat format, int width, int height,
237*35238bceSAndroid Build Coastguard Worker                           int stride, const void *data);
238*35238bceSAndroid Build Coastguard Worker 
239*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startEglConfigSet(qpTestLog *log, const char *key, const char *description);
240*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeEglConfig(qpTestLog *log, const qpEglConfigInfo *config);
241*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endEglConfigSet(qpTestLog *log);
242*35238bceSAndroid Build Coastguard Worker 
243*35238bceSAndroid Build Coastguard Worker /* \todo [2013-08-26 pyry] Unify ShaderProgram & KernelSource & CompileInfo. */
244*35238bceSAndroid Build Coastguard Worker 
245*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startShaderProgram(qpTestLog *log, bool linkOk, const char *linkInfoLog);
246*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endShaderProgram(qpTestLog *log);
247*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeShader(qpTestLog *log, qpShaderType type, const char *source, bool compileOk, const char *infoLog);
248*35238bceSAndroid Build Coastguard Worker 
249*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeKernelSource(qpTestLog *log, const char *source);
250*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeSpirVAssemblySource(qpTestLog *log, const char *source);
251*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeCompileInfo(qpTestLog *log, const char *name, const char *description, bool compileOk,
252*35238bceSAndroid Build Coastguard Worker                                 const char *infoLog);
253*35238bceSAndroid Build Coastguard Worker 
254*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startSampleList(qpTestLog *log, const char *name, const char *description);
255*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startSampleInfo(qpTestLog *log);
256*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeValueInfo(qpTestLog *log, const char *name, const char *description, const char *unit,
257*35238bceSAndroid Build Coastguard Worker                               qpSampleValueTag tag);
258*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endSampleInfo(qpTestLog *log);
259*35238bceSAndroid Build Coastguard Worker bool qpTestLog_startSample(qpTestLog *log);
260*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeValueFloat(qpTestLog *log, double value);
261*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeValueInteger(qpTestLog *log, int64_t value);
262*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endSample(qpTestLog *log);
263*35238bceSAndroid Build Coastguard Worker bool qpTestLog_endSampleList(qpTestLog *log);
264*35238bceSAndroid Build Coastguard Worker 
265*35238bceSAndroid Build Coastguard Worker bool qpTestLog_writeRaw(qpTestLog *log, const char *rawContents);
266*35238bceSAndroid Build Coastguard Worker 
267*35238bceSAndroid Build Coastguard Worker uint32_t qpTestLog_getLogFlags(const qpTestLog *log);
268*35238bceSAndroid Build Coastguard Worker 
269*35238bceSAndroid Build Coastguard Worker const char *qpGetTestResultName(qpTestResult result);
270*35238bceSAndroid Build Coastguard Worker 
271*35238bceSAndroid Build Coastguard Worker DE_END_EXTERN_C
272*35238bceSAndroid Build Coastguard Worker 
273*35238bceSAndroid Build Coastguard Worker /*! \} */
274*35238bceSAndroid Build Coastguard Worker 
275*35238bceSAndroid Build Coastguard Worker #endif /* _QPTESTLOG_H */
276