Home | History | Annotate | Download | only in doc
      1 
      2 ***** QPA FILE FORMAT ******
      3 
      4 Date: 21st March 2013
      5 
      6 The QPA file is a combination of two formats:
      7 - Container format is the outer format that runs through test
      8   executable life time
      9 - Per case XML-based log is stored for each test case within
     10   the container format
     11 
     12 The best additional reference is the code used to handle the logs as
     13 well as sample .qpa file. See framework/qphelper/qpTestLog.c, for
     14 example. Also, executor/xeTestLogParser.cpp will be a helful.
     15 
     16 The descriptions below flow in the order the items appear in normal
     17 log files. Comments are prefixed with an asterisk ('*').
     18 
     19 === Container format ===
     20 
     21 * Container format starts with multiple entries of form:
     22 
     23 #sessionInfo [key] [value]
     24 
     25 * The session info entries do not have fixed order.
     26 * Info header keys written by a test binary are listed below.
     27 releaseName
     28 releaseId
     29 targetName
     30 
     31 * Candy writes and reads the following additional keys:
     32 candyTargetName
     33 resultName
     34 timestamp
     35 configName
     36 
     37 * Additional header values will be added as needed.
     38 
     39 * The test binary starts actual execution by outputting:
     40 #beginSession
     41 
     42 * Each test case looks like:
     43 #beginTestCaseResult <name of the test case>
     44 <Test Case Log - see the separate section below>
     45 #endTestCaseResult or #terminateTestCaseResult <cause>
     46 
     47 * Execution done
     48 #endSession
     49 
     50 
     51 === Test Case Log ===
     52 
     53 * XML log can be incomplete due to, e.g., crash. Please, use a SAX
     54   parser as they can work with incomplete XML.
     55 
     56 * First start the XML stream and open the TestCaseResult element. All
     57   other elements go into the TestCaseResult element.
     58 
     59 <?xml version="1.0"?>
     60 
     61 <TestCaseResult Version="0.3.2" CasePath="[path]" CaseType="[type]">
     62 [path] = Full name of the test case. Groups separated with periods ('.')
     63 [type] = SelfValidate,Performance,Accuracy,Capability
     64 The version will be increased any time changes to the format are made.
     65 
     66 * After this point there'll be a mix of following elements. Order
     67   corresponds to the execution of the test case.  All of the elements
     68   below may contain attributes Name and Description, which will have
     69   appropriate strings as values. Not all elements will have Name and
     70   Description.
     71 
     72 
     73 <Text>[string]</Text>
     74 
     75 
     76 <Number Tag="[tag]" Unit="[string]">[float]</Number>
     77 [tag] = Performance,Quality,Precision,Time
     78 
     79 
     80 <ShaderProgram LinkStatus="[status]">
     81     <VertexShader CompileStatus="[status]">
     82         <ShaderSource>[string]</ShaderSource>
     83 		<InfoLog>[string]</InfoLog>
     84     </VertexShader>
     85     <FragmentShader CompileStatus="[status]">
     86         <ShaderSource>[string]</ShaderSource>
     87 		<InfoLog>[string]</InfoLog>
     88     </FragmentShader>
     89     <InfoLog>[string]</InfoLog>
     90 </ShaderProgram>
     91 [status] = OK,Fail
     92 InfoLogs are the outputs from the GLES log query functions.
     93 
     94 
     95 <EglConfigSet>
     96     <EglConfig BufferSize="[int]"
     97 			   RedSize="[int]"
     98 			   GreenSize="[int]"
     99 			   BlueSize="[int]"
    100 			   LuminanceSize="[int]"
    101 			   AlphaSize="[int]"
    102 			   AlphaMaskSize="[int]"
    103 			   BindToTextureRGB="[bool]"
    104 			   BindToTextureRGBA="[bool]"
    105 			   ColorBufferType="[string]"
    106 			   ConfigCaveat="[string]"
    107 			   ConfigID="[int]"
    108 			   Conformant="[string]"
    109 			   DepthSize="[int]"
    110 			   Level="[int]"
    111 			   MaxPBufferWidth="[int]"
    112 			   MaxPBufferHeight="[int]"
    113 			   MaxPBufferPixels="[int]"
    114 			   MaxSwapInterval="[int]"
    115 			   MinSwapInterval="[int]"
    116 			   NativeRenderable="[bool]"
    117 			   RenderableType="[string]"
    118 			   SampleBuffers="[int]"
    119 			   Samples="[int]"
    120 			   StencilSize="[int]"
    121 			   SurfaceTypes="[int]"
    122 			   TransparentType="[int]"
    123 			   TransparentRedValue="[int]"
    124 			   TransparentGreenValue="[int]"
    125 			   TransparentBlueValue="[int]"/>
    126 </EglConfigSet>
    127 [bool] = True,False
    128 
    129 
    130 <KernelSource>[string]</KernelSource>
    131 OpenCL kernel
    132 
    133 
    134 <CompileInfo CompileStatus="[status]">[string]</CompileInfo>
    135 [status] = OK,Fail
    136 Compile info for OpenCL kernel
    137 
    138 
    139 <ImageSet>[One or more related images]</ImageSet>
    140 
    141 
    142 <Image Width="[int]"
    143        Height="[int]"
    144 	   Format="[format]"
    145 	   CompressionMode="[compression]">
    146     [base64 encoded data]
    147 </Image>
    148 [format] = RGB888,RGBA8888
    149 [compression] = None,PNG
    150 
    151 
    152 <Section>[any of the above log elements and section elements]</Section>
    153 
    154 
    155 * If the test finishes so that the framework has control, the Result
    156   element is inserted.
    157 
    158  <Result StatusCode="[status]">[Details string]</Result>
    159 [status] =
    160 		Pass,					// Test case passed.
    161 		Fail,					// Test case failed (not passed).
    162 		QualityWarning,			// Result within specification, but suspicious quality wise
    163 		CompatibilityWarning,	// Result within specification, but likely to cause fragmentation
    164 		NotSupported,			// Some feature was not supported in the implementation.
    165 		ResourceError,			// A resource error has occurred.
    166 		InternalError,			// An internal error has occurred.
    167 [Details string] = Further details or measured value as float for Performance and Accuracy cases.
    168 
    169 * We are done, let's close the TestCaseResult element
    170 
    171 </TestCaseResult>
    172