compiler/glsl: close fd's in glcpp_test.py
authorDylan Baker <dylan@pnwbakers.com>
Thu, 19 Apr 2018 18:02:32 +0000 (11:02 -0700)
committerDylan Baker <dylan@pnwbakers.com>
Mon, 23 Apr 2018 16:55:17 +0000 (09:55 -0700)
I would have thought falling out of scope would allow the gc to collect
these, but apparently it doesn't, and this hits an fd limit on macos.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106133
Fixes: db8cd8e36771eed98eb638fd0593c978c3da52a9
       ("glcpp/tests: Convert shell scripts to a python script")
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Vinson Lee <vlee@freedesktop.org>
src/compiler/glsl/glcpp/tests/glcpp_test.py

index f07c2414ea2b5acd878500d9d7851de650ae9a72..cdc63b3ac2a0d6595829e26608f55ecabefc0647 100755 (executable)
@@ -78,7 +78,8 @@ def _valgrind(glcpp, filename):
     extra_args = parse_test_file(filename, nl_format='\n')
 
     try:
-        _, tmpfile = tempfile.mkstemp()
+        fd, tmpfile = tempfile.mkstemp()
+        os.close(fd)
         with open(filename, 'rb') as f:
             proc = subprocess.Popen(
                 ['valgrind', '--error-exitcode=31', '--log-file', tmpfile, glcpp] + extra_args,
@@ -135,7 +136,8 @@ def _replace_test(args, replace):
         total += 1
         testfile = os.path.join(args.testdir, filename)
         try:
-            _, tmpfile = tempfile.mkstemp()
+            fd, tmpfile = tempfile.mkstemp()
+            os.close(fd)
             with io.open(testfile, 'rt') as f:
                 contents = f.read()
             with io.open(tmpfile, 'wt') as f: