summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStricted <info@stricted.net>2017-01-25 08:34:24 +0100
committerJoe Watkins <krakjoe@php.net>2017-01-25 20:50:14 +0000
commitbb059fe0a78af864ce62a658adcd22c931de127e (patch)
tree3d6603b5041dd9256e771589bcd7fe60cf669322
parent4a72d340a334be11aa529c4a24c8f5b2d531f364 (diff)
downloadphp-git-bb059fe0a78af864ce62a658adcd22c931de127e.tar.gz
add PHP_OS_FAMILY constant to determine on which os we are
-rw-r--r--NEWS1
-rw-r--r--main/main.c18
-rw-r--r--tests/basic/req60524-win.phpt2
-rw-r--r--tests/basic/req60524.phpt2
-rw-r--r--tests/lang/bug38579.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_notwindows.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_err.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_in-err.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_in-out-err.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_in-out.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_out-err.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winko_out.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_err.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_in-err.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_in-out-err.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_in-out.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_out-err.phpt2
-rw-r--r--tests/output/sapi_windows_vt100_support_winok_out.phpt2
-rw-r--r--tests/security/open_basedir_001.phpt2
-rw-r--r--tests/security/open_basedir_link.phpt2
-rw-r--r--tests/security/open_basedir_linkinfo.phpt2
-rw-r--r--tests/security/open_basedir_mkdir.phpt2
-rw-r--r--tests/security/open_basedir_parse_ini_file.phpt2
-rw-r--r--tests/security/open_basedir_readlink.phpt2
-rw-r--r--tests/security/open_basedir_realpath.phpt2
-rw-r--r--tests/security/open_basedir_symlink.phpt2
26 files changed, 42 insertions, 25 deletions
diff --git a/NEWS b/NEWS
index dbbea3b7eb..7d03c34a92 100644
--- a/NEWS
+++ b/NEWS
@@ -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');
}
?>