summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichele Locati <michele@locati.it>2016-08-29 11:57:53 +0200
committerAnatol Belski <ab@php.net>2016-10-28 19:23:00 +0200
commit33301d5bae4964f74fd1fc8c4fc485abfde0378e (patch)
treef077a695e30b939114cf3bc541e71a2973045dda /tests
parent946eb9b452302a258c90752a9a4c81d1824c1a3a (diff)
downloadphp-git-33301d5bae4964f74fd1fc8c4fc485abfde0378e.tar.gz
Add VT100 support for Windows
Fix function names prefix Use Unicode version of GetFinalPathNameByHandle Use EG(windows_version_info) instead of RtlGetVersion Use the specified handle_id instead of STD_OUTPUT_HANDLE Switch from stream name to stream resource Allow running tests capturing only stdout and/or stderr Add tests for stream_vt100_support function Export Win32 console functions Fix x64 build Use zend_long instead of long long, use GetConsole instead of GetFinalPathNameByHandleW to check if a handle is a valid console stream Always use zend_long on any platform Use _get_osfhandle to determine the standard handle Accept stream names Raise warnings in case of invalid stream parameter Return true if disabling VT100 support on a not-console/redirected stream or on old Windows versions Remove php_win32_console_os_supports_vt100 Differentiate stdin vs stdout/stderr Simplify setting flag Allow avoid piping STDIN Let stream_vt100_support accept only resources Fix run-tests Revert console flags in case of failure Simplify logic of stream_vt100_support when setting the flag Return true if succeeded, false otherwise Drop support for STDIN More comprehensive tests for stream_vt100_support Remove old tests Fix name of included file and use absolute paths Enable ENABLE_VIRTUAL_TERMINAL_PROCESSING on Windows by default Remove tests for stream_vt100_support Split stream_vt100_support into stream_isatty+sapi_windows_vt100_support Add tests for stream_isatty Add tests for sapi_windows_vt100_support Return null from stream_isatty is neither Windows nor Posix Fallback to S_ISCHR if neither Windows nor Posix Avoid defining argc since it's only used once Better comment about php_win32_console_fileno_is_console Use events instead of cNumberOfEvents Do not restore previous console mode We need to restore previous console mode on failing SetConsole calls only for STDIN Don't configure STDOUT/STDERR on Windows with PHP_CLI_WIN32_NO_CONSOLE
Diffstat (limited to 'tests')
-rw-r--r--tests/output/sapi_windows_vt100_support.inc65
-rw-r--r--tests/output/sapi_windows_vt100_support_notwindows.phpt14
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_err.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_in-err.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_in-out-err.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_in-out.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_out-err.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_out.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_err.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_in-err.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_in-out-err.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_in-out.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_out-err.phpt145
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_out.phpt145
-rw-r--r--tests/output/stream_isatty.inc36
-rw-r--r--tests/output/stream_isatty_err.phpt26
-rw-r--r--tests/output/stream_isatty_in-err.phpt26
-rw-r--r--tests/output/stream_isatty_in-out-err.phpt26
-rw-r--r--tests/output/stream_isatty_in-out.phpt26
-rw-r--r--tests/output/stream_isatty_out-err.phpt26
-rw-r--r--tests/output/stream_isatty_out.phpt26
21 files changed, 2011 insertions, 0 deletions
diff --git a/tests/output/sapi_windows_vt100_support.inc b/tests/output/sapi_windows_vt100_support.inc
new file mode 100644
index 0000000000..9ac54cea61
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support.inc
@@ -0,0 +1,65 @@
+<?php
+
+function resetVT100State()
+{
+ $state = array(
+ sapi_windows_vt100_support(STDIN),
+ sapi_windows_vt100_support(STDOUT),
+ sapi_windows_vt100_support(STDERR),
+ );
+ sapi_windows_vt100_support(STDIN, false);
+ sapi_windows_vt100_support(STDOUT, false);
+ sapi_windows_vt100_support(STDERR, false);
+
+ return $state;
+}
+
+function restoreVT100State(array $state)
+{
+ sapi_windows_vt100_support(STDIN, $state[0]);
+ sapi_windows_vt100_support(STDOUT, $state[1]);
+ sapi_windows_vt100_support(STDERR, $state[2]);
+}
+
+function testToStdOut()
+{
+ $state = resetVT100State();
+
+ $sampleStreams = array(
+ 'STDIN (constant)' => STDIN,
+ 'STDIN (fopen)' => fopen('php://stdin', 'rb'),
+ 'STDIN (php://fd/0)' => fopen('php://fd/0', 'rb'),
+ 'STDOUT (constant)' => STDOUT,
+ 'STDOUT (fopen)' => fopen('php://stdout', 'wb'),
+ 'STDOUT (php://fd/1)' => fopen('php://fd/1', 'wb'),
+ 'STDERR (constant)' => STDERR,
+ 'STDERR (fopen)' => fopen('php://stderr', 'wb'),
+ 'STDERR (php://fd/2)' => fopen('php://fd/2', 'wb'),
+ 'Not a stream' => 'foo',
+ 'Invalid stream (php://temp)' => fopen('php://temp', 'wb'),
+ 'Invalid stream (php://input)' => fopen('php://input', 'wb'),
+ 'Invalid stream (php://memory)' => fopen('php://memory', 'wb'),
+ 'File stream' => $closeMe = fopen(__FILE__, 'rb'),
+ );
+
+ foreach ($sampleStreams as $name => $stream) {
+ echo "$name:\n";
+ echo "- current value : "; var_dump(sapi_windows_vt100_support($stream));
+ echo "- enabling VT100 : "; var_dump(sapi_windows_vt100_support($stream, true));
+ echo "- current value : "; var_dump(sapi_windows_vt100_support($stream));
+ echo "- disabling VT100: "; var_dump(sapi_windows_vt100_support($stream, false));
+ echo "- current value : "; var_dump(sapi_windows_vt100_support($stream));
+ }
+
+ fclose($closeMe);
+ restoreVT100State($state);
+}
+
+function testToStdErr()
+{
+ ob_start();
+ testToStdOut();
+ $result = ob_get_contents();
+ ob_end_clean();
+ fwrite(STDERR, $result);
+}
diff --git a/tests/output/sapi_windows_vt100_support_notwindows.phpt b/tests/output/sapi_windows_vt100_support_notwindows.phpt
new file mode 100644
index 0000000000..5ff382350a
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_notwindows.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Test that sapi_windows_vt100_support exists only on Windows
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') === 0) {
+ echo "skip Only for not Windows systems";
+}
+?>
+--FILE--
+<?php
+var_dump(function_exists('sapi_windows_vt100_support'));
+?>
+--EXPECT--
+bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winko_err.phpt b/tests/output/sapi_windows_vt100_support_winko_err.phpt
new file mode 100644
index 0000000000..c722e549be
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winko_err.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on older Windows versions with redirected STDERR
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) >= 0) {
+ echo "skip Only for Windows systems < 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdErr();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winko_in-err.phpt b/tests/output/sapi_windows_vt100_support_winko_in-err.phpt
new file mode 100644
index 0000000000..0e8097eef6
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winko_in-err.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on older Windows versions with redirected STDIN/STDERR
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) >= 0) {
+ echo "skip Only for Windows systems < 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDIN STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdErr();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winko_in-out-err.phpt b/tests/output/sapi_windows_vt100_support_winko_in-out-err.phpt
new file mode 100644
index 0000000000..496f467df3
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winko_in-out-err.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on older Windows versions with redirected STDIN/STDOUT/STDERR
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) >= 0) {
+ echo "skip Only for Windows systems < 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDIN STDOUT STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdErr();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winko_in-out.phpt b/tests/output/sapi_windows_vt100_support_winko_in-out.phpt
new file mode 100644
index 0000000000..da9a2378fe
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winko_in-out.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on older Windows versions with redirected STDIN/STDOUT
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) >= 0) {
+ echo "skip Only for Windows systems < 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDIN STDOUT
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winko_out-err.phpt b/tests/output/sapi_windows_vt100_support_winko_out-err.phpt
new file mode 100644
index 0000000000..94604bad0e
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winko_out-err.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on older Windows versions with redirected STDOUT/STDERR
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) >= 0) {
+ echo "skip Only for Windows systems < 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDOUT STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdErr();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winko_out.phpt b/tests/output/sapi_windows_vt100_support_winko_out.phpt
new file mode 100644
index 0000000000..563a3282cc
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winko_out.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on older Windows versions with redirected STDOUT
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) >= 0) {
+ echo "skip Only for Windows systems < 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDOUT
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(true)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winok_err.phpt b/tests/output/sapi_windows_vt100_support_winok_err.phpt
new file mode 100644
index 0000000000..58b3f6b35d
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winok_err.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on newer Windows versions with redirected STDERR
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) < 0) {
+ echo "skip Only for Windows systems >= 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdErr();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winok_in-err.phpt b/tests/output/sapi_windows_vt100_support_winok_in-err.phpt
new file mode 100644
index 0000000000..4eda2c4534
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winok_in-err.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on newer Windows versions with redirected STDIN/STDERR
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) < 0) {
+ echo "skip Only for Windows systems >= 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDIN STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdErr();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winok_in-out-err.phpt b/tests/output/sapi_windows_vt100_support_winok_in-out-err.phpt
new file mode 100644
index 0000000000..62ed43c6a8
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winok_in-out-err.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on newer Windows versions with redirected STDIN/STDOUT/STDERR
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) < 0) {
+ echo "skip Only for Windows systems >= 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDIN STDOUT STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winok_in-out.phpt b/tests/output/sapi_windows_vt100_support_winok_in-out.phpt
new file mode 100644
index 0000000000..d146c5dc5c
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winok_in-out.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on newer Windows versions with redirected STDIN/STDOUT
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) < 0) {
+ echo "skip Only for Windows systems >= 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDIN STDOUT
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winok_out-err.phpt b/tests/output/sapi_windows_vt100_support_winok_out-err.phpt
new file mode 100644
index 0000000000..223b0ddf3b
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winok_out-err.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on newer Windows versions with redirected STDOUT/STDERR
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) < 0) {
+ echo "skip Only for Windows systems >= 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDOUT STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/sapi_windows_vt100_support_winok_out.phpt b/tests/output/sapi_windows_vt100_support_winok_out.phpt
new file mode 100644
index 0000000000..69cb508701
--- /dev/null
+++ b/tests/output/sapi_windows_vt100_support_winok_out.phpt
@@ -0,0 +1,145 @@
+--TEST--
+Test sapi_windows_vt100_support on newer Windows versions with redirected STDOUT
+--SKIPIF--
+<?php
+if (stripos(PHP_OS, 'WIN') !== 0) {
+ echo "skip Only for Windows systems";
+} elseif (version_compare(
+ PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD,
+ '10.0.10586'
+) < 0) {
+ echo "skip Only for Windows systems >= 10.0.10586";
+}
+?>
+--CAPTURE_STDIO--
+STDOUT
+--FILE--
+<?php
+require dirname(__FILE__).'/sapi_windows_vt100_support.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDIN (php://fd/0):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (constant):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDOUT (php://fd/1):
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
+STDERR (constant):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (fopen):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+STDERR (php://fd/2):
+- current value : bool(false)
+- enabling VT100 : bool(true)
+- current value : bool(true)
+- disabling VT100: bool(true)
+- current value : bool(false)
+Not a stream:
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://input):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+Invalid stream (php://memory):
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- enabling VT100 :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- disabling VT100:
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+- current value :
+Warning: sapi_windows_vt100_support() was not able to analyze the specified stream in %s on line %d
+bool(false)
+File stream:
+- current value : bool(false)
+- enabling VT100 : bool(false)
+- current value : bool(false)
+- disabling VT100: bool(false)
+- current value : bool(false)
diff --git a/tests/output/stream_isatty.inc b/tests/output/stream_isatty.inc
new file mode 100644
index 0000000000..4b7f39986f
--- /dev/null
+++ b/tests/output/stream_isatty.inc
@@ -0,0 +1,36 @@
+<?php
+
+function testToStdOut()
+{
+ $sampleStreams = array(
+ 'STDIN (constant)' => STDIN,
+ 'STDIN (fopen)' => fopen('php://stdin', 'rb'),
+ 'STDIN (php://fd/0)' => fopen('php://fd/0', 'rb'),
+ 'STDOUT (constant)' => STDOUT,
+ 'STDOUT (fopen)' => fopen('php://stdout', 'wb'),
+ 'STDOUT (php://fd/1)' => fopen('php://fd/1', 'wb'),
+ 'STDERR (constant)' => STDERR,
+ 'STDERR (fopen)' => fopen('php://stderr', 'wb'),
+ 'STDERR (php://fd/2)' => fopen('php://fd/2', 'wb'),
+ 'Not a stream' => 'foo',
+ 'Invalid stream (php://temp)' => fopen('php://temp', 'wb'),
+ 'Invalid stream (php://input)' => fopen('php://input', 'wb'),
+ 'Invalid stream (php://memory)' => fopen('php://memory', 'wb'),
+ 'File stream' => $closeMe = fopen(__FILE__, 'rb'),
+ );
+
+ foreach ($sampleStreams as $name => $stream) {
+ echo "$name: "; var_dump(stream_isatty($stream));
+ }
+
+ fclose($closeMe);
+}
+
+function testToStdErr()
+{
+ ob_start();
+ testToStdOut();
+ $result = ob_get_contents();
+ ob_end_clean();
+ fwrite(STDERR, $result);
+}
diff --git a/tests/output/stream_isatty_err.phpt b/tests/output/stream_isatty_err.phpt
new file mode 100644
index 0000000000..65a45642cf
--- /dev/null
+++ b/tests/output/stream_isatty_err.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Test stream_isatty with redirected STDERR
+--CAPTURE_STDIO--
+STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/stream_isatty.inc';
+testToStdErr();
+?>
+--EXPECTF--
+STDIN (constant): bool(true)
+STDIN (fopen): bool(true)
+STDIN (php://fd/0): bool(true)
+STDOUT (constant): bool(true)
+STDOUT (fopen): bool(true)
+STDOUT (php://fd/1): bool(true)
+STDERR (constant): bool(false)
+STDERR (fopen): bool(false)
+STDERR (php://fd/2): bool(false)
+Not a stream:
+Warning: stream_isatty() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp): bool(false)
+Invalid stream (php://input): bool(false)
+Invalid stream (php://memory): bool(false)
+File stream: bool(false)
diff --git a/tests/output/stream_isatty_in-err.phpt b/tests/output/stream_isatty_in-err.phpt
new file mode 100644
index 0000000000..b93ea03640
--- /dev/null
+++ b/tests/output/stream_isatty_in-err.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Test stream_isatty with redirected STDIN/STDERR
+--CAPTURE_STDIO--
+STDIN STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/stream_isatty.inc';
+testToStdErr();
+?>
+--EXPECTF--
+STDIN (constant): bool(false)
+STDIN (fopen): bool(false)
+STDIN (php://fd/0): bool(false)
+STDOUT (constant): bool(true)
+STDOUT (fopen): bool(true)
+STDOUT (php://fd/1): bool(true)
+STDERR (constant): bool(false)
+STDERR (fopen): bool(false)
+STDERR (php://fd/2): bool(false)
+Not a stream:
+Warning: stream_isatty() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp): bool(false)
+Invalid stream (php://input): bool(false)
+Invalid stream (php://memory): bool(false)
+File stream: bool(false)
diff --git a/tests/output/stream_isatty_in-out-err.phpt b/tests/output/stream_isatty_in-out-err.phpt
new file mode 100644
index 0000000000..733d024b7e
--- /dev/null
+++ b/tests/output/stream_isatty_in-out-err.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Test stream_isatty with redirected STDIN/STDOUT/STDERR
+--CAPTURE_STDIO--
+STDIN STDOUT STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/stream_isatty.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant): bool(false)
+STDIN (fopen): bool(false)
+STDIN (php://fd/0): bool(false)
+STDOUT (constant): bool(false)
+STDOUT (fopen): bool(false)
+STDOUT (php://fd/1): bool(false)
+STDERR (constant): bool(false)
+STDERR (fopen): bool(false)
+STDERR (php://fd/2): bool(false)
+Not a stream:
+Warning: stream_isatty() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp): bool(false)
+Invalid stream (php://input): bool(false)
+Invalid stream (php://memory): bool(false)
+File stream: bool(false)
diff --git a/tests/output/stream_isatty_in-out.phpt b/tests/output/stream_isatty_in-out.phpt
new file mode 100644
index 0000000000..755ee82d18
--- /dev/null
+++ b/tests/output/stream_isatty_in-out.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Test stream_isatty with redirected STDIN/STDOUT
+--CAPTURE_STDIO--
+STDIN STDOUT
+--FILE--
+<?php
+require dirname(__FILE__).'/stream_isatty.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant): bool(false)
+STDIN (fopen): bool(false)
+STDIN (php://fd/0): bool(false)
+STDOUT (constant): bool(false)
+STDOUT (fopen): bool(false)
+STDOUT (php://fd/1): bool(false)
+STDERR (constant): bool(true)
+STDERR (fopen): bool(true)
+STDERR (php://fd/2): bool(true)
+Not a stream:
+Warning: stream_isatty() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp): bool(false)
+Invalid stream (php://input): bool(false)
+Invalid stream (php://memory): bool(false)
+File stream: bool(false)
diff --git a/tests/output/stream_isatty_out-err.phpt b/tests/output/stream_isatty_out-err.phpt
new file mode 100644
index 0000000000..97d804601b
--- /dev/null
+++ b/tests/output/stream_isatty_out-err.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Test stream_isatty with redirected STDOUT/STDERR
+--CAPTURE_STDIO--
+STDOUT STDERR
+--FILE--
+<?php
+require dirname(__FILE__).'/stream_isatty.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant): bool(true)
+STDIN (fopen): bool(true)
+STDIN (php://fd/0): bool(true)
+STDOUT (constant): bool(false)
+STDOUT (fopen): bool(false)
+STDOUT (php://fd/1): bool(false)
+STDERR (constant): bool(false)
+STDERR (fopen): bool(false)
+STDERR (php://fd/2): bool(false)
+Not a stream:
+Warning: stream_isatty() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp): bool(false)
+Invalid stream (php://input): bool(false)
+Invalid stream (php://memory): bool(false)
+File stream: bool(false)
diff --git a/tests/output/stream_isatty_out.phpt b/tests/output/stream_isatty_out.phpt
new file mode 100644
index 0000000000..ed592f12e1
--- /dev/null
+++ b/tests/output/stream_isatty_out.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Test stream_isatty with redirected STDOUT
+--CAPTURE_STDIO--
+STDOUT
+--FILE--
+<?php
+require dirname(__FILE__).'/stream_isatty.inc';
+testToStdOut();
+?>
+--EXPECTF--
+STDIN (constant): bool(true)
+STDIN (fopen): bool(true)
+STDIN (php://fd/0): bool(true)
+STDOUT (constant): bool(false)
+STDOUT (fopen): bool(false)
+STDOUT (php://fd/1): bool(false)
+STDERR (constant): bool(true)
+STDERR (fopen): bool(true)
+STDERR (php://fd/2): bool(true)
+Not a stream:
+Warning: stream_isatty() expects parameter 1 to be resource, string given in %s on line %d
+bool(false)
+Invalid stream (php://temp): bool(false)
+Invalid stream (php://input): bool(false)
+Invalid stream (php://memory): bool(false)
+File stream: bool(false)