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