qpTestLog.h revision ecdef01798ea6069f21fec14dabe3819622f54c0
14e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#ifndef _QPTESTLOG_H 24e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#define _QPTESTLOG_H 34e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/*------------------------------------------------------------------------- 44e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * drawElements Quality Program Helper Library 54e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * ------------------------------------------- 64e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 74e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * Copyright 2014 The Android Open Source Project 84e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 94e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * Licensed under the Apache License, Version 2.0 (the "License"); 104e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * you may not use this file except in compliance with the License. 114e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * You may obtain a copy of the License at 124e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 134e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * http://www.apache.org/licenses/LICENSE-2.0 144e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 154e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * Unless required by applicable law or agreed to in writing, software 164e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * distributed under the License is distributed on an "AS IS" BASIS, 174e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 184e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * See the License for the specific language governing permissions and 194e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * limitations under the License. 204e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 214e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi *//*! 224e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * \defgroup TestLog 234e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * \ingroup TestLog 244e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * \{ 254e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * \file 264e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * \brief Test log library 274e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 284e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * qpTestLog Conventions: 294e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 304e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * Each function takes qpTestLog pointer. Operations are done on that log 314e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * instance. 324e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 334e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * When function takes a 'name' parameter, that name is exepected to 344e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * be a unique identifier within the scope of one test case. Test case 354e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * begins with a call to qpTestLog_startCase and ends with a call to 364e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * qpTestLog_endCase or qpTestLog_terminateCase. The human readable 374e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * "name" for a piece of information is given with the parameter 384e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * called 'description'. 394e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 404e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * All functions writing to the log return a boolean value. False 414e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * means that the current write operation failed and the current log 424e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * instance should be abandoned. 434e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 444e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi *//*--------------------------------------------------------------------*/ 454e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 464e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#include "deDefs.h" 474e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 484e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef struct qpTestLog_s qpTestLog; 494e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 504e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* Test results supported by current report version */ 514e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* \note Keep in sync with TestCaseStatus in Candy project. */ 524e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef enum qpTestResult_e 534e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 544e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_PASS = 0, /*!< Test case passed. */ 554e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_FAIL, /*!< Implementation produced incorrect results */ 564e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_QUALITY_WARNING, /*!< Result is within specification, but is not of high quality */ 574e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_COMPATIBILITY_WARNING, /*!< Result is within specification, but likely to cause fragmentation in the market */ 584e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_PENDING, /*!< The test is still running. Not a valid end result */ 594e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_NOT_SUPPORTED, /*!< Implementation does not support functionality needed by this test case */ 604e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_RESOURCE_ERROR, /*!< Implementation fails to pass the test due to lack of resources */ 614e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_INTERNAL_ERROR, /*!< Error occurred within Tester Core */ 624e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_CRASH, /*!< Crash occurred in test execution. */ 634e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_TIMEOUT, /*!< Timeout occurred in test execution. */ 644e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 654e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_RESULT_LAST 664e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpTestResult; 674e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 684e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* Test case types. */ 694e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef enum qpTestCaseType_e 704e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 714e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_CASE_TYPE_SELF_VALIDATE = 0, /*!< Self-validating test case */ 724e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_CASE_TYPE_PERFORMANCE, /*!< Performace test case */ 734e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_CASE_TYPE_CAPABILITY, /*!< Capability score case */ 744e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_CASE_TYPE_ACCURACY, /*!< Accuracy test case */ 754e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 764e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_CASE_TYPE_LAST 774e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpTestCaseType; 784e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 794e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/*--------------------------------------------------------------------*//*! 804e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * \brief Tag key-value pairs to give cues on proper visualization in GUI 814e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi *//*--------------------------------------------------------------------*/ 824e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef enum qpKeyValueTag_e 834e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 844e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_KEY_TAG_NONE = 0, 854e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_KEY_TAG_PERFORMANCE, 864e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_KEY_TAG_QUALITY, 874e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_KEY_TAG_PRECISION, 884e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_KEY_TAG_TIME, 894e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 904e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi /* Add new values here if needed, remember to update relevant code in qpTestLog.c and change format revision */ 914e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 924e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_KEY_TAG_LAST /* Do not remove */ 934e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpKeyValueTag; 944e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 954e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/*--------------------------------------------------------------------*//*! 964e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * \brief Sample value tag for giving hints for analysis 974e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi *//*--------------------------------------------------------------------*/ 984e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef enum qpSampleValueTag_e 994e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 1004e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SAMPLE_VALUE_TAG_PREDICTOR = 0, /*!< Predictor for sample, such as number of operations. */ 1014e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SAMPLE_VALUE_TAG_RESPONSE, /*!< Response, i.e. measured value, such as render time. */ 1024e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1034e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi /* Add new values here if needed, remember to update relevant code in qpTestLog.c and change format revision */ 1044e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1054e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SAMPLE_VALUE_TAG_LAST /* Do not remove */ 1064e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpSampleValueTag; 1074e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1084e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* Image compression type. */ 1094e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef enum qpImageCompressionMode_e 1104e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 1114e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_IMAGE_COMPRESSION_MODE_NONE = 0, /*!< Do not compress images. */ 1124e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_IMAGE_COMPRESSION_MODE_PNG, /*!< Compress images using lossless libpng. */ 1134e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_IMAGE_COMPRESSION_MODE_BEST, /*!< Choose the best image compression mode. */ 1144e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1154e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_IMAGE_COMPRESSION_MODE_LAST 1164e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpImageCompressionMode; 1174e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1184e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/*--------------------------------------------------------------------*//*! 1194e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * \brief Image formats. 1204e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * 1214e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * Pixels are handled as a byte stream, i.e., endianess does not 1224e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * affect component ordering. 1234e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi *//*--------------------------------------------------------------------*/ 1244e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef enum qpImageFormat_e 1254e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 1264e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_IMAGE_FORMAT_RGB888 = 0, 1274e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_IMAGE_FORMAT_RGBA8888, 1284e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1294e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_IMAGE_FORMAT_LAST 1304e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpImageFormat; 1314e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1324e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* Test log flags. */ 1334e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef enum qpTestLogFlag_e 1344e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 1354e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_LOG_EXCLUDE_IMAGES = (1<<0), /*!< Do not log images. This reduces log size considerably. */ 1364e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_LOG_EXCLUDE_SHADER_SOURCES = (1<<1), /*!< Do not log shader sources. Helps to reduce log size further. */ 1374e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_TEST_LOG_NO_FLUSH = (1<<2) /*!< Do not do a fflush after writing the log. */ 1384e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpTestLogFlag; 1394e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1404e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* Shader type. */ 1414e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef enum qpShaderType_e 1424e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 1434e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SHADER_TYPE_VERTEX = 0, 1444e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SHADER_TYPE_FRAGMENT, 1454e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SHADER_TYPE_GEOMETRY, 1464e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SHADER_TYPE_TESS_CONTROL, 1474e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SHADER_TYPE_TESS_EVALUATION, 1484e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SHADER_TYPE_COMPUTE, 1494e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1504e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi QP_SHADER_TYPE_LAST 1514e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpShaderType; 1524e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1534e213d510f437769f8a28578dd4f786fb7d16c4Bill YiDE_BEGIN_EXTERN_C 1544e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1554e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* \todo [2013-04-13 pyry] Clean up & document. Do we actually want this? */ 1564e213d510f437769f8a28578dd4f786fb7d16c4Bill Yitypedef struct qpEglConfigInfo_s 1574e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi{ 1584e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int bufferSize; 1594e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int redSize; 1604e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int greenSize; 1614e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int blueSize; 1624e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int luminanceSize; 1634e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int alphaSize; 1644e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int alphaMaskSize; 1654e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi deBool bindToTextureRGB; 1664e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi deBool bindToTextureRGBA; 1674e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi const char* colorBufferType; 1684e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi const char* configCaveat; 1694e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int configID; 1704e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi const char* conformant; 1714e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int depthSize; 1724e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int level; 1734e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int maxPBufferWidth; 1744e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int maxPBufferHeight; 1754e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int maxPBufferPixels; 1764e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int maxSwapInterval; 1774e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int minSwapInterval; 1784e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi deBool nativeRenderable; 1794e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi const char* renderableType; 1804e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int sampleBuffers; 1814e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int samples; 1824e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int stencilSize; 1834e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi const char* surfaceTypes; 1844e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi const char* transparentType; 1854e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int transparentRedValue; 1864e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int transparentGreenValue; 1874e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi int transparentBlueValue; 1884e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi} qpEglConfigInfo; 1894e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1904e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1914e213d510f437769f8a28578dd4f786fb7d16c4Bill YiqpTestLog* qpTestLog_createFileLog (const char* fileName, deUint32 flags); 1924e213d510f437769f8a28578dd4f786fb7d16c4Bill Yivoid qpTestLog_destroy (qpTestLog* log); 1934e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1944e213d510f437769f8a28578dd4f786fb7d16c4Bill YideBool qpTestLog_startCase (qpTestLog* log, const char* testCasePath, qpTestCaseType testCaseType); 1954e213d510f437769f8a28578dd4f786fb7d16c4Bill YideBool qpTestLog_endCase (qpTestLog* log, qpTestResult result, const char* description); 1964e213d510f437769f8a28578dd4f786fb7d16c4Bill YideBool qpTestLog_terminateCase (qpTestLog* log, qpTestResult result); 1974e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi 1984e213d510f437769f8a28578dd4f786fb7d16c4Bill YideBool qpTestLog_writeMessage (qpTestLog* log, const char* format, ...) DE_PRINTF_FUNC_ATTR(2,3); 1994e213d510f437769f8a28578dd4f786fb7d16c4Bill YideBool qpTestLog_startSection (qpTestLog* log, const char* name, const char* description); 2004e213d510f437769f8a28578dd4f786fb7d16c4Bill YideBool qpTestLog_endSection (qpTestLog* log); 201deBool qpTestLog_writeText (qpTestLog* log, const char* name, const char* description, qpKeyValueTag tag, const char* value); 202deBool qpTestLog_writeInteger (qpTestLog* log, const char* name, const char* description, const char* unit, qpKeyValueTag tag, deInt64 value); 203deBool qpTestLog_writeFloat (qpTestLog* log, const char* name, const char* description, const char* unit, qpKeyValueTag tag, float value); 204 205deBool qpTestLog_startImageSet (qpTestLog* log, const char* name, const char* description); 206deBool qpTestLog_endImageSet (qpTestLog* log); 207deBool qpTestLog_writeImage (qpTestLog* log, const char* name, const char* description, qpImageCompressionMode compressionMode, qpImageFormat format, int width, int height, int stride, const void* data); 208 209deBool qpTestLog_startEglConfigSet (qpTestLog* log, const char* key, const char* description); 210deBool qpTestLog_writeEglConfig (qpTestLog* log, const qpEglConfigInfo* config); 211deBool qpTestLog_endEglConfigSet (qpTestLog* log); 212 213/* \todo [2013-08-26 pyry] Unify ShaderProgram & KernelSource & CompileInfo. */ 214 215deBool qpTestLog_startShaderProgram (qpTestLog* log, deBool linkOk, const char* linkInfoLog); 216deBool qpTestLog_endShaderProgram (qpTestLog* log); 217deBool qpTestLog_writeShader (qpTestLog* log, qpShaderType type, const char* source, deBool compileOk, const char* infoLog); 218 219deBool qpTestLog_writeKernelSource (qpTestLog* log, const char* source); 220deBool qpTestLog_writeCompileInfo (qpTestLog* log, const char* name, const char* description, deBool compileOk, const char* infoLog); 221 222deBool qpTestLog_startSampleList (qpTestLog* log, const char* name, const char* description); 223deBool qpTestLog_startSampleInfo (qpTestLog* log); 224deBool qpTestLog_writeValueInfo (qpTestLog* log, const char* name, const char* description, const char* unit, qpSampleValueTag tag); 225deBool qpTestLog_endSampleInfo (qpTestLog* log); 226deBool qpTestLog_startSample (qpTestLog* log); 227deBool qpTestLog_writeValueFloat (qpTestLog* log, double value); 228deBool qpTestLog_writeValueInteger (qpTestLog* log, deInt64 value); 229deBool qpTestLog_endSample (qpTestLog* log); 230deBool qpTestLog_endSampleList (qpTestLog* log); 231 232deUint32 qpTestLog_getLogFlags (const qpTestLog* log); 233 234const char* qpGetTestResultName (qpTestResult result); 235 236DE_END_EXTERN_C 237 238/*! \} */ 239 240#endif /* _QPTESTLOG_H */ 241