[Piglit] [Patch v2] generated_tests: Actually catch exception in os.makedirs
Dylan Baker
baker.dylan.c at gmail.com
Fri Dec 19 12:46:14 PST 2014
Sigh.
Well, the good news is I just forgot to check it in and it's sitting
safe and sound in my tree.
I'll send a v3.
On Friday, December 19, 2014 12:42:11 PM Mark Janes wrote:
> It looks like this patch omits the utils.py module which is being
> called.
>
> This would have been hard to spot in a build-test, because the pyc from
> your previous patch was still in place.
>
> -Mark
> Dylan Baker <baker.dylan.c at gmail.com> writes:
>
> > 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
> >
> > _______________________________________________
> > Piglit mailing list
> > Piglit at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/piglit
-------------- 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/474b6c04/attachment-0001.sig>
More information about the Piglit
mailing list