Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-38870: refactor delimiting with context managers #17612

Merged
merged 6 commits into from Dec 23, 2019

Conversation

@isidentical
Copy link
Contributor

isidentical commented Dec 15, 2019

Lib/ast.py Outdated Show resolved Hide resolved
Lib/ast.py Outdated Show resolved Hide resolved
Copy link
Member

vstinner left a comment

Apart open questions to related to https://bugs.python.org/issue39069, this PR looks good to me.

@isidentical: Are you interested to measure the overhead of functools/enum imports/code? See https://bugs.python.org/issue39069#msg358498

@isidentical

This comment has been minimized.

Copy link
Contributor Author

isidentical commented Dec 16, 2019

@isidentical

This comment has been minimized.

Copy link
Contributor Author

isidentical commented Dec 16, 2019

Oh, looks like @pablogsal already assigned.

@vstinner

This comment has been minimized.

Copy link
Member

vstinner commented Dec 16, 2019

Yes but currently I can only reply through mail because bpo logins with google doesnt work.

Oh, I didn't know: I reported this issue at python/bugs.python.org#41

Copy link
Member

vstinner left a comment

I would prefer to only not delimit() if the delimiter is always written, like in a function call or item[index].

Lib/ast.py Outdated Show resolved Hide resolved
Lib/ast.py Show resolved Hide resolved
Lib/ast.py Outdated
self.fill(def_str)
self.traverse(node.args)
self.write(")")
with self.delimit("()"):

This comment has been minimized.

Copy link
@vstinner

vstinner Dec 16, 2019

Member

Wait. I'm not sure about this one. Are you going to omit parenthesis here sometimes?

The change is correct, but direct write() calls are maybe better.

Lib/ast.py Outdated
lambda: self.write(", "), write_item, zip(node.keys, node.values)
)
self.write("}")
with self.delimit("{}"):

This comment has been minimized.

Copy link
@vstinner

vstinner Dec 16, 2019

Member

Same here, I'm not convince thta delimit() makes the code more readable.

Lib/ast.py Outdated
else:
self.interleave(lambda: self.write(", "), self.traverse, node.elts)
self.write(")")
with self.delimit("()"):

This comment has been minimized.

Copy link
@vstinner

vstinner Dec 16, 2019

Member

Is delim() useful here?

Lib/ast.py Outdated
comma = True
self.traverse(e)
self.write(")")
with self.delimit("()"):

This comment has been minimized.

Copy link
@vstinner

vstinner Dec 16, 2019

Member

Same question here.

Lib/ast.py Outdated
self.write("[")
self.traverse(node.slice)
self.write("]")
with self.delimit("[]"):

This comment has been minimized.

Copy link
@vstinner

vstinner Dec 16, 2019

Member

and here

Co-Authored-By: Victor Stinner <vstinner@python.org>
@isidentical

This comment has been minimized.

Copy link
Contributor Author

isidentical commented Dec 17, 2019

@vstinner a general answer, I used delim in everywhere we are using brackets for the sake of consistency. If it looks better without them, I can just revert back in few places.

Copy link
Member

vstinner left a comment

@pablogsal: Do you prefer to only use delim() when parenthesis can be optional, or are you fine with replacing all write(x) ... write(y) with "with delim(xy): ..."?

@pablogsal

This comment has been minimized.

Copy link
Member

pablogsal commented Dec 23, 2019

or are you fine with replacing all write(x) ... write(y) with "with delim(xy): ..."?

I am fine with replacing all write(x) ... write(y) with with delim(xy) if that is what you prefer. I am of the same opinion that is not clear to me that it produces clearer code in all cases.

Lib/ast.py Show resolved Hide resolved
@pablogsal pablogsal added the skip news label Dec 23, 2019
Copy link
Member

pablogsal left a comment

Almost there! I left some comments (will maybe leave more on a second pass).

@bedevere-bot

This comment has been minimized.

Copy link

bedevere-bot commented Dec 23, 2019

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

@isidentical

This comment has been minimized.

Copy link
Contributor Author

isidentical commented Dec 23, 2019

I have made the requested changes; please review again

@bedevere-bot

This comment has been minimized.

Copy link

bedevere-bot commented Dec 23, 2019

Thanks for making the requested changes!

@pablogsal: please review the changes made to this pull request.

@bedevere-bot bedevere-bot requested a review from pablogsal Dec 23, 2019
Lib/ast.py Outdated Show resolved Hide resolved
Lib/ast.py Show resolved Hide resolved
Copy link
Member

pablogsal left a comment

LGTM

@pablogsal

This comment has been minimized.

Copy link
Member

pablogsal commented Dec 23, 2019

I am going to land this one to unblock the rest of the work. @vstinner, we can move the discussion about the readability of the code that you mention to the issue or another PR 😉

@pablogsal pablogsal merged commit 4b3b122 into python:master Dec 23, 2019
8 checks passed
8 checks passed
Windows (x86)
Details
Windows (x64)
Details
macOS
Details
Ubuntu
Details
Azure Pipelines PR #20191223.15 succeeded
Details
bedevere/issue-number Issue number 38870 found
Details
bedevere/news "skip news" label found
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@pablogsal

This comment has been minimized.

Copy link
Member

pablogsal commented Dec 23, 2019

Thanks for the PR @isidentical! 🎉

@bedevere-bot

This comment has been minimized.

Copy link

bedevere-bot commented Dec 23, 2019

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 FreeBSD Shared 3.x has failed when building commit 4b3b122.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/152/builds/86) and take a look at the build logs.
  4. Check if the failure is related to this commit (4b3b122) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/152/builds/86

Summary of the results of the build (if available):

== Tests result: ENV CHANGED ==

399 tests OK.

10 slowest tests:

  • test_tokenize: 8 min 44 sec
  • test_unparse: 6 min 9 sec
  • test_lib2to3: 6 min 7 sec
  • test_concurrent_futures: 5 min 18 sec
  • test_multiprocessing_spawn: 5 min 3 sec
  • test_multiprocessing_forkserver: 4 min 4 sec
  • test_asyncio: 3 min 40 sec
  • test_capi: 3 min 38 sec
  • test_multiprocessing_fork: 3 min 37 sec
  • test_subprocess: 3 min 18 sec

1 test altered the execution environment:
test_multiprocessing_spawn

20 tests skipped:
test_dbm_gnu test_devpoll test_epoll test_gdb test_idle test_ioctl
test_msilib test_ossaudiodev test_spwd test_startfile test_tcl
test_tix test_tk test_ttk_guionly test_ttk_textonly test_turtle
test_winconsoleio test_winreg test_winsound test_zipfile64

Total duration: 30 min 40 sec

Click to see traceback logs
remote: Enumerating objects: 4, done.        
remote: Counting objects:  25% (1/4)        
remote: Counting objects:  50% (2/4)        
remote: Counting objects:  75% (3/4)        
remote: Counting objects: 100% (4/4)        
remote: Counting objects: 100% (4/4), done.        
remote: Compressing objects:  50% (1/2)        
remote: Compressing objects: 100% (2/2)        
remote: Compressing objects: 100% (2/2), done.        
remote: Total 4 (delta 2), reused 3 (delta 2), pack-reused 0        
From https://github.com/python/cpython
 * branch                  master     -> FETCH_HEAD
Reset branch 'master'

test_tix skipped -- No module named '_tkinter'
test_spwd skipped -- No module named 'spwd'
test_epoll skipped -- test works only on Linux 2.6
test_tk skipped -- No module named '_tkinter'
test_tcl skipped -- No module named '_tkinter'
test_dbm_gnu skipped -- No module named '_gdbm'
test_winconsoleio skipped -- test only relevant on win32
test_idle skipped -- No module named '_tkinter'
/usr/home/buildbot/python/3.x.koobs-freebsd-564d/build/Lib/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 1 leaked shared_memory objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '
/usr/home/buildbot/python/3.x.koobs-freebsd-564d/build/Lib/multiprocessing/resource_tracker.py:229: UserWarning: resource_tracker: '/psm_7545d92b': [Errno 2] No such file or directory: '/psm_7545d92b'
  warnings.warn('resource_tracker: %r: %s' % (name, e))
test_ttk_textonly skipped -- No module named '_tkinter'
test_devpoll skipped -- test works only on Solaris OS family
test_turtle skipped -- No module named '_tkinter'
test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run
test_startfile skipped -- object <module 'os' from '/usr/home/buildbot/python/3.x.koobs-freebsd-564d/build/Lib/os.py'> has no attribute 'startfile'
test_winsound skipped -- No module named 'winsound'
test_ttk_guionly skipped -- No module named '_tkinter'
stty: stdin isn't a terminal
test_msilib skipped -- No module named '_msi'
test_ioctl skipped -- Unable to open /dev/tty
test_gdb skipped -- Couldn't find gdb on the path
test_flock (__main__.FNTLEINTRTest) ... ok
test_lockf (__main__.FNTLEINTRTest) ... ok
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) ... ok
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

----------------------------------------------------------------------
Ran 24 tests in 14.677s

OK (skipped=2)
test_ossaudiodev skipped -- [Errno 2] No such file or directory: '/dev/dsp'
/usr/home/buildbot/python/3.x.koobs-freebsd-564d/build/Lib/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 1 leaked shared_memory objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '
/usr/home/buildbot/python/3.x.koobs-freebsd-564d/build/Lib/multiprocessing/resource_tracker.py:229: UserWarning: resource_tracker: '/psm_8861a3e3': [Errno 2] No such file or directory: '/psm_8861a3e3'
  warnings.warn('resource_tracker: %r: %s' % (name, e))
test_winreg skipped -- No module named 'winreg'
/usr/home/buildbot/python/3.x.koobs-freebsd-564d/build/Lib/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 1 leaked shared_memory objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '
/usr/home/buildbot/python/3.x.koobs-freebsd-564d/build/Lib/multiprocessing/resource_tracker.py:229: UserWarning: resource_tracker: '/psm_873141db': [Errno 2] No such file or directory: '/psm_873141db'
  warnings.warn('resource_tracker: %r: %s' % (name, e))
test__all__ (test.test_multiprocessing_spawn.MiscTestCase) ... ok
test_answer_challenge_auth_failure (test.test_multiprocessing_spawn.OtherTest) ... ok
test_deliver_challenge_auth_failure (test.test_multiprocessing_spawn.OtherTest) ... ok
test_closefd (test.test_multiprocessing_spawn.TestCloseFds) ... ok
test_flags (test.test_multiprocessing_spawn.TestFlags) ... ok
test_lock (test.test_multiprocessing_spawn.TestForkAwareThreadLock) ... ok
test_ignore (test.test_multiprocessing_spawn.TestIgnoreEINTR) ... ok
test_ignore_listener (test.test_multiprocessing_spawn.TestIgnoreEINTR) ... ok
test_manager_initializer (test.test_multiprocessing_spawn.TestInitializers) ... ok
test_pool_initializer (test.test_multiprocessing_spawn.TestInitializers) ... ok
test_invalid_family (test.test_multiprocessing_spawn.TestInvalidFamily) ... ok
test_invalid_family_win32 (test.test_multiprocessing_spawn.TestInvalidFamily) ... skipped 'skipped on non-Windows platforms'
test_invalid_handles (test.test_multiprocessing_spawn.TestInvalidHandle) ... ok
test_noforkbomb (test.test_multiprocessing_spawn.TestNoForkBomb) ... ok
test_release_unused_processes (test.test_multiprocessing_spawn.TestPoolNotLeakOnFailure) ... ok
test_resource_tracker (test.test_multiprocessing_spawn.TestResourceTracker) ... ok
test_resource_tracker_reused (test.test_multiprocessing_spawn.TestResourceTracker) ... ok
test_resource_tracker_sigint (test.test_multiprocessing_spawn.TestResourceTracker) ... ok
test_resource_tracker_sigkill (test.test_multiprocessing_spawn.TestResourceTracker) ... ok
test_resource_tracker_sigterm (test.test_multiprocessing_spawn.TestResourceTracker) ... ok
test_empty (test.test_multiprocessing_spawn.TestSimpleQueue) ... ok
test_context (test.test_multiprocessing_spawn.TestStartMethod) ... ok
test_get_all (test.test_multiprocessing_spawn.TestStartMethod) ... ok
test_preload_resources (test.test_multiprocessing_spawn.TestStartMethod) ... skipped "test only relevant for 'forkserver' method"
test_set_get (test.test_multiprocessing_spawn.TestStartMethod) ... ok
test_flushing (test.test_multiprocessing_spawn.TestStdinBadfiledescriptor) ... ok
test_pool_in_process (test.test_multiprocessing_spawn.TestStdinBadfiledescriptor) ... ok
test_queue_in_process (test.test_multiprocessing_spawn.TestStdinBadfiledescriptor) ... ok
test_array (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_barrier (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_bounded_semaphore (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_condition (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_dict (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_event (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_joinable_queue (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_list (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_lock (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_namespace (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_pool (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_queue (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_rlock (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_semaphore (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_value (test.test_multiprocessing_spawn.TestSyncManagerTypes) ... ok
test_timeout (test.test_multiprocessing_spawn.TestTimeouts) ... ok
test_neg_timeout (test.test_multiprocessing_spawn.TestWait) ... ok
test_wait (test.test_multiprocessing_spawn.TestWait) ... ok
test_wait_integer (test.test_multiprocessing_spawn.TestWait) ... ok
test_wait_slow (test.test_multiprocessing_spawn.TestWait) ... ok
test_wait_socket (test.test_multiprocessing_spawn.TestWait) ... ok
test_wait_socket_slow (test.test_multiprocessing_spawn.TestWait) ... ok
test_wait_timeout (test.test_multiprocessing_spawn.TestWait) ... ok
test_abort (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_abort_and_reset (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_action (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_barrier (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_barrier_10 (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_default_timeout (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_reset (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_single_thread (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_thousand (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... skipped 'test not appropriate for manager'
test_timeout (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_wait_return (test.test_multiprocessing_spawn.WithManagerTestBarrier) ... ok
test_notify (test.test_multiprocessing_spawn.WithManagerTestCondition) ... ok
test_notify_all (test.test_multiprocessing_spawn.WithManagerTestCondition) ... ok
test_notify_n (test.test_multiprocessing_spawn.WithManagerTestCondition) ... ok
test_timeout (test.test_multiprocessing_spawn.WithManagerTestCondition) ... ok
test_wait_result (test.test_multiprocessing_spawn.WithManagerTestCondition) ... ok
test_waitfor (test.test_multiprocessing_spawn.WithManagerTestCondition) ... ok
test_waitfor_timeout (test.test_multiprocessing_spawn.WithManagerTestCondition) ... ok
test_dict (test.test_multiprocessing_spawn.WithManagerTestContainers) ... ok
test_dict_iter (test.test_multiprocessing_spawn.WithManagerTestContainers) ... ok
test_dict_proxy_nested (test.test_multiprocessing_spawn.WithManagerTestContainers) ... ok
test_list (test.test_multiprocessing_spawn.WithManagerTestContainers) ... ok
test_list_iter (test.test_multiprocessing_spawn.WithManagerTestContainers) ... ok
test_list_proxy_in_list (test.test_multiprocessing_spawn.WithManagerTestContainers) ... ok
test_namespace (test.test_multiprocessing_spawn.WithManagerTestContainers) ... ok
test_event (test.test_multiprocessing_spawn.WithManagerTestEvent) ... ok
test_lock (test.test_multiprocessing_spawn.WithManagerTestLock) ... ok
test_lock_context (test.test_multiprocessing_spawn.WithManagerTestLock) ... ok
test_rlock (test.test_multiprocessing_spawn.WithManagerTestLock) ... ok
test_rapid_restart (test.test_multiprocessing_spawn.WithManagerTestManagerRestart) ... ok
test_mymanager (test.test_multiprocessing_spawn.WithManagerTestMyManager) ... ok
test_mymanager_context (test.test_multiprocessing_spawn.WithManagerTestMyManager) ... ok
test_mymanager_context_prestarted (test.test_multiprocessing_spawn.WithManagerTestMyManager) ... ok
test_apply (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_async (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_async_timeout (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_context (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_empty_iterable (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_enter (test.test_multiprocessing_spawn.WithManagerTestPool) ... skipped 'test not applicable to manager'
test_imap (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_imap_handle_iterable_exception (test.test_multiprocessing_spawn.WithManagerTestPool) ... skipped 'test not appropriate for manager'
test_imap_unordered (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_imap_unordered_handle_iterable_exception (test.test_multiprocessing_spawn.WithManagerTestPool) ... skipped 'test not appropriate for manager'
test_make_pool (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_map (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_map_async (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_map_async_callbacks (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_map_chunksize (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_map_handle_iterable_exception (test.test_multiprocessing_spawn.WithManagerTestPool) ... skipped 'test not appropriate for manager'
test_map_no_failfast (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_map_unplicklable (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_release_task_refs (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_resource_warning (test.test_multiprocessing_spawn.WithManagerTestPool) ... skipped 'test not applicable to manager'
test_starmap (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_starmap_async (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_terminate (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_traceback (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_wrapped_exception (test.test_multiprocessing_spawn.WithManagerTestPool) ... ok
test_closed_queue_put_get_exceptions (test.test_multiprocessing_spawn.WithManagerTestQueue) ... ok
test_fork (test.test_multiprocessing_spawn.WithManagerTestQueue) ... ok
test_get (test.test_multiprocessing_spawn.WithManagerTestQueue) ... ok
test_no_import_lock_contention (test.test_multiprocessing_spawn.WithManagerTestQueue) ... ok
test_put (test.test_multiprocessing_spawn.WithManagerTestQueue) ... ok
test_qsize (test.test_multiprocessing_spawn.WithManagerTestQueue) ... ok
test_queue_feeder_donot_stop_onexc (test.test_multiprocessing_spawn.WithManagerTestQueue) ... skipped 'test not appropriate for manager'
test_queue_feeder_on_queue_feeder_error (test.test_multiprocessing_spawn.WithManagerTestQueue) ... skipped 'test not appropriate for manager'
test_task_done (test.test_multiprocessing_spawn.WithManagerTestQueue) ... ok
test_timeout (test.test_multiprocessing_spawn.WithManagerTestQueue) ... ok
test_remote (test.test_multiprocessing_spawn.WithManagerTestRemoteManager) ... ok
test_bounded_semaphore (test.test_multiprocessing_spawn.WithManagerTestSemaphore) ... ok
test_semaphore (test.test_multiprocessing_spawn.WithManagerTestSemaphore) ... ok
test_timeout (test.test_multiprocessing_spawn.WithManagerTestSemaphore) ... skipped 'test not appropriate for manager'
test_array (test.test_multiprocessing_spawn.WithProcessesTestArray) ... ok
test_array_from_size (test.test_multiprocessing_spawn.WithProcessesTestArray) ... ok
test_getobj_getlock_obj (test.test_multiprocessing_spawn.WithProcessesTestArray) ... ok
test_rawarray (test.test_multiprocessing_spawn.WithProcessesTestArray) ... ok
test_abort (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_abort_and_reset (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_action (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_barrier (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_barrier_10 (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_default_timeout (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_reset (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_single_thread (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_thousand (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_timeout (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_wait_return (test.test_multiprocessing_spawn.WithProcessesTestBarrier) ... ok
test_notify (test.test_multiprocessing_spawn.WithProcessesTestCondition) ... ok
test_notify_all (test.test_multiprocessing_spawn.WithProcessesTestCondition) ... ok
test_notify_n (test.test_multiprocessing_spawn.WithProcessesTestCondition) ... ok
test_timeout (test.test_multiprocessing_spawn.WithProcessesTestCondition) ... ok
test_wait_result (test.test_multiprocessing_spawn.WithProcessesTestCondition) ... ok
test_waitfor (test.test_multiprocessing_spawn.WithProcessesTestCondition) ... ok
test_waitfor_timeout (test.test_multiprocessing_spawn.WithProcessesTestCondition) ... ok
test_connection (test.test_multiprocessing_spawn.WithProcessesTestConnection) ... ok
test_context (test.test_multiprocessing_spawn.WithProcessesTestConnection) ... ok
test_duplex_false (test.test_multiprocessing_spawn.WithProcessesTestConnection) ... ok
test_fd_transfer (test.test_multiprocessing_spawn.WithProcessesTestConnection) ... ok
test_large_fd_transfer (test.test_multiprocessing_spawn.WithProcessesTestConnection) ... ok
test_missing_fd_transfer (test.test_multiprocessing_spawn.WithProcessesTestConnection) ... ok
test_sendbytes (test.test_multiprocessing_spawn.WithProcessesTestConnection) ... ok
test_spawn_close (test.test_multiprocessing_spawn.WithProcessesTestConnection) ... ok
test_event (test.test_multiprocessing_spawn.WithProcessesTestEvent) ... ok
test_finalize (test.test_multiprocessing_spawn.WithProcessesTestFinalize) ... ok
test_thread_safety (test.test_multiprocessing_spawn.WithProcessesTestFinalize) ... ok
test_free_from_gc (test.test_multiprocessing_spawn.WithProcessesTestHeap) ... ok
test_heap (test.test_multiprocessing_spawn.WithProcessesTestHeap) ... ok
test_context (test.test_multiprocessing_spawn.WithProcessesTestListener) ... ok
test_multiple_bind (test.test_multiprocessing_spawn.WithProcessesTestListener) ... ok
test_issue14725 (test.test_multiprocessing_spawn.WithProcessesTestListenerClient) ... ok
test_issue16955 (test.test_multiprocessing_spawn.WithProcessesTestListenerClient) ... ok
test_listener_client (test.test_multiprocessing_spawn.WithProcessesTestListenerClient) ... ok
test_lock (test.test_multiprocessing_spawn.WithProcessesTestLock) ... ok
test_lock_context (test.test_multiprocessing_spawn.WithProcessesTestLock) ... ok
test_rlock (test.test_multiprocessing_spawn.WithProcessesTestLock) ... ok
test_enable_logging (test.test_multiprocessing_spawn.WithProcessesTestLogging) ... ok
test_level (test.test_multiprocessing_spawn.WithProcessesTestLogging) ... ok
test_rapid_restart (test.test_multiprocessing_spawn.WithProcessesTestManagerRestart) ... ok
test_access (test.test_multiprocessing_spawn.WithProcessesTestPicklingConnections) ... ok
test_pickling (test.test_multiprocessing_spawn.WithProcessesTestPicklingConnections) ... ok
test_boundaries (test.test_multiprocessing_spawn.WithProcessesTestPoll) ... ok
test_dont_merge (test.test_multiprocessing_spawn.WithProcessesTestPoll) ... ok
test_empty_string (test.test_multiprocessing_spawn.WithProcessesTestPoll) ... ok
test_strings (test.test_multiprocessing_spawn.WithProcessesTestPoll) ... ok
test_poll_eintr (test.test_multiprocessing_spawn.WithProcessesTestPollEintr) ... ok
test_apply (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_async (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_async_timeout (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_context (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_empty_iterable (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_enter (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_imap (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_imap_handle_iterable_exception (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_imap_unordered (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_imap_unordered_handle_iterable_exception (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_make_pool (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_map (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_map_async (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_map_async_callbacks (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_map_chunksize (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_map_handle_iterable_exception (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_map_no_failfast (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_map_unplicklable (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_release_task_refs (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_resource_warning (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_starmap (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_starmap_async (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_terminate (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_traceback (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_wrapped_exception (test.test_multiprocessing_spawn.WithProcessesTestPool) ... ok
test_async_error_callback (test.test_multiprocessing_spawn.WithProcessesTestPoolWorkerErrors) ... ok
test_unpickleable_result (test.test_multiprocessing_spawn.WithProcessesTestPoolWorkerErrors) ... ok
test_pool_worker_lifetime (test.test_multiprocessing_spawn.WithProcessesTestPoolWorkerLifetime) ... ok
test_pool_worker_lifetime_early_close (test.test_multiprocessing_spawn.WithProcessesTestPoolWorkerLifetime) ... ok
test_active_children (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_child_fd_inflation (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_close (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_cpu_count (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_current (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_daemon_argument (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_error_on_stdio_flush_1 (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_error_on_stdio_flush_2 (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_forkserver_sigint (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... skipped 'test not appropriate for spawn'
test_forkserver_sigkill (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... skipped 'test not appropriate for spawn'
test_kill (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_lose_target_ref (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_many_processes (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_parent_process (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_parent_process_attributes (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_process (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_process_mainthread_native_id (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_recursion (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_sentinel (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_terminate (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_wait_for_threads (test.test_multiprocessing_spawn.WithProcessesTestProcess) ... ok
test_closed_queue_put_get_exceptions (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_fork (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_get (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_no_import_lock_contention (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_put (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_qsize (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_queue_feeder_donot_stop_onexc (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_queue_feeder_on_queue_feeder_error (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_task_done (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_timeout (test.test_multiprocessing_spawn.WithProcessesTestQueue) ... ok
test_bounded_semaphore (test.test_multiprocessing_spawn.WithProcessesTestSemaphore) ... ok
test_semaphore (test.test_multiprocessing_spawn.WithProcessesTestSemaphore) ... ok
test_timeout (test.test_multiprocessing_spawn.WithProcessesTestSemaphore) ... ok
test_copy (test.test_multiprocessing_spawn.WithProcessesTestSharedCTypes) ... ok
test_sharedctypes (test.test_multiprocessing_spawn.WithProcessesTestSharedCTypes) ... ok
test_synchronize (test.test_multiprocessing_spawn.WithProcessesTestSharedCTypes) ... ok
test_shared_memory_ShareableList_basics (test.test_multiprocessing_spawn.WithProcessesTestSharedMemory) ... ok
test_shared_memory_ShareableList_pickling (test.test_multiprocessing_spawn.WithProcessesTestSharedMemory) ... ok
test_shared_memory_SharedMemoryManager_basics (test.test_multiprocessing_spawn.WithProcessesTestSharedMemory) ... ok
test_shared_memory_SharedMemoryManager_reuses_resource_tracker (test.test_multiprocessing_spawn.WithProcessesTestSharedMemory) ... ok
test_shared_memory_SharedMemoryServer_ignores_sigint (test.test_multiprocessing_spawn.WithProcessesTestSharedMemory) ... ok
test_shared_memory_across_processes (test.test_multiprocessing_spawn.WithProcessesTestSharedMemory) ... ok
test_shared_memory_basics (test.test_multiprocessing_spawn.WithProcessesTestSharedMemory) ... ok
test_shared_memory_cleaned_after_process_termination (test.test_multiprocessing_spawn.WithProcessesTestSharedMemory) ... ok
test_stderr_flush (test.test_multiprocessing_spawn.WithProcessesTestSubclassingProcess) ... ok
test_subclassing (test.test_multiprocessing_spawn.WithProcessesTestSubclassingProcess) ... ok
test_sys_exit (test.test_multiprocessing_spawn.WithProcessesTestSubclassingProcess) ... ok
test_getobj_getlock (test.test_multiprocessing_spawn.WithProcessesTestValue) ... ok
test_rawvalue (test.test_multiprocessing_spawn.WithProcessesTestValue) ... ok
test_value (test.test_multiprocessing_spawn.WithProcessesTestValue) ... ok
test_abort (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_abort_and_reset (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_action (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_barrier (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_barrier_10 (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_default_timeout (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_reset (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_single_thread (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_thousand (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_timeout (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_wait_return (test.test_multiprocessing_spawn.WithThreadsTestBarrier) ... ok
test_notify (test.test_multiprocessing_spawn.WithThreadsTestCondition) ... ok
test_notify_all (test.test_multiprocessing_spawn.WithThreadsTestCondition) ... ok
test_notify_n (test.test_multiprocessing_spawn.WithThreadsTestCondition) ... ok
test_timeout (test.test_multiprocessing_spawn.WithThreadsTestCondition) ... ok
test_wait_result (test.test_multiprocessing_spawn.WithThreadsTestCondition) ... ok
test_waitfor (test.test_multiprocessing_spawn.WithThreadsTestCondition) ... ok
test_waitfor_timeout (test.test_multiprocessing_spawn.WithThreadsTestCondition) ... ok
test_connection (test.test_multiprocessing_spawn.WithThreadsTestConnection) ... ok
test_context (test.test_multiprocessing_spawn.WithThreadsTestConnection) ... ok
test_duplex_false (test.test_multiprocessing_spawn.WithThreadsTestConnection) ... ok
test_fd_transfer (test.test_multiprocessing_spawn.WithThreadsTestConnection) ... skipped 'only makes sense with processes'
test_large_fd_transfer (test.test_multiprocessing_spawn.WithThreadsTestConnection) ... skipped 'only makes sense with processes'
test_missing_fd_transfer (test.test_multiprocessing_spawn.WithThreadsTestConnection) ... skipped 'only makes sense with processes'
test_sendbytes (test.test_multiprocessing_spawn.WithThreadsTestConnection) ... skipped 'test not appropriate for threads'
test_spawn_close (test.test_multiprocessing_spawn.WithThreadsTestConnection) ... ok
test_event (test.test_multiprocessing_spawn.WithThreadsTestEvent) ... ok
test_issue14725 (test.test_multiprocessing_spawn.WithThreadsTestListenerClient) ... ok
test_issue16955 (test.test_multiprocessing_spawn.WithThreadsTestListenerClient) ... ok
test_listener_client (test.test_multiprocessing_spawn.WithThreadsTestListenerClient) ... ok
test_lock (test.test_multiprocessing_spawn.WithThreadsTestLock) ... ok
test_lock_context (test.test_multiprocessing_spawn.WithThreadsTestLock) ... ok
test_rlock (test.test_multiprocessing_spawn.WithThreadsTestLock) ... ok
test_rapid_restart (test.test_multiprocessing_spawn.WithThreadsTestManagerRestart) ... ok
test_boundaries (test.test_multiprocessing_spawn.WithThreadsTestPoll) ... ok
test_dont_merge (test.test_multiprocessing_spawn.WithThreadsTestPoll) ... ok
test_empty_string (test.test_multiprocessing_spawn.WithThreadsTestPoll) ... ok
test_strings (test.test_multiprocessing_spawn.WithThreadsTestPoll) ... ok
test_apply (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_async (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_async_timeout (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_context (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_empty_iterable (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_enter (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_imap (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_imap_handle_iterable_exception (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_imap_unordered (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_imap_unordered_handle_iterable_exception (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_make_pool (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_map (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_map_async (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_map_async_callbacks (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_map_chunksize (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_map_handle_iterable_exception (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_map_no_failfast (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_map_unplicklable (test.test_multiprocessing_spawn.WithThreadsTestPool) ... skipped 'test not appropriate for threads'
test_release_task_refs (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_resource_warning (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_starmap (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_starmap_async (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_terminate (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_traceback (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_wrapped_exception (test.test_multiprocessing_spawn.WithThreadsTestPool) ... ok
test_active_children (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... ok
test_child_fd_inflation (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_close (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_cpu_count (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... ok
test_current (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_daemon_argument (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_error_on_stdio_flush_1 (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... ok
test_error_on_stdio_flush_2 (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... ok
test_forkserver_sigint (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_forkserver_sigkill (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_kill (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_lose_target_ref (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... ok
test_many_processes (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_parent_process (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_parent_process_attributes (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_process (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... ok
test_process_mainthread_native_id (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_recursion (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... ok
test_sentinel (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_terminate (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_wait_for_threads (test.test_multiprocessing_spawn.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_closed_queue_put_get_exceptions (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... ok
test_fork (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... ok
test_get (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... ok
test_no_import_lock_contention (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... ok
test_put (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... ok
test_qsize (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... ok
test_queue_feeder_donot_stop_onexc (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... skipped 'test not appropriate for threads'
test_queue_feeder_on_queue_feeder_error (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... skipped 'test not appropriate for threads'
test_task_done (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... ok
test_timeout (test.test_multiprocessing_spawn.WithThreadsTestQueue) ... ok
test_bounded_semaphore (test.test_multiprocessing_spawn.WithThreadsTestSemaphore) ... ok
test_semaphore (test.test_multiprocessing_spawn.WithThreadsTestSemaphore) ... ok
test_timeout (test.test_multiprocessing_spawn.WithThreadsTestSemaphore) ... skipped 'test not appropriate for threads'
test_import (test.test_multiprocessing_spawn._TestImportStar) ... ok

----------------------------------------------------------------------

Ran 354 tests in 303.086s

OK (skipped=35)
Warning -- files was modified by test_multiprocessing_spawn
  Before: []
  After:  ['python.core']
@isidentical

This comment has been minimized.

Copy link
Contributor Author

isidentical commented Dec 23, 2019

I guess this is not related with my PR, does it?

@pablogsal

This comment has been minimized.

Copy link
Member

pablogsal commented Dec 23, 2019

I guess this is not related with my PR, does it?

Is not, is a core dump on FreeBSD. This is going to be fun....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.