Commit Graph

611 Commits

Author SHA1 Message Date
Victor Stinner 28773465e6 ayncio, Tulip issue 129: BaseEventLoop.sock_connect() now raises an error if
the address is not resolved (hostname instead of an IP address) for AF_INET and
AF_INET6 address families.
2014-02-13 09:24:37 +01:00
Guido van Rossum b58f053e48 asyncio: Change as_completed() to use a Queue, to avoid O(N**2) behavior. Fixes issue #20566. 2014-02-12 17:58:19 -08:00
Victor Stinner 13b493e8a7 Issue #20495: Skip test_read_pty_output() of test_asyncio on FreeBSD older than
FreeBSD 8
2014-02-11 18:40:56 +01:00
Victor Stinner eb74876e99 asyncio, Tulip issue 131: as_completed() and wait() now raises a TypeError if
the list of futures is not a list but a Future, Task or coroutine object
2014-02-11 11:54:08 +01:00
Victor Stinner 4e8d2f25e2 asyncio, Tulip issue 130: Add more checks on subprocess_exec/subprocess_shell
parameters
2014-02-11 11:44:56 +01:00
Victor Stinner a125497ea3 asyncio, Tulip issue 126: call_soon(), call_soon_threadsafe(), call_later(),
call_at() and run_in_executor() now raise a TypeError if the callback is a
coroutine function.
2014-02-11 11:34:30 +01:00
Victor Stinner 6cf5c96630 Issue #20505: BaseEventLoop uses again the resolution of the clock to decide if
scheduled tasks should be executed or not.
2014-02-10 23:42:32 +01:00
Victor Stinner cf736f4e98 Issue #20505: Use even shorter sleep in test_timeout_rounding() to make the
test more reliable (= fail more often on Windows with HPET enabled).
2014-02-10 19:17:46 +01:00
Victor Stinner 1c143b19c8 Issue #20505: Add debug info to analyze sporaric failures of
test_timeout_rounding() on Windows XP buildbots.
2014-02-10 11:47:50 +01:00
Victor Stinner dc62b7e261 asyncio: Tulip issue 112: Inline make_handle() into Handle constructor 2014-02-10 00:45:44 +01:00
Victor Stinner 0c3949c963 asyncio: Remove Process.subprocess attribute; it's too easy to get inconsistent
Process and Popen objects
2014-02-09 02:51:40 +01:00
Guido van Rossum 313f829ce8 asyncio: Test fix. 2014-02-08 17:35:09 -08:00
Victor Stinner 87bf2772be asyncio tests: Remove scories of resolution/granularity 2014-02-09 01:25:52 +01:00
Victor Stinner 85310a50a9 Issue #20505: Remove resolution and _granularity from selectors and asyncio
* Remove selectors.BaseSelector.resolution attribute
* Remove asyncio.BaseEventLoop._granularity attribute
2014-02-07 23:34:58 +01:00
Yury Selivanov 622be340fd asyncio.tasks: Fix as_completed, gather & wait to work with duplicate coroutines 2014-02-06 22:06:16 -05:00
Yury Selivanov f0020f5d77 asyncio.streams.StreamReader: Add 'at_eof()' method 2014-02-06 00:14:30 -05:00
Yury Selivanov e694c9745f asyncio.streams: Use bytebuffer in StreamReader; Add assertion in feed_data 2014-02-05 18:11:13 -05:00
Guido van Rossum 3b55f0c622 asyncio: Cosmetic improvement to test__run_once_logging() mock argument. 2014-02-04 14:27:14 -08:00
Victor Stinner 1703bbbf89 Oops, undo unwanted changes in test_asyncio: mistakes of my the last sync with
Tulip (changeset d7ac90c0463a)
2014-02-03 23:59:52 +01:00
Victor Stinner b79eb0502c asyncio.subprocess: Replace Process.get_subprocess() method with a
Process.subprocess read-only property
2014-02-03 23:08:14 +01:00
Victor Stinner 9dd39f524d Issue #20472: test_asyncio: skip PTY tests on Mac OS X older than 10.6 2014-02-03 00:32:13 +01:00
Victor Stinner 915bcb0111 Issue #20400: Merge Tulip into Python: add the new asyncio.subprocess module
* Add a new asyncio.subprocess module
* Add new create_subprocess_exec() and create_subprocess_shell() functions
* The new asyncio.subprocess.SubprocessStreamProtocol creates stream readers
  for stdout and stderr and a stream writer for stdin.
* The new asyncio.subprocess.Process class offers an API close to the
  subprocess.Popen class:

  - pid, returncode, stdin, stdout and stderr attributes
  - communicate(), wait(), send_signal(), terminate() and kill() methods

* Remove STDIN (0), STDOUT (1) and STDERR (2) constants from base_subprocess
  and unix_events, to not be confused with the symbols with the same name of
  subprocess and asyncio.subprocess modules
* _ProactorBasePipeTransport.get_write_buffer_size() now counts also the size
  of the pending write
* _ProactorBaseWritePipeTransport._loop_writing() may now pause the protocol if
  the write buffer size is greater than the high water mark (64 KB by default)
2014-02-01 22:49:59 +01:00
Victor Stinner a0aa88ce89 test_asyncio: relax timing, the "AMD64 Windows Server 2008 [SB] 3.x" buildbot
looks to be slow
2014-02-01 04:11:16 +01:00
Victor Stinner 55effc6dd0 Issue #20452: Fix test_time_and_call_at() of test_asyncio on Windows
Use the granularity to check the minimum time delta, instead of arbitrary
value.
2014-02-01 02:18:52 +01:00
Victor Stinner 1144214639 Issue #20452: test_asyncio checks also the granularity 2014-02-01 02:17:54 +01:00
Victor Stinner 62510dced9 Issue #20452: test_asyncio: Add more info if the test fails 2014-01-31 16:39:10 +01:00
Victor Stinner 1506df2655 Issue #20455: Add a resolution attribute to IocpProactor (1 ms) 2014-01-31 16:26:38 +01:00
Victor Stinner 49d0f4e428 Issue #20452: Remove debug code, no more needed 2014-01-31 12:59:43 +01:00
Victor Stinner dcd9740ad2 Issue #20452: select and selectors round (again) timeout away from zero for
poll and epoll

Improve also debug info to analyze the issue
2014-01-31 12:12:53 +01:00
Victor Stinner 31f65044a9 Issue #20452: Oops, fix debug code :-/
Add also event more debug info
2014-01-31 10:55:55 +01:00
Victor Stinner 0278032110 Issue #20452: add more info in case of test_asyncio failure to try to debug the
failure on buildbot "x86 Ubuntu Shared 3.x"
2014-01-31 09:29:35 +01:00
Guido van Rossum a849be9c64 asyncio: Fix misc whitespace issues. 2014-01-30 16:05:28 -08:00
Victor Stinner 9572898282 asyncio: Future.set_exception(exc) should instantiate exc if it is a class. 2014-01-30 16:01:54 -08:00
Victor Stinner e623a12297 asyncio: subprocess_shell() and subprocess_exec() now raise ValueError instead of assert.
Moreover, bufsize different than 0 is now considered as an error.
2014-01-29 14:35:15 -08:00
Guido van Rossum 48c66c3dd8 asyncio: wait_for() now accepts None as timeout (Victor Stinner). 2014-01-29 14:30:38 -08:00
Guido van Rossum fef7098ef9 asyncio: Rename {Empty,Full} to {QueueEmpty,QueueFull} and no longer get them from queue.py. 2014-01-25 17:24:51 -08:00
Guido van Rossum ab3c88983b asyncio: Locks refactor: use a separate context manager; remove Semaphore._locked. 2014-01-25 16:51:57 -08:00
Victor Stinner 669eeaf933 Merge latest Tulip into asyncio
- Make the new granularity attribute private
- Simplify BaseEventLoop._run_once(): avoid math.ceil(), use simple arithmetic
  instead
2014-01-26 00:02:31 +01:00
Victor Stinner 128ee220e2 asyncio: Don't export BaseEventLoop, BaseSelectorEventLoop nor
BaseProactorEventLoop

Import them from submodules if you really need them.
2014-01-25 22:22:18 +01:00
Victor Stinner 8dffc456d7 Update asyncio from the Tulip project
Major changes:

- StreamReader.readexactly() now raises an IncompleteReadError if the
  end of stream is reached before we received enough bytes, instead of
  returning less bytes than requested.

- Unit tests use the main asyncio module instead of submodules like events

- _UnixWritePipeTransport now also supports character devices, as
  _UnixReadPipeTransport. Patch written by Jonathan Slenders.

- Export more symbols: BaseEventLoop, BaseProactorEventLoop,
  BaseSelectorEventLoop, Queue and Queue sublasses, Empty, Full
2014-01-25 15:32:06 +01:00
Victor Stinner f67255ab94 Issue #20311: asyncio: Add a granularity attribute to BaseEventLoop: maximum
between the resolution of the BaseEventLoop.time() method and the resolution of
the selector. The granuarility is used in the scheduler to round time and
deadline.
2014-01-25 15:01:33 +01:00
Victor Stinner 421e49b5c1 asyncio: wait_for() now cancels the future on timeout. Patch written by Gustavo
Carneiro.
2014-01-23 17:40:59 +01:00
Victor Stinner 8ce6e1100e Close #20365: Skip test_asyncio.test_events.test_read_pty_output() on Mac OS X
older than 10.9 (Maverick). kqueue doesn't support character devices (PTY) on
Mac OS X older than 10.9.
2014-01-23 17:26:06 +01:00
Victor Stinner 5e42354263 Fix ResourceWarning in test_asyncio.test_windows_events:
close the write end of the socket pair
2014-01-11 00:16:50 +01:00
Guido van Rossum 02757ea7e9 asyncio: Minimal pty support in UNIX read pipe, by Jonathan Slenders. 2014-01-10 13:30:04 -08:00
Guido van Rossum 9ba75db3c5 asyncio: Clean up formatting. 2013-12-19 13:49:32 -08:00
Victor Stinner 4c3c699e62 Close #19967: Thanks to the PEP 442, asyncio.Future can use a destructor in
Python 3.4 to log "uncatched" exceptions, instead of the dedicated
_TracebackLogger class.
2013-12-19 22:42:40 +01:00
Guido van Rossum 994bf4332f Shorten lines. 2013-12-19 12:47:38 -08:00
Christian Heimes a5f0eda91a Skip some tests that require server name indication (SNI) 2013-12-15 17:02:36 +01:00
Victor Stinner 24bd028092 Issue #19952: test_asyncio: relax timings of Windows events, buildbots are
sometimes busy
2013-12-13 02:45:18 +01:00
Zachary Ware 101d9e7250 Issue 19572: More silently skipped tests explicitly skipped. 2013-12-08 00:44:27 -06:00
Christian Heimes cd6f61137a copy 'n paste typo (thx Antoine) 2013-12-07 00:14:55 +01:00
Christian Heimes b82c915fa2 Skip new SSL tests with IocpEventLoop 2013-12-07 00:09:45 +01:00
Guido van Rossum 1a605ed5a3 asyncio: Add Task.current_task() class method. 2013-12-06 12:57:40 -08:00
Christian Heimes 6d8c1abb00 Issue #19509: Finish implementation of check_hostname
The new asyncio package now supports the new feature and comes with additional tests for SSL.
2013-12-06 00:23:13 +01:00
Guido van Rossum ebb8e58f0a asyncio: Write flow control for proactor event loop. 2013-12-04 12:12:07 -08:00
Guido van Rossum f10345e102 asyncio: Improve default writelines(). 2013-12-02 18:36:30 -08:00
Guido van Rossum a5062c5d81 asyncio: Change write buffer use to avoid O(N**2). Make write()/sendto() accept bytearray/memoryview too. Change some asserts with proper exceptions. 2013-11-27 14:12:48 -08:00
Guido van Rossum cced076218 asyncio: Fix get_event_loop() to call set_event_loop() when setting the loop. By Anthony Baire. 2013-11-27 10:37:13 -08:00
Guido van Rossum 27bfe468cc asyncio: Hopeful fix for issue 19765. 2013-11-25 10:06:34 -08:00
Guido van Rossum 14c3e14053 asyncio: Change mock pipe to mock socket. Hope to fix issue 19750. 2013-11-25 09:43:52 -08:00
Guido van Rossum 085869bfee asyncio: Change bounded semaphore into a subclass, like threading.[Bounded]Semaphore. 2013-11-23 15:09:16 -08:00
Guido van Rossum d41c343f28 asyncio: Use socketpair() from test_utils in tests (Saúl Ibarra Corretgé). 2013-11-23 11:51:53 -08:00
Guido van Rossum 94097b02c2 Relax timing even more, hopefully again fixes issue 19579. 2013-11-23 09:20:12 -08:00
Guido van Rossum 7a465647e4 asyncio: Pass cancellation from wrapping Future to wrapped Future. By Saúl Ibarra Corretgé (mostly). 2013-11-22 11:47:22 -08:00
Guido van Rossum 9c55a58a1d asyncio: Make Semaphore(0) work properly. 2013-11-21 11:07:45 -08:00
Guido van Rossum 1540b16ff4 asyncio: Add streams.start_server(), by Gustavo Carneiro. 2013-11-19 11:43:38 -08:00
Victor Stinner e3010fd740 Relax timing on test_asyncio for busy (slow) Windows buildbots
http://buildbot.python.org/all/builders/AMD64%20Windows%20Server%202008%20%5BSB%5D%203.x/builds/1649/steps/test/logs/stdio

======================================================================
FAIL: test_wait_for_handle (test.test_asyncio.test_windows_events.ProactorTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "E:\home\cpython\buildslave\x64\3.x.snakebite-win2k8r2sp1-amd64\build\lib\test\test_asyncio\test_windows_events.py", line 112, in test_wait_for_handle
    self.assertTrue(0.18 < elapsed < 0.22, elapsed)
AssertionError: False is not true : 0.25
2013-11-18 11:05:22 +01:00
Guido van Rossum 3287905335 Skip test_asyncio if concurrent.futures can't be imported. Hopeful fix for issue 19645. 2013-11-17 17:00:21 -08:00
Guido van Rossum 2335de7a20 asyncio: Replace connection_refused() with error_received(). 2013-11-15 16:51:48 -08:00
Guido van Rossum 39ecf2ed13 asyncio: Longer timeout in Windows test_popen. Fixes issue 19598. 2013-11-15 07:41:10 -08:00
Guido van Rossum 91d2c5674a asyncio: Refactor waitpid mocks. Patch by Anthony Baire. 2013-11-14 16:16:29 -08:00
Serhiy Storchaka e048addedc Issue #19589: Use specific asserts in asyncio tests. 2013-11-14 23:10:51 +02:00
Guido van Rossum f38f7f3c7b asyncio: Avoid ResourceWarning. Fix issue 19580 by Vajrasky Kok. 2013-11-14 10:06:18 -08:00
Guido van Rossum 8ff3e8af72 asyncio: Relax timing requirement. Fixes issue 19579. 2013-11-13 20:17:52 -08:00
Guido van Rossum 2bcae708d8 asyncio: Fix from Anthony Baire for CPython issue 19566 (replaces earlier fix). 2013-11-13 15:50:08 -08:00
Guido van Rossum d0293596b8 Remove redundant test_selectors.py from test_asyncio. 2013-11-07 09:25:36 -08:00
Guido van Rossum 0b69fbc642 asyncio: Add close() back to Unix selector event loop, to remove all signal handlers. Should fix buildbot issues. 2013-11-06 20:25:50 -08:00
Guido van Rossum 0eaa5ac9b5 asyncio: Refactor SIGCHLD handling. By Anthony Baire. 2013-11-04 15:50:46 -08:00
Guido van Rossum ccea08462b asyncio: Locks improvements by Arnaud Faure: better repr(), change Conditio\
n structure.
2013-11-04 13:18:19 -08:00
Richard Oudkerk 2902b6d17a Relax test for process return code on Windows. 2013-11-02 16:38:58 +00:00
Guido van Rossum 05c511f1ca asyncio: Slight rearrangement of tests for server_hostname=... 2013-11-01 14:24:28 -07:00
Guido van Rossum 28dff0d823 asyncio: Better-looking errors when ssl module cannot be imported. In part by Arnaud Faure. 2013-11-01 14:22:30 -07:00
Guido van Rossum a8d630a6e6 asyncio: Various style nits. 2013-11-01 14:20:55 -07:00
Guido van Rossum e3f52ef067 asyncio: Document EventLoop.close(). 2013-11-01 14:19:04 -07:00
Guido van Rossum 2b57016458 asyncio: Refactor ssl transport ready loop (Nikolay Kim). 2013-11-01 14:18:02 -07:00
Guido van Rossum 21c85a7124 asyncio: Add server_hostname as create_connection() argument, with secure default. 2013-11-01 14:16:54 -07:00
Guido van Rossum 3317a13253 asyncio: Pause accepting whenever accept() returns certain errors. Fixes asyncio issue #78. 2013-11-01 14:12:50 -07:00
Guido van Rossum 5969128a86 asyncio: Add support for running subprocesses on Windows with the IOCP event loop (Richard Oudkerk). 2013-10-30 14:52:03 -07:00
Guido van Rossum 90fb914b4b asyncio: Make the IOCP proactor support "waitable" handles (Richard Oudkerk). 2013-10-30 14:44:05 -07:00
Guido van Rossum b0fb94dda8 Fix asyncio issue #19293 (hangs on AIX). 2013-10-21 21:28:45 -07:00
Guido van Rossum f75debda94 Unsilence several asyncio AIX tests that no longer hang, and silence a new hang. 2013-10-21 20:57:25 -07:00
Guido van Rossum 934f6ea7fb Switch subprocess stdin to a socketpair, attempting to fix issue #19293 (AIX hang). 2013-10-21 20:37:14 -07:00
Guido van Rossum 8a0fe85fbe Avoid test_asyncio hang on AIX. 2013-10-21 20:26:12 -07:00
Guido van Rossum 8da15cc218 asyncio: be more lenient if we don't understand status returned by waitpid().
This should have no effect, it's a "shouldn't happe" case.
Also tidied up some comments.
2013-10-21 15:00:44 -07:00
Antoine Pitrou 7d61800489 Skip one asyncio test when IPv6 isn't supported (Windows buildbots) 2013-10-20 21:45:29 +02:00
Antoine Pitrou cb1fe98f76 Make various asyncio test files individually runnable 2013-10-20 21:02:53 +02:00
Charles-François Natali bcd76827f4 Issue #19309: asyncio: make waitpid() wait for all child processes, not only
those in the same process group.
2013-10-20 20:31:43 +02:00
Guido van Rossum d49c47bfb0 Break out of loop on EOF in asyncio echo test programs. 2013-10-19 21:26:34 -07:00
Antoine Pitrou 92945c574b Un-backout e3ec6b17260c - the test fix was actually also necessary 2013-10-20 02:16:40 +02:00
Antoine Pitrou c1b78419e6 Backout e3ec6b17260c after Guido's fix 2013-10-20 02:09:08 +02:00
Antoine Pitrou d20afad7d4 Issue #19305: try to fix sporadic test_asyncio failure on FreeBSD 10.0 2013-10-20 01:51:25 +02:00
Antoine Pitrou 0d9eefda34 Try to fix test_asyncio dual stack test when creating an IPv6 socket fails 2013-10-20 01:10:52 +02:00
Guido van Rossum 3743711a96 Disable some subprocess tests that hang on AIX.
See http://bugs.python.org/issue19293
2013-10-19 09:10:13 -07:00
Guido van Rossum 7058dad0bd Skip the asyncio tests when threads are not available.
See http://bugs.python.org/issue19295
2013-10-19 08:47:26 -07:00
Guido van Rossum 355491dc47 Write flow control for asyncio (includes asyncio.streams overhaul). 2013-10-18 15:17:11 -07:00
Guido van Rossum 051a331488 Relax some asyncio test timeouts (http://bugs.python.org/issue19285). 2013-10-18 15:15:56 -07:00
Guido van Rossum 57497ad181 Rename Transport.pause/resume to pause_reading/pause_writing. Also relax timeout in test_call_later(). 2013-10-18 07:58:20 -07:00
Guido van Rossum fc29e0f37e Rename the logger to plain "logger". 2013-10-17 15:39:45 -07:00
Guido van Rossum 5ea7f93dcd Make asyncio tests run on Windows. 2013-10-17 14:23:17 -07:00
Guido van Rossum 27b7c7ebf1 Initial checkin of asyncio package (== Tulip, == PEP 3156). 2013-10-17 13:40:50 -07:00