Michael Felt <aixto...@felt.demon.nl> added the comment: On 07/01/2019 15:46, STINNER Victor wrote: > STINNER Victor <vstin...@redhat.com> added the comment: > > Since you are getting indentation error, I'm not sure about your test. Can > you please apply the patch below and run again test_eintr? Does it still fail > with PermissionError?
I was clearly a bit blind.. Now with: +490 class FNTLEINTRTest(EINTRBaseTest): +491 def _lock(self, lock_func, lock_name): +492 self.addCleanup(support.unlink, support.TESTFN) +493 code = '\n'.join(( +494 "import fcntl, time", +495 "with open('%s', 'w+b') as f:" % support.TESTFN, +496 " fcntl.%s(f, fcntl.LOCK_EX)" % lock_name, +497 " time.sleep(%s)" % self.sleep_time)) +498 start_time = time.monotonic() +499 proc = self.subprocess(code) +500 with kill_on_error(proc): +501 with open(support.TESTFN, 'w+b') as f: +502 while True: # synchronize the subprocess +503 dt = time.monotonic() - start_time +504 if dt > 60.0: +505 raise Exception("failed to sync child in %.1f sec" % dt) +506 try: +507 lock_func(f, fcntl.LOCK_EX | fcntl.LOCK_NB) +508 lock_func(f, fcntl.LOCK_UN) +509 time.sleep(0.01) +510 except BlockingIOError: +511 break I get - PermissionError - as before. root@x066:[/data/prj/python/python3-3.8]./python -m test -v test_eintr == CPython 3.8.0a0 (heads/master-dirty:b4ea8bb080, Jan 1 2019, 18:24:36) [C] == AIX-1-00C291F54C00-powerpc-32bit big-endian == cwd: /data/prj/python/python3-3.8/build/test_python_3342514 == CPU count: 8 == encodings: locale=ISO8859-1, FS=iso8859-1 Run tests sequentially 0:00:00 [1/1] test_eintr test_all (test.test_eintr.EINTRTests) ... --- run eintr_tester.py --- test_flock (__main__.FNTLEINTRTest) ... ok test_lockf (__main__.FNTLEINTRTest) ... ERROR test_read (__main__.OSEINTRTest) ... ok test_wait (__main__.OSEINTRTest) ... ok test_wait3 (__main__.OSEINTRTest) ... ok test_wait4 (__main__.OSEINTRTest) ... ok test_waitpid (__main__.OSEINTRTest) ... ok test_write (__main__.OSEINTRTest) ... ok test_devpoll (__main__.SelectEINTRTest) ... skipped 'need select.devpoll' test_epoll (__main__.SelectEINTRTest) ... skipped 'need select.epoll' test_kqueue (__main__.SelectEINTRTest) ... skipped 'need select.kqueue' test_poll (__main__.SelectEINTRTest) ... ok test_select (__main__.SelectEINTRTest) ... ok test_sigtimedwait (__main__.SignalEINTRTest) ... ok test_sigwaitinfo (__main__.SignalEINTRTest) ... ok test_accept (__main__.SocketEINTRTest) ... ok test_open (__main__.SocketEINTRTest) ... ok test_os_open (__main__.SocketEINTRTest) ... ok test_recv (__main__.SocketEINTRTest) ... ok test_recvmsg (__main__.SocketEINTRTest) ... ok test_send (__main__.SocketEINTRTest) ... ok test_sendall (__main__.SocketEINTRTest) ... ok test_sendmsg (__main__.SocketEINTRTest) ... ok test_sleep (__main__.TimeEINTRTest) ... ok ====================================================================== ERROR: test_lockf (__main__.FNTLEINTRTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/data/prj/python/git/python3-3.8/Lib/test/eintrdata/eintr_tester.py", line 522, in test_lockf self._lock(fcntl.lockf, "lockf") File "/data/prj/python/git/python3-3.8/Lib/test/eintrdata/eintr_tester.py", line 507, in _lock lock_func(f, fcntl.LOCK_EX | fcntl.LOCK_NB) PermissionError: [Errno 13] Permission denied ---------------------------------------------------------------------- Ran 24 tests in 9.098s FAILED (errors=1, skipped=3) --- eintr_tester.py completed: exit code 1 --- FAIL ====================================================================== FAIL: test_all (test.test_eintr.EINTRTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/data/prj/python/git/python3-3.8/Lib/test/test_eintr.py", line 31, in test_all self.fail("eintr_tester.py failed") AssertionError: eintr_tester.py failed ---------------------------------------------------------------------- Ran 1 test in 9.674s FAILED (failures=1) test test_eintr failed test_eintr failed == Tests result: FAILURE == > > diff --git a/Lib/test/eintrdata/eintr_tester.py > b/Lib/test/eintrdata/eintr_tester.py > index 25c169bde5..4db5dc9045 100644 > --- a/Lib/test/eintrdata/eintr_tester.py > +++ b/Lib/test/eintrdata/eintr_tester.py > @@ -492,13 +492,13 @@ class FNTLEINTRTest(EINTRBaseTest): > self.addCleanup(support.unlink, support.TESTFN) > code = '\n'.join(( > "import fcntl, time", > - "with open('%s', 'wb') as f:" % support.TESTFN, > + "with open('%s', 'w+b') as f:" % support.TESTFN, > " fcntl.%s(f, fcntl.LOCK_EX)" % lock_name, > " time.sleep(%s)" % self.sleep_time)) > start_time = time.monotonic() > proc = self.subprocess(code) > with kill_on_error(proc): > - with open(support.TESTFN, 'wb') as f: > + with open(support.TESTFN, 'w+b') as f: > while True: # synchronize the subprocess > dt = time.monotonic() - start_time > if dt > 60.0: > > ---------- > > _______________________________________ > Python tracker <rep...@bugs.python.org> > <https://bugs.python.org/issue35633> > _______________________________________ > ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35633> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com