[Piglit] [Patch v2] generated_tests: Actually catch exception in os.makedirs
Dylan Baker
baker.dylan.c at gmail.com
Wed Dec 17 15:33:53 PST 2014
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
More information about the Piglit
mailing list