#!/usr/bin/env python # Copyright (c) 2019 The Khronos Group Inc. # Use of this source code is governed by an MIT-style license that can be # found in the LICENSE.txt file. """ Generator for texturefilter* tests. This file needs to be run in its folder. """ import sys _DO_NOT_EDIT_WARNING = """ """ _HTML_TEMPLATE = """ WebGL Texture Filtering Tests
""" _FILTERABLE_FORMAT_COUNT = 10 _SIZE_2D_COUNT = 6 _SIZE_CUBE_COUNT = 5 _SIZE_2D_ARRAY_COUNT = 5 _SIZE_3D_COUNT = 5 _MIN_FILTER_MODE_COUNT = 6 _MAG_FILTER_MODE_COUNT = 2 _WRAP_MODE_COUNT = 3 _GROUPS = [ '2d_formats', '2d_sizes', '2d_combinations', 'cube_formats', 'cube_sizes', 'cube_combinations', 'cube_no_edges_visible', '2d_array_formats', '2d_array_sizes', '2d_array_combinations', '3d_formats', '3d_sizes', '3d_combinations' ] _GROUP_TEST_COUNTS = [ _FILTERABLE_FORMAT_COUNT, # 2d_formats _SIZE_2D_COUNT, # 2d_sizes _MIN_FILTER_MODE_COUNT, # 2d_combinations _FILTERABLE_FORMAT_COUNT, # cube_formats _SIZE_CUBE_COUNT, # cube_sizes _MIN_FILTER_MODE_COUNT, # cube_combinations 1, # cube_no_edges_visible _FILTERABLE_FORMAT_COUNT, # 2d_array_formats _SIZE_2D_ARRAY_COUNT, # 2d_array_sizes _MIN_FILTER_MODE_COUNT, # 2d_array_combinations _FILTERABLE_FORMAT_COUNT, # 3d_formats _SIZE_3D_COUNT, # 3d_sizes, _MIN_FILTER_MODE_COUNT * _MAG_FILTER_MODE_COUNT * _WRAP_MODE_COUNT, # 3d_combinations ] def GenerateFilename(group, count, index): """Generate test filename.""" assert index >= 0 and index < count filename = group if count > 1: index_str = str(index) if index < 10: index_str = "0" + index_str filename += "_" + index_str filename += ".html" return filename def WriteTest(filename, start, end): """Write one test.""" file = open(filename, "wb") file.write(_DO_NOT_EDIT_WARNING) file.write(_HTML_TEMPLATE % { 'start': start, 'end': end }) file.close def GenerateTests(): """Generate all tests.""" assert len(_GROUPS) == len(_GROUP_TEST_COUNTS) test_index = 0 filelist = [] for ii in range(len(_GROUPS)): group = _GROUPS[ii] count = _GROUP_TEST_COUNTS[ii] for index in range(count): filename = GenerateFilename(group, count, index) filelist.append(filename) WriteTest(filename, test_index, test_index + 1) test_index += 1 return filelist def GenerateTestList(filelist): file = open("00_test_list.txt", "wb") file.write('\n'.join(filelist)) file.close def main(argv): """This is the main function.""" filelist = GenerateTests() GenerateTestList(filelist) if __name__ == '__main__': sys.exit(main(sys.argv[1:]))