Merge with 3.2 and also remove captured_output from __all__ (see #7960).
diff --git a/Lib/test/support.py b/Lib/test/support.py
index d6f0e0d..e49453e 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -35,8 +35,8 @@
     "is_resource_enabled", "requires", "find_unused_port", "bind_port",
     "IPV6_ENABLED", "is_jython", "TESTFN", "HOST", "SAVEDCWD", "temp_cwd",
     "findfile", "sortdict", "check_syntax_error", "open_urlresource",
-    "check_warnings", "CleanImport", "EnvironmentVarGuard",
-    "TransientResource", "captured_output", "captured_stdout", "time_out",
+    "check_warnings", "CleanImport", "EnvironmentVarGuard", "TransientResource",
+    "captured_stdout", "captured_stdin", "captured_stderr", "time_out",
     "socket_peer_reset", "ioerror_peer_reset", "run_with_locale", 'temp_umask',
     "transient_internet", "set_memlimit", "bigmemtest", "bigaddrspacetest",
     "BasicTestRunner", "run_unittest", "run_doctest", "threading_setup",
@@ -887,7 +887,7 @@
 
 @contextlib.contextmanager
 def captured_output(stream_name):
-    """Return a context manager used by captured_stdout and captured_stdin
+    """Return a context manager used by captured_stdout/stdin/stderr
     that temporarily replaces the sys stream *stream_name* with a StringIO."""
     import io
     orig_stdout = getattr(sys, stream_name)
@@ -912,6 +912,7 @@
 def captured_stdin():
     return captured_output("stdin")
 
+
 def gc_collect():
     """Force as many objects as possible to be collected.