diff options
author | Stricted <info@stricted.net> | 2017-01-25 08:34:24 +0100 |
---|---|---|
committer | Joe Watkins <krakjoe@php.net> | 2017-01-25 20:50:14 +0000 |
commit | bb059fe0a78af864ce62a658adcd22c931de127e (patch) | |
tree | 3d6603b5041dd9256e771589bcd7fe60cf669322 | |
parent | 4a72d340a334be11aa529c4a24c8f5b2d531f364 (diff) | |
download | php-git-bb059fe0a78af864ce62a658adcd22c931de127e.tar.gz |
add PHP_OS_FAMILY constant to determine on which os we are
26 files changed, 42 insertions, 25 deletions
@@ -23,6 +23,7 @@ PHP NEWS . Raised minimum supported Windows versions to Windows 7/Server 2008 R2. (Anatol) . Fixed bug #73969 (segfault in debug_print_backtrace). (andrewnester) + . Added PHP_OS_FAMILY constant to determine on which OS we are. (Jan Altensen) - BCMath: . Fixed bug #46564 (bcmod truncates fractionals). (liborm85) diff --git a/main/main.c b/main/main.c index 17cf2995ff..ab01757efa 100644 --- a/main/main.c +++ b/main/main.c @@ -2051,7 +2051,7 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod zend_utility_functions zuf; zend_utility_values zuv; int retval = SUCCESS, module_number=0; /* for REGISTER_INI_ENTRIES() */ - char *php_os; + char *php_os, *php_os_family; zend_module_entry *module; #ifdef PHP_WIN32 @@ -2073,6 +2073,21 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod php_os = PHP_OS; #endif +#if defined(PHP_WIN32) + php_os_family = "WIN"; +#elif defined(BSD) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) + php_os_family = "BSD"; +#elif defined(__APPLE__) || defined(__MACH__) + php_os_family = "OSX"; +#elif defined(__sun__) + php_os_family = "SOLARIS"; +#elif defined(__linux__) + php_os_family = "LINUX"; +#else + php_os_family = "unknown"; +#endif + + #ifdef ZTS (void)ts_resource(0); #endif @@ -2153,6 +2168,7 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod #endif REGISTER_MAIN_LONG_CONSTANT("PHP_DEBUG", PHP_DEBUG, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_STRINGL_CONSTANT("PHP_OS", php_os, strlen(php_os), CONST_PERSISTENT | CONST_CS); + REGISTER_MAIN_STRINGL_CONSTANT("PHP_OS_FAMILY", php_os_family, strlen(php_os_family), CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_STRINGL_CONSTANT("PHP_SAPI", sapi_module.name, strlen(sapi_module.name), CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_STRINGL_CONSTANT("DEFAULT_INCLUDE_PATH", PHP_INCLUDE_PATH, sizeof(PHP_INCLUDE_PATH)-1, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_STRINGL_CONSTANT("PEAR_INSTALL_DIR", PEAR_INSTALLDIR, sizeof(PEAR_INSTALLDIR)-1, CONST_PERSISTENT | CONST_CS); diff --git a/tests/basic/req60524-win.phpt b/tests/basic/req60524-win.phpt index b2e7cfdab4..8eb38a528c 100644 --- a/tests/basic/req60524-win.phpt +++ b/tests/basic/req60524-win.phpt @@ -4,7 +4,7 @@ Req #60524 (Specify temporary directory) sys_temp_dir=C:\Windows --SKIPIF-- <?php -if( substr(PHP_OS, 0, 3) != "WIN" ) +if(PHP_OS_FAMILY !== "WIN") die('skip Run only on Windows'); ?> --FILE-- diff --git a/tests/basic/req60524.phpt b/tests/basic/req60524.phpt index 7cc3edfabf..e4999e1a20 100644 --- a/tests/basic/req60524.phpt +++ b/tests/basic/req60524.phpt @@ -4,7 +4,7 @@ Req #60524 (Specify temporary directory) sys_temp_dir=/path/to/temp/dir --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) == 'WIN') { +if(PHP_OS_FAMILY === "WIN") { die('skip non-windows only test'); } ?> diff --git a/tests/lang/bug38579.phpt b/tests/lang/bug38579.phpt index 445296c222..3c96e7f50f 100644 --- a/tests/lang/bug38579.phpt +++ b/tests/lang/bug38579.phpt @@ -2,7 +2,7 @@ Bug #38579 (include_once() may include the same file twice) --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) != 'WIN') { +if(PHP_OS_FAMILY !== "WIN") { die('skip only for Windows'); } ?> diff --git a/tests/output/sapi_windows_vt100_support_notwindows.phpt b/tests/output/sapi_windows_vt100_support_notwindows.phpt index 5ff382350a..d1afa4d9a3 100644 --- a/tests/output/sapi_windows_vt100_support_notwindows.phpt +++ b/tests/output/sapi_windows_vt100_support_notwindows.phpt @@ -2,7 +2,7 @@ Test that sapi_windows_vt100_support exists only on Windows --SKIPIF-- <?php -if (stripos(PHP_OS, 'WIN') === 0) { +if(PHP_OS_FAMILY === "WIN") { echo "skip Only for not Windows systems"; } ?> diff --git a/tests/output/sapi_windows_vt100_support_winko_err.phpt b/tests/output/sapi_windows_vt100_support_winko_err.phpt index 4357c741af..9c85a20725 100644 --- a/tests/output/sapi_windows_vt100_support_winko_err.phpt +++ b/tests/output/sapi_windows_vt100_support_winko_err.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on older Windows versions with redirected STDERR if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winko_in-err.phpt b/tests/output/sapi_windows_vt100_support_winko_in-err.phpt index fd508eedae..595b5c401f 100644 --- a/tests/output/sapi_windows_vt100_support_winko_in-err.phpt +++ b/tests/output/sapi_windows_vt100_support_winko_in-err.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on older Windows versions with redirected STDIN/ if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, 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 index 4af527f3d2..44fae220ff 100644 --- a/tests/output/sapi_windows_vt100_support_winko_in-out-err.phpt +++ b/tests/output/sapi_windows_vt100_support_winko_in-out-err.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on older Windows versions with redirected STDIN/ if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winko_in-out.phpt b/tests/output/sapi_windows_vt100_support_winko_in-out.phpt index 18b64acaa6..322e7ad229 100644 --- a/tests/output/sapi_windows_vt100_support_winko_in-out.phpt +++ b/tests/output/sapi_windows_vt100_support_winko_in-out.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on older Windows versions with redirected STDIN/ if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winko_out-err.phpt b/tests/output/sapi_windows_vt100_support_winko_out-err.phpt index 4fdf2dd5f9..e61652c13f 100644 --- a/tests/output/sapi_windows_vt100_support_winko_out-err.phpt +++ b/tests/output/sapi_windows_vt100_support_winko_out-err.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on older Windows versions with redirected STDOUT if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winko_out.phpt b/tests/output/sapi_windows_vt100_support_winko_out.phpt index 500cabcf9d..21966c8f64 100644 --- a/tests/output/sapi_windows_vt100_support_winko_out.phpt +++ b/tests/output/sapi_windows_vt100_support_winko_out.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on older Windows versions with redirected STDOUT if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winok_err.phpt b/tests/output/sapi_windows_vt100_support_winok_err.phpt index 3113891661..26da5564b3 100644 --- a/tests/output/sapi_windows_vt100_support_winok_err.phpt +++ b/tests/output/sapi_windows_vt100_support_winok_err.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on newer Windows versions with redirected STDERR if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winok_in-err.phpt b/tests/output/sapi_windows_vt100_support_winok_in-err.phpt index 4ca743fb46..646e169d9b 100644 --- a/tests/output/sapi_windows_vt100_support_winok_in-err.phpt +++ b/tests/output/sapi_windows_vt100_support_winok_in-err.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on newer Windows versions with redirected STDIN/ if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, 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 index a8d9380140..d277128095 100644 --- a/tests/output/sapi_windows_vt100_support_winok_in-out-err.phpt +++ b/tests/output/sapi_windows_vt100_support_winok_in-out-err.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on newer Windows versions with redirected STDIN/ if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winok_in-out.phpt b/tests/output/sapi_windows_vt100_support_winok_in-out.phpt index 17f90e5f55..1dd889aa05 100644 --- a/tests/output/sapi_windows_vt100_support_winok_in-out.phpt +++ b/tests/output/sapi_windows_vt100_support_winok_in-out.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on newer Windows versions with redirected STDIN/ if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winok_out-err.phpt b/tests/output/sapi_windows_vt100_support_winok_out-err.phpt index 03e7d2c5ec..e31b688179 100644 --- a/tests/output/sapi_windows_vt100_support_winok_out-err.phpt +++ b/tests/output/sapi_windows_vt100_support_winok_out-err.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on newer Windows versions with redirected STDOUT if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/output/sapi_windows_vt100_support_winok_out.phpt b/tests/output/sapi_windows_vt100_support_winok_out.phpt index 784a12d02c..5379ac2059 100644 --- a/tests/output/sapi_windows_vt100_support_winok_out.phpt +++ b/tests/output/sapi_windows_vt100_support_winok_out.phpt @@ -5,7 +5,7 @@ Test sapi_windows_vt100_support on newer Windows versions with redirected STDOUT if (getenv("SKIP_IO_CAPTURE_TESTS")) { die("skip I/O capture test"); } -if (stripos(PHP_OS, 'WIN') !== 0) { +if(PHP_OS_FAMILY !== "WIN") { echo "skip Only for Windows systems"; } elseif (version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, diff --git a/tests/security/open_basedir_001.phpt b/tests/security/open_basedir_001.phpt index 9ea9559942..7b198df843 100644 --- a/tests/security/open_basedir_001.phpt +++ b/tests/security/open_basedir_001.phpt @@ -2,7 +2,7 @@ openbase_dir runtime tightning --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) == 'WIN') { +if(PHP_OS_FAMILY === "WIN") { die('skip.. only for unix'); } if (!is_dir("/usr/local/bin")) { diff --git a/tests/security/open_basedir_link.phpt b/tests/security/open_basedir_link.phpt index 82f97d6b09..e03b23eb60 100644 --- a/tests/security/open_basedir_link.phpt +++ b/tests/security/open_basedir_link.phpt @@ -2,7 +2,7 @@ Test open_basedir configuration --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) == 'WIN') { +if(PHP_OS_FAMILY === "WIN") { die('skip no links on Windows'); } ?> diff --git a/tests/security/open_basedir_linkinfo.phpt b/tests/security/open_basedir_linkinfo.phpt index 55cf2c2f4b..0f2b941e3c 100644 --- a/tests/security/open_basedir_linkinfo.phpt +++ b/tests/security/open_basedir_linkinfo.phpt @@ -2,7 +2,7 @@ Test open_basedir configuration --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) == 'WIN') { +if(PHP_OS_FAMILY === "WIN") { die('skip no symlinks on Windows'); } ?> diff --git a/tests/security/open_basedir_mkdir.phpt b/tests/security/open_basedir_mkdir.phpt index 9c32d408a2..fba0dfbc0a 100644 --- a/tests/security/open_basedir_mkdir.phpt +++ b/tests/security/open_basedir_mkdir.phpt @@ -2,7 +2,7 @@ Test open_basedir configuration --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) != 'WIN') { +if(PHP_OS_FAMILY !== "WIN") { die('skip Windows only variation'); } ?> diff --git a/tests/security/open_basedir_parse_ini_file.phpt b/tests/security/open_basedir_parse_ini_file.phpt index d69adeb5e1..5dec5f83a7 100644 --- a/tests/security/open_basedir_parse_ini_file.phpt +++ b/tests/security/open_basedir_parse_ini_file.phpt @@ -4,7 +4,7 @@ Test open_basedir configuration open_basedir=. --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) != 'WIN') { +if(PHP_OS_FAMILY !== "WIN") { die('skip Windows only variation'); } ?> diff --git a/tests/security/open_basedir_readlink.phpt b/tests/security/open_basedir_readlink.phpt index 33720bbf1b..16c638a307 100644 --- a/tests/security/open_basedir_readlink.phpt +++ b/tests/security/open_basedir_readlink.phpt @@ -2,7 +2,7 @@ Test open_basedir configuration --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) == 'WIN') { +if(PHP_OS_FAMILY === "WIN") { die('skip no symlinks on Windows'); } ?> diff --git a/tests/security/open_basedir_realpath.phpt b/tests/security/open_basedir_realpath.phpt index 8cae890e99..c44215aa47 100644 --- a/tests/security/open_basedir_realpath.phpt +++ b/tests/security/open_basedir_realpath.phpt @@ -2,7 +2,7 @@ Test open_basedir configuration --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) != 'WIN') { +if(PHP_OS_FAMILY !== "WIN") { die('skip only run on Windows'); } ?> diff --git a/tests/security/open_basedir_symlink.phpt b/tests/security/open_basedir_symlink.phpt index cdc8e7bcc4..fe138cf956 100644 --- a/tests/security/open_basedir_symlink.phpt +++ b/tests/security/open_basedir_symlink.phpt @@ -2,7 +2,7 @@ Test open_basedir configuration --SKIPIF-- <?php -if (substr(PHP_OS, 0, 3) == 'WIN') { +if(PHP_OS_FAMILY === "WIN") { die('skip no symlinks on Windows'); } ?> |