[Piglit] [Patch v2] generated_tests: Actually catch exception in os.makedirs
Dylan Baker
baker.dylan.c at gmail.com
Fri Dec 19 11:40:43 PST 2014
Sorry Mark, in got my in-reply-to and cc flags backwards, I meant to cc
you on this.
On Wednesday, December 17, 2014 03:33:53 PM Dylan Baker wrote:
> Patch b59ff71eb was supposed to fix os.makedirs exceptions, but falls
> short because of a missing else statement that causes all of the caught
> exceptions to fall back to raise.
>
> This corrects, it also pulls the duplicate functions out into a shared
> module.
>
> v2: - remove accidentally included hunk (Mark)
>
> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
> ---
> generated_tests/gen_builtin_packing_tests.py | 9 ++-------
> generated_tests/gen_builtin_uniform_tests.py | 12 +++---------
> generated_tests/gen_builtin_uniform_tests_fp64.py | 12 +++---------
> generated_tests/gen_const_builtin_equal_tests.py | 9 ++-------
> generated_tests/gen_constant_array_size_tests.py | 11 ++---------
> generated_tests/gen_constant_array_size_tests_fp64.py | 11 ++---------
> generated_tests/gen_interpolation_tests.py | 11 ++---------
> generated_tests/gen_non-lvalue_tests.py | 4 ++--
> generated_tests/gen_outerproduct_invalid_params.py | 9 ++-------
> generated_tests/gen_outerproduct_tests.py | 10 +++-------
> generated_tests/gen_shader_bit_encoding_tests.py | 9 ++-------
> generated_tests/gen_shader_image_load_store_tests.py | 10 +++-------
> generated_tests/gen_texture_lod_tests.py | 9 ++-------
> generated_tests/gen_texture_query_lod_tests.py | 9 ++-------
> generated_tests/gen_uniform_initializer_tests.py | 12 +++---------
> generated_tests/generate-cl-store-tests.py | 10 +++-------
> generated_tests/interpolation-qualifier-built-in-variable.py | 9 ++-------
> 17 files changed, 40 insertions(+), 126 deletions(-)
>
> diff --git a/generated_tests/gen_builtin_packing_tests.py b/generated_tests/gen_builtin_packing_tests.py
> index 5ca727a..901f493 100644
> --- a/generated_tests/gen_builtin_packing_tests.py
> +++ b/generated_tests/gen_builtin_packing_tests.py
> @@ -43,6 +43,7 @@ from math import copysign, fabs, fmod, frexp, isinf, isnan, modf
> from numpy import int8, int16, uint8, uint16, uint32, float32
>
> from templates import template_dir
> +from modules import utils
>
> TEMPLATES = template_dir(os.path.basename(os.path.splitext(__file__)[0]))
>
> @@ -1027,13 +1028,7 @@ class ShaderTest(object):
>
> def write_file(self):
> dirname = os.path.dirname(self.filename)
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> with open(self.filename, "w") as f:
> f.write(self.__template.render(func=self.__func_info))
> diff --git a/generated_tests/gen_builtin_uniform_tests.py b/generated_tests/gen_builtin_uniform_tests.py
> index d3a7816..9bb3075 100644
> --- a/generated_tests/gen_builtin_uniform_tests.py
> +++ b/generated_tests/gen_builtin_uniform_tests.py
> @@ -52,6 +52,8 @@ import os
> import os.path
> import sys
>
> +from modules import utils
> +
>
> def compute_offset_and_scale(test_vectors):
> """Compute scale and offset values such that for each result in
> @@ -537,15 +539,7 @@ class ShaderTest(object):
> shader_test += self.make_test()
> filename = self.filename()
> dirname = os.path.dirname(filename)
> -
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> -
> + utils.safe_makedirs(dirname)
> with open(filename, 'w') as f:
> f.write(shader_test)
>
> diff --git a/generated_tests/gen_builtin_uniform_tests_fp64.py b/generated_tests/gen_builtin_uniform_tests_fp64.py
> index cf10c85..23032bd 100644
> --- a/generated_tests/gen_builtin_uniform_tests_fp64.py
> +++ b/generated_tests/gen_builtin_uniform_tests_fp64.py
> @@ -52,6 +52,8 @@ import os
> import os.path
> import sys
>
> +from modules import utils
> +
>
> def compute_offset_and_scale(test_vectors):
> """Compute scale and offset values such that for each result in
> @@ -507,15 +509,7 @@ class ShaderTest(object):
> shader_test += self.make_test()
> filename = self.filename()
> dirname = os.path.dirname(filename)
> -
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> -
> + utils.safe_makedirs(dirname)
> with open(filename, 'w') as f:
> f.write(shader_test)
>
> diff --git a/generated_tests/gen_const_builtin_equal_tests.py b/generated_tests/gen_const_builtin_equal_tests.py
> index 490a591..47a238c 100644
> --- a/generated_tests/gen_const_builtin_equal_tests.py
> +++ b/generated_tests/gen_const_builtin_equal_tests.py
> @@ -25,6 +25,7 @@ import re
> import os
>
> from templates import template_file
> +from modules import utils
>
> TEMPLATE = template_file(os.path.basename(os.path.splitext(__file__)[0]),
> 'template.shader_test.mako')
> @@ -73,13 +74,7 @@ def main():
> """ Main function """
> dirname = os.path.join('spec', 'glsl-1.20', 'execution',
> 'built-in-functions')
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> for test_id, x in enumerate(TEST_VECTORS, start=2):
> # make equal tests
> diff --git a/generated_tests/gen_constant_array_size_tests.py b/generated_tests/gen_constant_array_size_tests.py
> index 906f7c4..c6f75ab 100644
> --- a/generated_tests/gen_constant_array_size_tests.py
> +++ b/generated_tests/gen_constant_array_size_tests.py
> @@ -40,6 +40,7 @@ import optparse
> import os
> import os.path
>
> +from modules import utils
>
> class ParserTest(object):
> """Class used to build a test of a single built-in. This is an
> @@ -198,15 +199,7 @@ class ParserTest(object):
> parser_test += self.make_shader()
> filename = self.filename()
> dirname = os.path.dirname(filename)
> -
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> -
> + utils.safe_makedirs(dirname)
> with open(filename, 'w') as f:
> f.write(parser_test)
>
> diff --git a/generated_tests/gen_constant_array_size_tests_fp64.py b/generated_tests/gen_constant_array_size_tests_fp64.py
> index be1fe09..8d4a785 100644
> --- a/generated_tests/gen_constant_array_size_tests_fp64.py
> +++ b/generated_tests/gen_constant_array_size_tests_fp64.py
> @@ -40,6 +40,7 @@ import optparse
> import os
> import os.path
>
> +from modules import utils
>
> class ParserTest(object):
> """Class used to build a test of a single built-in. This is an
> @@ -199,15 +200,7 @@ class ParserTest(object):
> parser_test += self.make_shader()
> filename = self.filename()
> dirname = os.path.dirname(filename)
> -
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> -
> + utils.safe_makedirs(dirname)
> with open(filename, 'w') as f:
> f.write(parser_test)
>
> diff --git a/generated_tests/gen_interpolation_tests.py b/generated_tests/gen_interpolation_tests.py
> index e839bbc..1700a20 100644
> --- a/generated_tests/gen_interpolation_tests.py
> +++ b/generated_tests/gen_interpolation_tests.py
> @@ -71,6 +71,7 @@ from __future__ import print_function
> import os
>
> from templates import template_file
> +from modules import utils
>
> TEMPLATE = template_file(os.path.basename(os.path.splitext(__file__)[0]),
> 'template.shader_test.mako')
> @@ -267,15 +268,7 @@ class Test(object):
> def generate(self):
> filename = self.filename()
> dirname = os.path.dirname(filename)
> -
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> -
> + utils.safe_makedirs(dirname)
> with open(filename, 'w') as f:
> f.write(TEMPLATE.render(args=self))
>
> diff --git a/generated_tests/gen_non-lvalue_tests.py b/generated_tests/gen_non-lvalue_tests.py
> index 95381f8..8b90353 100644
> --- a/generated_tests/gen_non-lvalue_tests.py
> +++ b/generated_tests/gen_non-lvalue_tests.py
> @@ -26,6 +26,7 @@ import os
> import itertools
>
> from templates import template_dir
> +from modules import utils
>
> TEMPLATES = template_dir(os.path.basename(os.path.splitext(__file__)[0]))
>
> @@ -89,8 +90,7 @@ def all_tests():
>
> def main():
> dirname = os.path.join('spec', 'glsl-1.10', 'compiler', 'expressions')
> - if not os.path.exists(dirname):
> - os.makedirs(dirname)
> + utils.safe_makedirs(dirname)
>
> for args in all_tests():
> generate(dirname, *args)
> diff --git a/generated_tests/gen_outerproduct_invalid_params.py b/generated_tests/gen_outerproduct_invalid_params.py
> index 77807aa..bdf03d6 100644
> --- a/generated_tests/gen_outerproduct_invalid_params.py
> +++ b/generated_tests/gen_outerproduct_invalid_params.py
> @@ -22,6 +22,7 @@ from __future__ import print_function
> import os
>
> from templates import template_file
> +from modules import utils
>
> TEMPLATE = template_file(os.path.basename(os.path.splitext(__file__)[0]),
> 'template.vert.mako')
> @@ -31,13 +32,7 @@ def main():
> """ Generate tests """
> dirname = os.path.join('spec', 'glsl-1.20', 'compiler',
> 'built-in-functions')
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> for type_ in ['int', 'float', 'bool', 'bvec2', 'bvec3', 'bvec4', 'mat2',
> 'mat2x2', 'mat2x3', 'mat2x4', 'mat3', 'mat3x2', 'mat3x3',
> diff --git a/generated_tests/gen_outerproduct_tests.py b/generated_tests/gen_outerproduct_tests.py
> index 9a90e22..42c527b 100644
> --- a/generated_tests/gen_outerproduct_tests.py
> +++ b/generated_tests/gen_outerproduct_tests.py
> @@ -26,6 +26,7 @@ import itertools
> import collections
>
> from templates import template_file
> +from modules import utils
>
> TEMPLATE = template_file(os.path.splitext(os.path.basename(__file__))[0],
> 'template.shader_test.mako')
> @@ -37,13 +38,8 @@ Parameters = collections.namedtuple(
> def main():
> """ Generate tests """
> dirname = os.path.join('spec', 'glsl-1.20', 'execution')
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
> +
>
> for c, r in itertools.product(xrange(2, 5), repeat=2):
> vecs = [
> diff --git a/generated_tests/gen_shader_bit_encoding_tests.py b/generated_tests/gen_shader_bit_encoding_tests.py
> index ded3a78..4656755 100644
> --- a/generated_tests/gen_shader_bit_encoding_tests.py
> +++ b/generated_tests/gen_shader_bit_encoding_tests.py
> @@ -27,6 +27,7 @@ import os
> from operator import neg
>
> from templates import template_file
> +from modules import utils
>
> TEMPLATE = template_file(os.path.basename(os.path.splitext(__file__)[0]),
> 'template.shader_test.mako')
> @@ -139,13 +140,7 @@ def main():
>
> dirname = os.path.join('spec', api.lower(), 'execution',
> 'built-in-functions')
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> for func, attrib in FUNCS.iteritems():
> for execution_stage in ('vs', 'fs'):
> diff --git a/generated_tests/gen_shader_image_load_store_tests.py b/generated_tests/gen_shader_image_load_store_tests.py
> index 6084659..1ffa078 100644
> --- a/generated_tests/gen_shader_image_load_store_tests.py
> +++ b/generated_tests/gen_shader_image_load_store_tests.py
> @@ -26,6 +26,8 @@ import os.path
> from mako.template import Template
> from textwrap import dedent
>
> +from modules import utils
> +
>
> def gen_header(status):
> """
> @@ -143,13 +145,7 @@ def gen(name, src, tests):
> print(filename)
>
> dirname = os.path.dirname(filename)
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> with open(filename, 'w') as f:
> f.write(template.render(header = gen_header, **t))
> diff --git a/generated_tests/gen_texture_lod_tests.py b/generated_tests/gen_texture_lod_tests.py
> index 52f5870..53b2568 100644
> --- a/generated_tests/gen_texture_lod_tests.py
> +++ b/generated_tests/gen_texture_lod_tests.py
> @@ -25,6 +25,7 @@ import os
> import collections
>
> from templates import template_dir
> +from modules import utils
>
> TEMPLATES = template_dir(os.path.basename(os.path.splitext(__file__)[0]))
>
> @@ -75,13 +76,7 @@ def main():
>
> """
> dirname = 'spec/arb_shader_texture_lod/compiler'
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> for params in LOD_TESTS:
> name = os.path.join(
> diff --git a/generated_tests/gen_texture_query_lod_tests.py b/generated_tests/gen_texture_query_lod_tests.py
> index 886ca60..c786a10 100644
> --- a/generated_tests/gen_texture_query_lod_tests.py
> +++ b/generated_tests/gen_texture_query_lod_tests.py
> @@ -26,6 +26,7 @@ import os
> import os.path
>
> from templates import template_file
> +from modules import utils
>
> TEMPLATE = template_file(os.path.basename(os.path.splitext(__file__)[0]),
> 'template.glsl_parser_test.mako')
> @@ -85,13 +86,7 @@ def main():
> lod = 'Lod' if api == 'glsl-4.00' else 'LOD'
> dirname = os.path.join("spec", api.lower(), "compiler",
> "built-in-functions")
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> for sampler_type, coord_type in SAMPLER_TYPE_TO_COORD_TYPE.iteritems():
> requirements = [requirement['extensions']] if requirement['extensions'] else []
> diff --git a/generated_tests/gen_uniform_initializer_tests.py b/generated_tests/gen_uniform_initializer_tests.py
> index fc5e0bb..1605876 100644
> --- a/generated_tests/gen_uniform_initializer_tests.py
> +++ b/generated_tests/gen_uniform_initializer_tests.py
> @@ -25,6 +25,7 @@ from __future__ import print_function
> import os
>
> from templates import template_dir
> +from modules import utils
>
> TEMPLATES = template_dir(os.path.splitext(os.path.basename(__file__))[0])
>
> @@ -77,13 +78,7 @@ def generate_tests(type_list, base_name, major, minor):
> 'glsl-{0}.{1}'.format(major, minor),
> 'execution',
> 'uniform-initializer')
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> for target in ("vs", "fs"):
> for t in ALL_TEMPLATES:
> @@ -138,8 +133,7 @@ def generate_array_tests(type_list, base_name, major, minor):
> 'glsl-{0}.{1}'.format(major, minor),
> 'execution',
> 'uniform-initializer')
> - if not os.path.exists(dirname):
> - os.makedirs(dirname)
> + utils.safe_makedirs(dirname)
>
> def parts():
> """Generate parts."""
> diff --git a/generated_tests/generate-cl-store-tests.py b/generated_tests/generate-cl-store-tests.py
> index f68637e..586c4f0 100644
> --- a/generated_tests/generate-cl-store-tests.py
> +++ b/generated_tests/generate-cl-store-tests.py
> @@ -26,17 +26,13 @@
> import os
> import textwrap
>
> +from modules import utils
> +
> TYPES = ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'long', 'ulong', 'float', 'double']
> VEC_SIZES = ['', '2', '4', '8', '16']
>
> dirName = os.path.join("cl", "store")
> -if not os.path.exists(dirName):
> - try:
> - os.makedirs(dirName)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> +utils.safe_makedirs(dirname)
>
>
> def gen_array(size):
> diff --git a/generated_tests/interpolation-qualifier-built-in-variable.py b/generated_tests/interpolation-qualifier-built-in-variable.py
> index 9b551e0..45fc42c 100644
> --- a/generated_tests/interpolation-qualifier-built-in-variable.py
> +++ b/generated_tests/interpolation-qualifier-built-in-variable.py
> @@ -28,6 +28,7 @@ import os
> import itertools
>
> from templates import template_dir
> +from modules import utils
>
> TEMPLATES = template_dir(os.path.basename(os.path.splitext(__file__)[0]))
>
> @@ -171,13 +172,7 @@ def main():
> """main function."""
> dirname = os.path.join('spec', 'glsl-1.30', 'linker',
> 'interpolation-qualifiers')
> - if not os.path.exists(dirname):
> - try:
> - os.makedirs(dirname)
> - except OSError as e:
> - if e.errno == 17: # file exists
> - pass
> - raise
> + utils.safe_makedirs(dirname)
>
> for fs_mode, vs_mode in itertools.product(INTERPOLATION_MODES, repeat=2):
> make_fs_vs_tests(fs_mode, vs_mode, dirname)
> --
> 2.2.0
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20141219/0d031a4f/attachment-0001.sig>
More information about the Piglit
mailing list