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 * After test cases, tests time summary is added
     48 #beginTestsCasesTime <section with time summary>
     49 #endTestsCasesTime <end of time summary section>
     50 
     51 * Execution done
     52 #endSession
     53 
     54 
     55 === Test Case Log ===
     56 
     57 * XML log can be incomplete due to, e.g., crash. Please, use a SAX
     58   parser as they can work with incomplete XML.
     59 
     60 * First start the XML stream and open the TestCaseResult element. All
     61   other elements go into the TestCaseResult element.
     62 
     63 <?xml version="1.0"?>
     64 
     65 <TestCaseResult Version="0.3.2" CasePath="[path]" CaseType="[type]">
     66 [path] = Full name of the test case. Groups separated with periods ('.')
     67 [type] = SelfValidate,Performance,Accuracy,Capability
     68 The version will be increased any time changes to the format are made.
     69 
     70 * After this point there'll be a mix of following elements. Order
     71   corresponds to the execution of the test case.  All of the elements
     72   below may contain attributes Name and Description, which will have
     73   appropriate strings as values. Not all elements will have Name and
     74   Description.
     75 
     76 
     77 <Text>[string]</Text>
     78 
     79 
     80 <Number Tag="[tag]" Unit="[string]">[float]</Number>
     81 [tag] = Performance,Quality,Precision,Time
     82 
     83 
     84 <ShaderProgram LinkStatus="[status]">
     85     <VertexShader CompileStatus="[status]">
     86         <ShaderSource>[string]</ShaderSource>
     87 		<InfoLog>[string]</InfoLog>
     88     </VertexShader>
     89     <FragmentShader CompileStatus="[status]">
     90         <ShaderSource>[string]</ShaderSource>
     91 		<InfoLog>[string]</InfoLog>
     92     </FragmentShader>
     93     <InfoLog>[string]</InfoLog>
     94 </ShaderProgram>
     95 [status] = OK,Fail
     96 InfoLogs are the outputs from the GLES log query functions.
     97 
     98 
     99 <EglConfigSet>
    100     <EglConfig BufferSize="[int]"
    101 			   RedSize="[int]"
    102 			   GreenSize="[int]"
    103 			   BlueSize="[int]"
    104 			   LuminanceSize="[int]"
    105 			   AlphaSize="[int]"
    106 			   AlphaMaskSize="[int]"
    107 			   BindToTextureRGB="[bool]"
    108 			   BindToTextureRGBA="[bool]"
    109 			   ColorBufferType="[string]"
    110 			   ConfigCaveat="[string]"
    111 			   ConfigID="[int]"
    112 			   Conformant="[string]"
    113 			   DepthSize="[int]"
    114 			   Level="[int]"
    115 			   MaxPBufferWidth="[int]"
    116 			   MaxPBufferHeight="[int]"
    117 			   MaxPBufferPixels="[int]"
    118 			   MaxSwapInterval="[int]"
    119 			   MinSwapInterval="[int]"
    120 			   NativeRenderable="[bool]"
    121 			   RenderableType="[string]"
    122 			   SampleBuffers="[int]"
    123 			   Samples="[int]"
    124 			   StencilSize="[int]"
    125 			   SurfaceTypes="[int]"
    126 			   TransparentType="[int]"
    127 			   TransparentRedValue="[int]"
    128 			   TransparentGreenValue="[int]"
    129 			   TransparentBlueValue="[int]"/>
    130 </EglConfigSet>
    131 [bool] = True,False
    132 
    133 
    134 <KernelSource>[string]</KernelSource>
    135 OpenCL kernel
    136 
    137 
    138 <CompileInfo CompileStatus="[status]">[string]</CompileInfo>
    139 [status] = OK,Fail
    140 Compile info for OpenCL kernel
    141 
    142 
    143 <ImageSet>[One or more related images]</ImageSet>
    144 
    145 
    146 <Image Width="[int]"
    147        Height="[int]"
    148 	   Format="[format]"
    149 	   CompressionMode="[compression]">
    150     [base64 encoded data]
    151 </Image>
    152 [format] = RGB888,RGBA8888
    153 [compression] = None,PNG
    154 
    155 
    156 <Section>[any of the above log elements and section elements]</Section>
    157 
    158 
    159 * If the test finishes so that the framework has control, the Result
    160   element is inserted.
    161 
    162  <Result StatusCode="[status]">[Details string]</Result>
    163 [status] =
    164 		Pass,					// Test case passed.
    165 		Fail,					// Test case failed (not passed).
    166 		QualityWarning,			// Result within specification, but suspicious quality wise
    167 		CompatibilityWarning,	// Result within specification, but likely to cause fragmentation
    168 		NotSupported,			// Some feature was not supported in the implementation.
    169 		ResourceError,			// A resource error has occurred.
    170 		InternalError,			// An internal error has occurred.
    171 [Details string] = Further details or measured value as float for Performance and Accuracy cases.
    172 
    173 * We are done, let's close the TestCaseResult element
    174 
    175 </TestCaseResult>
    176