Home | History | Annotate | Download | only in scripts
      1 # -*- coding: utf-8 -*-
      2 
      3 import sys
      4 
      5 RENAME_LIST_2011_1_2011_2 = [
      6 	("dEQP-GLES2.functional.shaders.random.basic_expressions.*",			"dEQP-GLES2.functional.shaders.random.basic_expression."),
      7 	("dEQP-GLES2.functional.shaders.random.scalar_conversions.*",			"dEQP-GLES2.functional.shaders.random.scalar_conversion."),
      8 	("dEQP-GLES2.functional.fbo.render.color_clears_*",						"dEQP-GLES2.functional.fbo.render.color_clear."),
      9 	("dEQP-GLES2.functional.fbo.render.intersecting_quads_*",				"dEQP-GLES2.functional.fbo.render.depth."),
     10 	("dEQP-GLES2.functional.fbo.render.mix_*",								"dEQP-GLES2.functional.fbo.render.color.mix_"),
     11 	("dEQP-GLES2.functional.fbo.render.blend_*",							"dEQP-GLES2.functional.fbo.render.color.blend_"),
     12 	("dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clears_*",		"dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear."),
     13 	("dEQP-GLES2.functional.fbo.render.shared_colorbuffer_*",				"dEQP-GLES2.functional.fbo.render.shared_colorbuffer."),
     14 	("dEQP-GLES2.functional.fbo.render.shared_depthbuffer_*",				"dEQP-GLES2.functional.fbo.render.shared_depthbuffer."),
     15 	("dEQP-GLES2.functional.fbo.render.texsubimage_*",						"dEQP-GLES2.functional.fbo.render.texsubimage."),
     16 	("dEQP-GLES2.functional.fbo.render.recreate_colorbuffer_*",				"dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_"),
     17 	("dEQP-GLES2.functional.fbo.render.recreate_depthbuffer_*",				"dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.no_rebind_"),
     18 	("dEQP-GLES2.functional.fbo.render.resize_*",							"dEQP-GLES2.functional.fbo.render.resize.")
     19 ]
     20 
     21 RENAME_LIST_2011_2_2011_3 = [
     22 	("dEQP-GLES2.usecases.ui.src_over_linear_1_batched",                    "dEQP-GLES2.usecases.ui.src_over_linear_batched_1"),
     23 	("dEQP-GLES2.usecases.ui.src_over_linear_2_batched",                    "dEQP-GLES2.usecases.ui.src_over_linear_batched_2"),
     24 	("dEQP-GLES2.usecases.ui.src_over_linear_4_batched",                    "dEQP-GLES2.usecases.ui.src_over_linear_batched_4"),
     25 	("dEQP-GLES2.usecases.ui.src_over_nearest_1_batched",                   "dEQP-GLES2.usecases.ui.src_over_nearest_batched_1"),
     26 	("dEQP-GLES2.usecases.ui.src_over_nearest_2_batched",                   "dEQP-GLES2.usecases.ui.src_over_nearest_batched_2"),
     27 	("dEQP-GLES2.usecases.ui.src_over_nearest_4_batched",                   "dEQP-GLES2.usecases.ui.src_over_nearest_batched_4"),
     28 	("dEQP-GLES2.usecases.ui.premultiplied_src_over_linear_1_batched",      "dEQP-GLES2.usecases.ui.premultiplied_src_over_linear_batched_1"),
     29 	("dEQP-GLES2.usecases.ui.premultiplied_src_over_linear_2_batched",      "dEQP-GLES2.usecases.ui.premultiplied_src_over_linear_batched_2"),
     30 	("dEQP-GLES2.usecases.ui.premultiplied_src_over_linear_4_batched",      "dEQP-GLES2.usecases.ui.premultiplied_src_over_linear_batched_4"),
     31 	("dEQP-GLES2.usecases.ui.premultiplied_src_over_nearest_1_batched",     "dEQP-GLES2.usecases.ui.premultiplied_src_over_nearest_batched_1"),
     32 	("dEQP-GLES2.usecases.ui.premultiplied_src_over_nearest_2_batched",     "dEQP-GLES2.usecases.ui.premultiplied_src_over_nearest_batched_2"),
     33 	("dEQP-GLES2.usecases.ui.premultiplied_src_over_nearest_4_batched",     "dEQP-GLES2.usecases.ui.premultiplied_src_over_nearest_batched_4"),
     34 	("dEQP-GLES2.usecases.ui.no_blend_linear_1_batched",                    "dEQP-GLES2.usecases.ui.no_blend_linear_batched_1"),
     35 	("dEQP-GLES2.usecases.ui.no_blend_linear_2_batched",                    "dEQP-GLES2.usecases.ui.no_blend_linear_batched_2"),
     36 	("dEQP-GLES2.usecases.ui.no_blend_linear_4_batched",                    "dEQP-GLES2.usecases.ui.no_blend_linear_batched_4"),
     37 	("dEQP-GLES2.usecases.ui.no_blend_nearest_1_batched",                   "dEQP-GLES2.usecases.ui.no_blend_nearest_batched_1"),
     38 	("dEQP-GLES2.usecases.ui.no_blend_nearest_2_batched",                   "dEQP-GLES2.usecases.ui.no_blend_nearest_batched_2"),
     39 	("dEQP-GLES2.usecases.ui.no_blend_nearest_4_batched",                   "dEQP-GLES2.usecases.ui.no_blend_nearest_batched_4")
     40 ]
     41 
     42 RENAME_LIST_2011_3_2011_4 = []
     43 
     44 RENAME_LIST_2011_4_2012_1 = [
     45 	("dEQP-GLES2.functional.vertex_arrays.multiple_attributes.output_types.*", "dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types."),
     46 ]
     47 
     48 RENAME_LIST_2012_2_2012_3 = [
     49 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_float_vertex",   	"dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_float_float_vertex"),
     50 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_float_fragment",		"dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_float_float_fragment"),
     51 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_float_vertex",     	"dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_float_float_vertex"),
     52 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_float_fragment",   	"dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_float_float_fragment"),
     53 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec2_vertex",    	"dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec2_float_vertex"),
     54 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec2_fragment",  	"dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec2_float_fragment"),
     55 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec2_vertex",      	"dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec2_float_vertex"),
     56 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec2_fragment",    	"dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec2_float_fragment"),
     57 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec3_vertex",    	"dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec3_float_vertex"),
     58 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec3_fragment",  	"dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec3_float_fragment"),
     59 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec3_vertex",      	"dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec3_float_vertex"),
     60 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec3_fragment",    	"dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec3_float_fragment"),
     61 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec4_vertex",    	"dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec4_float_vertex"),
     62 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec4_fragment",  	"dEQP-GLES2.functional.shaders.operator.geometric.refract.mediump_vec4_float_fragment"),
     63 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec4_vertex",      	"dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec4_float_vertex"),
     64 	("dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec4_fragment",    	"dEQP-GLES2.functional.shaders.operator.geometric.refract.highp_vec4_float_fragment"),
     65 	("dEQP-GLES2.functional.negative_api.texture.copyteximage2d_unequal_width_height_cube",	"dEQP-GLES2.functional.negative_api.texture.copyteximage2d_inequal_width_height_cube"),
     66 	("dEQP-GLES2.functional.negative_api.texture.teximage2d_unequal_width_height_cube",		"dEQP-GLES2.functional.negative_api.texture.teximage2d_inequal_width_height_cube"),
     67 	("dEQP-GLES2.functional.negative_api.vertex_array.draw_arrays",							"dEQP-GLES2.functional.negative_api.vertex_array.draw_arrays_invalid_program"),
     68 	("dEQP-GLES2.functional.negative_api.vertex_array.draw_elemens",						"dEQP-GLES2.functional.negative_api.vertex_array.draw_elements_invalid_program"),
     69 	("dEQP-GLES2.functional.negative_api.shader.attach_shader_invalid_object",				"dEQP-GLES2.functional.negative_api.shader.attach_shader"),
     70 	("dEQP-GLES2.functional.negative_api.shader.detach_shader_invalid_object",				"dEQP-GLES2.functional.negative_api.shader.detach_shader"),
     71 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.1_vertex_lights_no_texture",				"dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.1_vertex_lights_no_texture"),
     72 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.2_vertex_lights_no_texture",             "dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.2_vertex_lights_no_texture"),
     73 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.4_vertex_lights_no_texture",             "dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.4_vertex_lights_no_texture"),
     74 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.1_vertex_lights",                        "dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.1_vertex_lights"),
     75 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.2_vertex_lights",                        "dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.2_vertex_lights"),
     76 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.4_vertex_lights",                        "dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.4_vertex_lights"),
     77 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.1_fragment_lights",                      "dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.1_fragment_lights"),
     78 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.2_fragment_lights",                      "dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.2_fragment_lights"),
     79 	("dEQP-GLES2.usecases.shadow.shadowmap.1sample.4_fragment_lights",                      "dEQP-GLES2.usecases.shadow.shadowmaps.basic_1sample.4_fragment_lights"),
     80 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.1_vertex_lights_no_texture",             "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.1_vertex_lights_no_texture"),
     81 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.2_vertex_lights_no_texture",             "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.2_vertex_lights_no_texture"),
     82 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.4_vertex_lights_no_texture",             "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.4_vertex_lights_no_texture"),
     83 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.1_vertex_lights",                        "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.1_vertex_lights"),
     84 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.2_vertex_lights",                        "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.2_vertex_lights"),
     85 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.4_vertex_lights",                        "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.4_vertex_lights"),
     86 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.1_fragment_lights",                      "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.1_fragment_lights"),
     87 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.2_fragment_lights",                      "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.2_fragment_lights"),
     88 	("dEQP-GLES2.usecases.shadow.shadowmap.4sample.4_fragment_lights",                      "dEQP-GLES2.usecases.shadow.shadowmaps.basic_4sample.4_fragment_lights"),
     89 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.1_vertex_lights_no_texture",            "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.1_vertex_lights_no_texture"),
     90 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.2_vertex_lights_no_texture",            "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.2_vertex_lights_no_texture"),
     91 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.4_vertex_lights_no_texture",            "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.4_vertex_lights_no_texture"),
     92 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.1_vertex_lights",                       "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.1_vertex_lights"),
     93 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.2_vertex_lights",                       "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.2_vertex_lights"),
     94 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.4_vertex_lights",                       "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.4_vertex_lights"),
     95 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.1_fragment_lights",                     "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.1_fragment_lights"),
     96 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.2_fragment_lights",                     "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.2_fragment_lights"),
     97 	("dEQP-GLES2.usecases.shadow.shadowmap.16sample.4_fragment_lights",                     "dEQP-GLES2.usecases.shadow.shadowmaps.basic_16sample.4_fragment_lights")
     98 ]
     99 
    100 RENAME_LIST_2012_3_2012_4 = [
    101 	("dEQP-GLES2.functional.depth.*",				"dEQP-GLES2.functional.fragment_ops.depth."),
    102 	("dEQP-GLES2.functional.stencil.*",				"dEQP-GLES2.functional.fragment_ops.stencil.")
    103 ]
    104 
    105 def readCaseList (filename):
    106 	f = open(filename, 'r')
    107 	cases = []
    108 	for line in f:
    109 		if line[0:5] == "TEST:":
    110 			cases.append(line[6:].strip())
    111 	f.close()
    112 	return cases
    113 
    114 def isWildcardPattern (pattern):
    115 	return pattern[-1:] == '*'
    116 
    117 # returns (cases, renames)
    118 def renameCases (cases, rename):
    119 	renamedCases	= []
    120 	renamedSet		= set()
    121 	renames			= []
    122 	for case in cases:
    123 		renamed = None
    124 
    125 		for src, dst in rename:
    126 			if isWildcardPattern(src) and case[:len(src)-1] == src[:-1]:
    127 				renamed = dst + case[len(src)-1:]
    128 				break
    129 			elif case == src:
    130 				renamed = dst
    131 				break
    132 
    133 		if renamed != None:
    134 			renames.append((case, renamed))
    135 			case = renamed
    136 
    137 		# It is possible that some later case is renamed to case already seen in the list
    138 		assert not case in renamedSet or renamed != None
    139 		if case not in renamedSet:
    140 			renamedCases.append(case)
    141 			renamedSet.add(case)
    142 
    143 	return (renamedCases, renames)
    144 
    145 # returns (added, removed) lists
    146 def diffCaseLists (old, new):
    147 	added	= []
    148 	removed	= []
    149 
    150 	oldSet = set(old)
    151 	newSet = set(new)
    152 
    153 	# build added list
    154 	for case in new:
    155 		if not case in oldSet:
    156 			added.append(case)
    157 
    158 	# build removed set
    159 	for case in old:
    160 		if not case in newSet:
    161 			removed.append(case)
    162 
    163 	return (added, removed)
    164 
    165 if __name__ == "__main__":
    166 	if len(sys.argv) != 3:
    167 		print "%s [old caselist] [new caselist]" % sys.argv[0]
    168 		sys.exit(-1)
    169 
    170 	oldCases	= readCaseList(sys.argv[1])
    171 	newCases	= readCaseList(sys.argv[2])
    172 	rename		= RENAME_LIST_2012_3_2012_4
    173 
    174 	renamedCases, renameList	= renameCases(oldCases, rename)
    175 	added, removed				= diffCaseLists(renamedCases, newCases)
    176 
    177 #	for src, dst in rename:
    178 #		print "RENAME: %s -> %s" % (src, dst)
    179 
    180 	for case in added:
    181 		print "ADD: %s" % case
    182 
    183 	for src, dst in renameList:
    184 		print "RENAME: %s -> %s" % (src, dst)
    185 
    186 	for case in removed:
    187 		print "REMOVE: %s" % case
    188