[pypy-commit] pypy py3.5: merge heads

rlamy pypy.commits at gmail.com
Fri Oct 14 06:02:23 EDT 2016


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: py3.5
Changeset: r87779:ed4f8611d06a
Date: 2016-10-14 12:01 +0200
http://bitbucket.org/pypy/pypy/changeset/ed4f8611d06a/

Log:	merge heads

diff --git a/pypy/module/_multiprocessing/interp_semaphore.py b/pypy/module/_multiprocessing/interp_semaphore.py
--- a/pypy/module/_multiprocessing/interp_semaphore.py
+++ b/pypy/module/_multiprocessing/interp_semaphore.py
@@ -519,9 +519,10 @@
         self.count = 0
 
     @unwrap_spec(kind=int, maxvalue=int)
-    def rebuild(space, w_cls, w_handle, kind, maxvalue):
+    def rebuild(space, w_cls, w_handle, kind, maxvalue, w_name):
+        name = space.str_or_None_w(w_name)
         self = space.allocate_instance(W_SemLock, w_cls)
-        self.__init__(space, handle_w(space, w_handle), kind, maxvalue)
+        self.__init__(space, handle_w(space, w_handle), kind, maxvalue, name)
         return space.wrap(self)
 
     def enter(self, space):
diff --git a/pypy/module/_multiprocessing/test/test_semaphore.py b/pypy/module/_multiprocessing/test/test_semaphore.py
--- a/pypy/module/_multiprocessing/test/test_semaphore.py
+++ b/pypy/module/_multiprocessing/test/test_semaphore.py
@@ -35,7 +35,7 @@
         maxvalue = 1
         # the following line gets OSError: [Errno 38] Function not implemented
         # if /dev/shm is not mounted on Linux
-        sem = SemLock(kind, value, maxvalue)
+        sem = SemLock(kind, value, maxvalue, "1", False)
         assert sem.kind == kind
         assert sem.maxvalue == maxvalue
         assert isinstance(sem.handle, int)
@@ -68,7 +68,7 @@
         maxvalue = 1
         # the following line gets OSError: [Errno 38] Function not implemented
         # if /dev/shm is not mounted on Linux
-        sem = SemLock(kind, value, maxvalue)
+        sem = SemLock(kind, value, maxvalue, "2", False)
 
         sem.acquire()
         sem.release()
@@ -88,7 +88,7 @@
         kind = self.SEMAPHORE
         value = 1
         maxvalue = 1
-        sem = SemLock(kind, value, maxvalue)
+        sem = SemLock(kind, value, maxvalue, "3", False)
 
         res = sem.acquire()
         assert res == True
@@ -100,9 +100,9 @@
         kind = self.SEMAPHORE
         value = 1
         maxvalue = 1
-        sem = SemLock(kind, value, maxvalue)
+        sem = SemLock(kind, value, maxvalue, "4", False)
 
-        sem2 = SemLock._rebuild(sem.handle, kind, value)
+        sem2 = SemLock._rebuild(sem.handle, kind, value, "10")
         assert sem.handle == sem2.handle
 
     def test_semaphore_contextmanager(self):
@@ -110,7 +110,7 @@
         kind = self.SEMAPHORE
         value = 1
         maxvalue = 1
-        sem = SemLock(kind, value, maxvalue)
+        sem = SemLock(kind, value, maxvalue, "5", False)
 
         with sem:
             assert sem._count() == 1
diff --git a/pypy/module/posix/interp_scandir.py b/pypy/module/posix/interp_scandir.py
--- a/pypy/module/posix/interp_scandir.py
+++ b/pypy/module/posix/interp_scandir.py
@@ -284,8 +284,11 @@
     @unwrap_spec(follow_symlinks=bool)
     def descr_stat(self, space, __kwonly__, follow_symlinks=True):
         """return stat_result object for the entry; cached per entry"""
-        st = self.get_stat_or_lstat(follow_symlinks)
-        return build_stat_result(self.space, st)
+        try:
+            st = self.get_stat_or_lstat(follow_symlinks)
+        except OSError as e:
+            raise wrap_oserror2(space, e, self.fget_path(space))
+        return build_stat_result(space, st)
 
     def descr_inode(self, space):
         return space.wrap(self.inode)
diff --git a/pypy/module/posix/test/test_scandir.py b/pypy/module/posix/test/test_scandir.py
--- a/pypy/module/posix/test/test_scandir.py
+++ b/pypy/module/posix/test/test_scandir.py
@@ -145,6 +145,7 @@
         assert not d.is_file()
         assert not d.is_dir()
         assert     d.is_symlink()
+        raises(OSError, d.stat)
 
     def test_dir6(self):
         posix = self.posix


More information about the pypy-commit mailing list