mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-10 02:30:50 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e66bd9aac5 |
No files matched your search
@@ -1,8 +1,8 @@
|
||||
define ____executor_globals
|
||||
if basic_functions_module.zts
|
||||
set $tsrm_ls = ts_resource_ex(0, 0)
|
||||
set $eg = ((zend_executor_globals*) (*((void ***) $tsrm_ls))[executor_globals_id-1])
|
||||
set $cg = ((zend_compiler_globals*) (*((void ***) $tsrm_ls))[compiler_globals_id-1])
|
||||
set $eg = ((zend_executor_globals) (*((void ***) $tsrm_ls))[executor_globals_id-1])
|
||||
set $cg = ((zend_compiler_globals) (*((void ***) $tsrm_ls))[compiler_globals_id-1])
|
||||
else
|
||||
set $eg = executor_globals
|
||||
set $cg = compiler_globals
|
||||
@@ -37,60 +37,9 @@ end
|
||||
define dump_bt
|
||||
set $t = $arg0
|
||||
while $t
|
||||
printf "[%p] ", $t
|
||||
printf "[0x%08x] ", $t
|
||||
if $t->function_state.function->common.function_name
|
||||
if $t->function_state.arguments
|
||||
set $count = (int)*($t->function_state.arguments)
|
||||
printf "%s(", $t->function_state.function->common.function_name
|
||||
while $count > 0
|
||||
set $zvalue = *(zval **)($t->function_state.arguments - $count)
|
||||
set $type = $zvalue->type
|
||||
if $type == 0
|
||||
printf "NULL"
|
||||
end
|
||||
if $type == 1
|
||||
printf "%ld", $zvalue->value.lval
|
||||
end
|
||||
if $type == 2
|
||||
printf "%lf", $zvalue->value.dval
|
||||
end
|
||||
if $type == 3
|
||||
if $zvalue->value.lval
|
||||
printf "true"
|
||||
else
|
||||
printf "false"
|
||||
end
|
||||
end
|
||||
if $type == 4
|
||||
printf "array(%d)[%p]", $zvalue->value.ht->nNumOfElements, $zvalue
|
||||
end
|
||||
if $type == 5
|
||||
printf "object[%p]", $zvalue
|
||||
end
|
||||
if $type == 6
|
||||
____print_str $zvalue->value.str.val $zvalue->value.str.len
|
||||
end
|
||||
if $type == 7
|
||||
printf "resource(#%d)", $zvalue->value.lval
|
||||
end
|
||||
if $type == 8
|
||||
printf "constant"
|
||||
end
|
||||
if $type == 9
|
||||
printf "const_array"
|
||||
end
|
||||
if $type > 9
|
||||
printf "unknown type %d", $type
|
||||
end
|
||||
set $count = $count -1
|
||||
if $count > 0
|
||||
printf ", "
|
||||
end
|
||||
end
|
||||
printf ") "
|
||||
else
|
||||
printf "%s() ", $t->function_state.function->common.function_name
|
||||
end
|
||||
printf "%s() ", $t->function_state.function->common.function_name
|
||||
else
|
||||
printf "??? "
|
||||
end
|
||||
@@ -218,7 +167,7 @@ define ____printzv
|
||||
____executor_globals
|
||||
set $zvalue = $arg0
|
||||
|
||||
printf "[%p] ", $zvalue
|
||||
printf "[0x%08x] ", $zvalue
|
||||
|
||||
if $zvalue == $eg.uninitialized_zval_ptr
|
||||
printf "*uninitialized* "
|
||||
@@ -259,7 +208,7 @@ end
|
||||
|
||||
define print_const_table
|
||||
set $ind = 1
|
||||
printf "[%p] {\n", $arg0
|
||||
printf "[0x%08x] {\n", $arg0
|
||||
____print_const_table $arg0
|
||||
printf "}\n"
|
||||
end
|
||||
@@ -299,7 +248,7 @@ end
|
||||
|
||||
define print_ht
|
||||
set $ind = 1
|
||||
printf "[%p] {\n", $arg0
|
||||
printf "[0x%08x] {\n", $arg0
|
||||
____print_ht $arg0 1
|
||||
printf "}\n"
|
||||
end
|
||||
@@ -310,7 +259,7 @@ end
|
||||
|
||||
define print_htptr
|
||||
set $ind = 1
|
||||
printf "[%p] {\n", $arg0
|
||||
printf "[0x%08x] {\n", $arg0
|
||||
____print_ht $arg0 0
|
||||
printf "}\n"
|
||||
end
|
||||
@@ -321,7 +270,7 @@ end
|
||||
|
||||
define print_htstr
|
||||
set $ind = 1
|
||||
printf "[%p] {\n", $arg0
|
||||
printf "[0x%08x] {\n", $arg0
|
||||
____print_ht $arg0 2
|
||||
printf "}\n"
|
||||
end
|
||||
@@ -357,7 +306,7 @@ end
|
||||
|
||||
define print_ft
|
||||
set $ind = 1
|
||||
printf "[%p] {\n", $arg0
|
||||
printf "[0x%08x] {\n", $arg0
|
||||
____print_ft $arg0
|
||||
printf "}\n"
|
||||
end
|
||||
@@ -434,7 +383,7 @@ end
|
||||
|
||||
define print_pi
|
||||
set $pi = $arg0
|
||||
printf "[%p] {\n", $pi
|
||||
printf "[0x%08x] {\n", $pi
|
||||
printf " h = %lu\n", $pi->h
|
||||
printf " flags = %d (", $pi->flags
|
||||
if $pi->flags & 0x100
|
||||
@@ -490,7 +439,7 @@ define printzn
|
||||
set $optype = "IS_UNUSED"
|
||||
end
|
||||
|
||||
printf "[%p] %s", $znode, $optype
|
||||
printf "[0x%08x] %s", $znode, $optype
|
||||
|
||||
if $znode->op_type == 1
|
||||
printf ": "
|
||||
@@ -570,7 +519,7 @@ define zmemcheck
|
||||
else
|
||||
set $filename = $filename + 1
|
||||
end
|
||||
printf " %p ", $aptr
|
||||
printf " 0x%08x ", $aptr
|
||||
if $p->size == sizeof(struct _zval_struct) && ((struct _zval_struct *)$aptr)->type >= 0 && ((struct _zval_struct *)$aptr)->type < 10
|
||||
printf "ZVAL?(%-2d) ", $p->size
|
||||
else
|
||||
@@ -600,7 +549,7 @@ define zmemcheck
|
||||
end
|
||||
end
|
||||
if $not_found
|
||||
printf "no such block that begins at %p.\n", $aptr
|
||||
printf "no such block that begins at 0x%08x.\n", $aptr
|
||||
end
|
||||
if $arg0 == 0
|
||||
printf "-------------------------------------------------------------------------------\n"
|
||||
|
||||
-173
@@ -1,173 +0,0 @@
|
||||
ext/mysqlnd/mysqlnd.h ident
|
||||
ext/simplexml/simplexml.c ident
|
||||
ext/iconv/php_iconv.h ident
|
||||
ext/posix/posix.c ident
|
||||
ext/recode/recode.c ident
|
||||
ext/skeleton/create_stubs ident
|
||||
ext/phar/phar/pharcommand.inc ident
|
||||
ext/phar/phar.c ident
|
||||
ext/sysvmsg/sysvmsg.c ident
|
||||
ext/enchant/enchant.c ident
|
||||
ext/reflection/php_reflection.c ident
|
||||
ext/oci8/oci8.c ident
|
||||
ext/dba/libinifile/inifile.c ident
|
||||
ext/dba/libflatfile/flatfile.c ident
|
||||
ext/dba/libcdb/cdb_make.c ident
|
||||
ext/dba/libcdb/cdb.c ident
|
||||
ext/filter/filter.c ident
|
||||
README.input_filter ident
|
||||
run-tests.php ident
|
||||
sapi/nsapi/nsapi.c ident
|
||||
sapi/continuity/capi.c ident
|
||||
Zend/RFCs/002.txt ident
|
||||
Zend/RFCs/003.txt ident
|
||||
NEWS merge=NEWS
|
||||
/ext/bz2/tests/005.phpt -crlf
|
||||
/ext/dom/tests/dom005.phpt -crlf
|
||||
/ext/dom/tests/DOMImplementation_createDocumentType_basic.phpt -crlf
|
||||
/ext/ereg/tests/009.phpt -crlf
|
||||
/ext/iconv/tests/eucjp2sjis.phpt -crlf
|
||||
/ext/iconv/tests/eucjp2utf8.phpt -crlf
|
||||
/ext/iconv/tests/iconv_stream_filter_delimiter.phpt -crlf
|
||||
/ext/iconv/tests/iconv_stream_filter.phpt -crlf
|
||||
/ext/mbstring/tests/mb_split-compat-01.phpt -crlf
|
||||
/ext/phar/tests/005.phpt -crlf
|
||||
/ext/phar/tests/phar_commitwrite.phpt -crlf
|
||||
/ext/phar/tests/phar_create_in_cwd.phpt -crlf
|
||||
/ext/phar/tests/phar_mount.phpt -crlf
|
||||
/ext/reflection/tests/009.phpt -crlf
|
||||
/ext/reflection/tests/025.phpt -crlf
|
||||
/ext/standard/tests/general_functions/highlight_heredoc.phpt -crlf
|
||||
/ext/standard/tests/general_functions/parse_ini_file.phpt -crlf
|
||||
/ext/standard/tests/general_functions/parse_ini_string_002.phpt -crlf
|
||||
/ext/standard/tests/strings/006.phpt -crlf
|
||||
/ext/standard/tests/strings/addslashes_variation2.phpt -crlf
|
||||
/ext/standard/tests/strings/addslashes_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/bug21453.phpt -crlf
|
||||
/ext/standard/tests/strings/chop_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/chunk_split_variation11.phpt -crlf
|
||||
/ext/standard/tests/strings/chunk_split_variation12.phpt -crlf
|
||||
/ext/standard/tests/strings/chunk_split_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/crc32_variation2.phpt -crlf
|
||||
/ext/standard/tests/strings/crc32_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/crc32_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/highlight_file.phpt -crlf
|
||||
/ext/standard/tests/strings/htmlentities_html4.phpt -crlf
|
||||
/ext/standard/tests/strings/lcfirst.phpt -crlf
|
||||
/ext/standard/tests/strings/ltrim.phpt -crlf
|
||||
/ext/standard/tests/strings/nl2br_variation2.phpt -crlf
|
||||
/ext/standard/tests/strings/php_strip_whitespace.phpt -crlf
|
||||
/ext/standard/tests/strings/rtrim.phpt -crlf
|
||||
/ext/standard/tests/strings/sprintf_f_2.phpt -crlf
|
||||
/ext/standard/tests/strings/sprintf_variation15.phpt -crlf
|
||||
/ext/standard/tests/strings/strcspn_variation6.phpt -crlf
|
||||
/ext/standard/tests/strings/strcspn_variation7.phpt -crlf
|
||||
/ext/standard/tests/strings/strcspn_variation8.phpt -crlf
|
||||
/ext/standard/tests/strings/stripos_variation1.phpt -crlf
|
||||
/ext/standard/tests/strings/stripos_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/stripos_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/stripos_variation5.phpt -crlf
|
||||
/ext/standard/tests/strings/stripos_variation6.phpt -crlf
|
||||
/ext/standard/tests/strings/stripslashes_variation2.phpt -crlf
|
||||
/ext/standard/tests/strings/stripslashes_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/stripslashes_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/stripslashes_variation5.phpt -crlf
|
||||
/ext/standard/tests/strings/str_ireplace.phpt -crlf
|
||||
/ext/standard/tests/strings/strnatcmp_basic.phpt -crlf
|
||||
/ext/standard/tests/strings/strncasecmp_variation9.phpt -crlf
|
||||
/ext/standard/tests/strings/strpos.phpt -crlf
|
||||
/ext/standard/tests/strings/strrchr_variation1.phpt -crlf
|
||||
/ext/standard/tests/strings/strrchr_variation2.phpt -crlf
|
||||
/ext/standard/tests/strings/strrchr_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/strrchr_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/strrchr_variation6.phpt -crlf
|
||||
/ext/standard/tests/strings/strrchr_variation7.phpt -crlf
|
||||
/ext/standard/tests/strings/str_replace.phpt -crlf
|
||||
/ext/standard/tests/strings/strrev_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/strrev_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/strripos_variation1.phpt -crlf
|
||||
/ext/standard/tests/strings/strripos_variation2.phpt -crlf
|
||||
/ext/standard/tests/strings/strripos_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/strripos_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/strripos_variation5.phpt -crlf
|
||||
/ext/standard/tests/strings/strrpos_variation1.phpt -crlf
|
||||
/ext/standard/tests/strings/strrpos_variation2.phpt -crlf
|
||||
/ext/standard/tests/strings/strrpos_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/strrpos_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/strrpos_variation5.phpt -crlf
|
||||
/ext/standard/tests/strings/strrpos_variation6.phpt -crlf
|
||||
/ext/standard/tests/strings/strspn_variation5.phpt -crlf
|
||||
/ext/standard/tests/strings/strspn_variation6.phpt -crlf
|
||||
/ext/standard/tests/strings/strspn_variation7.phpt -crlf
|
||||
/ext/standard/tests/strings/strspn_variation8.phpt -crlf
|
||||
/ext/standard/tests/strings/strstr.phpt -crlf
|
||||
/ext/standard/tests/strings/strtok_variation1.phpt -crlf
|
||||
/ext/standard/tests/strings/strtok_variation3.phpt -crlf
|
||||
/ext/standard/tests/strings/strtr_variation1.phpt -crlf
|
||||
/ext/standard/tests/strings/strtr_variation2.phpt -crlf
|
||||
/ext/standard/tests/strings/str_word_count.phpt -crlf
|
||||
/ext/standard/tests/strings/trim1.phpt -crlf
|
||||
/ext/standard/tests/strings/ucfirst.phpt -crlf
|
||||
/ext/standard/tests/strings/vfprintf_variation10.phpt -crlf
|
||||
/ext/standard/tests/strings/vfprintf_variation12.phpt -crlf
|
||||
/ext/standard/tests/strings/vfprintf_variation16.phpt -crlf
|
||||
/ext/standard/tests/strings/vfprintf_variation18.phpt -crlf
|
||||
/ext/standard/tests/strings/vfprintf_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/vfprintf_variation6.phpt -crlf
|
||||
/ext/standard/tests/strings/vfprintf_variation7.phpt -crlf
|
||||
/ext/standard/tests/strings/vfprintf_variation8.phpt -crlf
|
||||
/ext/standard/tests/strings/vprintf_variation10.phpt -crlf
|
||||
/ext/standard/tests/strings/vprintf_variation12.phpt -crlf
|
||||
/ext/standard/tests/strings/vprintf_variation14.phpt -crlf
|
||||
/ext/standard/tests/strings/vprintf_variation18.phpt -crlf
|
||||
/ext/standard/tests/strings/vprintf_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/vprintf_variation6.phpt -crlf
|
||||
/ext/standard/tests/strings/vprintf_variation7.phpt -crlf
|
||||
/ext/standard/tests/strings/vprintf_variation8.phpt -crlf
|
||||
/ext/standard/tests/strings/vsprintf_variation10.phpt -crlf
|
||||
/ext/standard/tests/strings/vsprintf_variation12.phpt -crlf
|
||||
/ext/standard/tests/strings/vsprintf_variation14.phpt -crlf
|
||||
/ext/standard/tests/strings/vsprintf_variation16.phpt -crlf
|
||||
/ext/standard/tests/strings/vsprintf_variation4.phpt -crlf
|
||||
/ext/standard/tests/strings/vsprintf_variation6.phpt -crlf
|
||||
/ext/standard/tests/strings/vsprintf_variation7.phpt -crlf
|
||||
/ext/standard/tests/strings/vsprintf_variation8.phpt -crlf
|
||||
/ext/standard/tests/strings/wordwrap.phpt -crlf
|
||||
/ext/tidy/tests/010.phpt -crlf
|
||||
/ext/tidy/tests/012.phpt -crlf
|
||||
/ext/tidy/tests/025.phpt -crlf
|
||||
/ext/tidy/tests/030.phpt -crlf
|
||||
/ext/tokenizer/tests/bug26463.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation12.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation13.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation14.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation15.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation16.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation17.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation18.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation19.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation4.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation5.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation6.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation7.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation8.phpt -crlf
|
||||
/ext/tokenizer/tests/token_get_all_variation9.phpt -crlf
|
||||
/ext/xml/tests/bug26614_libxml.phpt -crlf
|
||||
/ext/xmlwriter/tests/004.phpt -crlf
|
||||
/ext/xmlwriter/tests/OO_004.phpt -crlf
|
||||
/ext/zlib/tests/005.phpt -crlf
|
||||
/ext/zlib/tests/gzfile_basic2.phpt -crlf
|
||||
/ext/zlib/tests/gzfile_basic.phpt -crlf
|
||||
/ext/zlib/tests/gzfilegzreadfile.phpt -crlf
|
||||
/ext/zlib/tests/readgzfile_basic2.phpt -crlf
|
||||
/ext/zlib/tests/readgzfile_basic.phpt -crlf
|
||||
/sapi/cli/tests/014.phpt -crlf
|
||||
/tests/run-test/test010.phpt -crlf
|
||||
/Zend/tests/bug35655.phpt -crlf
|
||||
/Zend/tests/bug48930.phpt -crlf
|
||||
/Zend/tests/bug61095.phpt -crlf
|
||||
/Zend/tests/heredoc_017.phpt -crlf
|
||||
/Zend/tests/heredoc_018.phpt -crlf
|
||||
/Zend/tests/nowdoc_013.phpt -crlf
|
||||
/Zend/tests/nowdoc_014.phpt -crlf
|
||||
/Zend/tests/nowdoc_015.phpt -crlf
|
||||
-254
@@ -1,254 +0,0 @@
|
||||
# General Ignores
|
||||
*~
|
||||
.#*
|
||||
*.
|
||||
*.slo
|
||||
*.mk
|
||||
*.mem
|
||||
*.gcda
|
||||
*.gcno
|
||||
*.la
|
||||
*.lo
|
||||
*.o
|
||||
*.a
|
||||
*.ncb
|
||||
*.opt
|
||||
*.plg
|
||||
*swp
|
||||
*.patch
|
||||
*.tgz
|
||||
*.tar.gz
|
||||
*.tar.bz2
|
||||
.FBCIndex
|
||||
.FBCLockFolder
|
||||
.deps
|
||||
.libs
|
||||
phpt.*
|
||||
core
|
||||
dynlib.m4
|
||||
Debug
|
||||
Debug_TS
|
||||
Makefile
|
||||
Makefile.fragments
|
||||
Makefile.objects
|
||||
Release
|
||||
Release_TS
|
||||
Release_TSDbg
|
||||
Release_TS_inline
|
||||
Release_inline
|
||||
ZendEngine1
|
||||
_libs
|
||||
acconfig.h
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
bsd_converted
|
||||
buildconf.stamp
|
||||
buildmk.stamp
|
||||
confdefs.h
|
||||
config.h
|
||||
config.guess
|
||||
config.cache
|
||||
config.h.in
|
||||
config.log
|
||||
config.nice
|
||||
config.nice.bat
|
||||
config.status
|
||||
config.sub
|
||||
config_vars.mk
|
||||
configuration-parser.c
|
||||
configuration-parser.h
|
||||
configuration-parser.output
|
||||
configuration-scanner.c
|
||||
configure
|
||||
configure.bat
|
||||
configure.js
|
||||
conftest
|
||||
conftest.c
|
||||
debug.log
|
||||
diff
|
||||
generated_lists
|
||||
include
|
||||
install-sh
|
||||
internal_functions.c
|
||||
lcov_data
|
||||
lcov_html
|
||||
libs
|
||||
libtool
|
||||
meta_cc
|
||||
meta_ccld
|
||||
missing
|
||||
mkinstalldirs
|
||||
modules
|
||||
php
|
||||
php-*.tar.gz
|
||||
php5.spec
|
||||
php_lcov.info
|
||||
php_test_results_*.txt
|
||||
php_version.h
|
||||
results.txt
|
||||
shlibtool
|
||||
stamp-h
|
||||
test.php3
|
||||
tmp-php.ini
|
||||
want_dependencies
|
||||
x64
|
||||
stamp-h.in
|
||||
scan_makefile_in.awk
|
||||
TSRM/tsrm_config.h
|
||||
Zend/zend_config.h
|
||||
Zend/zend_ini_parser.c
|
||||
Zend/zend_ini_parser.h
|
||||
Zend/zend_ini_parser.output
|
||||
Zend/zend_language_parser.c
|
||||
Zend/zend_language_parser.h
|
||||
Zend/zend_language_parser.output
|
||||
ext/date/lib/timelib_config.h
|
||||
ext/iconv/php_iconv_aliased_libiconv.h
|
||||
ext/phar/phar.php
|
||||
main/php_config.h
|
||||
main/php_config.h.in
|
||||
|
||||
# Test specific Ignores
|
||||
tests/*/*.diff
|
||||
tests/*/*.out
|
||||
tests/*/*.php
|
||||
tests/*/*.exp
|
||||
tests/*/*.log
|
||||
tests/*/*.sh
|
||||
*/tests/*.diff
|
||||
*/tests/*.out
|
||||
*/tests/*.php
|
||||
*/tests/*.exp
|
||||
*/tests/*.log
|
||||
*/tests/*.sh
|
||||
*/tests/*/*.diff
|
||||
*/tests/*/*.out
|
||||
*/tests/*/*.php
|
||||
*/tests/*/*.exp
|
||||
*/tests/*/*.log
|
||||
*/tests/*/*.sh
|
||||
*/*/tests/*.diff
|
||||
*/*/tests/*.out
|
||||
*/*/tests/*.php
|
||||
*/*/tests/*.exp
|
||||
*/*/tests/*.log
|
||||
*/*/tests/*.sh
|
||||
*/*/tests/*/*.diff
|
||||
*/*/tests/*/*.out
|
||||
*/*/tests/*/*.php
|
||||
*/*/tests/*/*.exp
|
||||
*/*/tests/*/*.log
|
||||
*/*/tests/*/*.sh
|
||||
|
||||
# Extension specifc ignores
|
||||
ext/*/configure.in
|
||||
ext/*/ltmain.sh
|
||||
ext/*/libs.mk
|
||||
ext/*/build
|
||||
ext/*/scan_makefile_in.awk
|
||||
ext/*/Makefile.global
|
||||
ext/*/acinclude.m4
|
||||
ext/*/config.sub
|
||||
|
||||
# Extension specific
|
||||
ext/iconv/scan_makefile_in.awk
|
||||
ext/iconv/php_have_bsd_iconv.h
|
||||
ext/iconv/php_have_ibm_iconv.h
|
||||
ext/iconv/php_have_libiconv.h
|
||||
ext/iconv/php_php_iconv_h_path.h
|
||||
ext/iconv/php_have_glibc_iconv.h
|
||||
ext/iconv/php_php_iconv_impl.h
|
||||
ext/iconv/php_have_iconv.h
|
||||
ext/iconv/php_iconv_supports_errno.h
|
||||
ext/mbstring/libmbfl/Makefile.in
|
||||
ext/mbstring/libmbfl/autoscan.log
|
||||
ext/mbstring/libmbfl/config.sub
|
||||
ext/mbstring/libmbfl/depcomp
|
||||
ext/mbstring/libmbfl/ltmain.sh
|
||||
ext/mbstring/libmbfl/stamp-h1
|
||||
ext/mbstring/libmbfl/*.dll
|
||||
ext/mbstring/libmbfl/*.lib
|
||||
ext/mbstring/libmbfl/*.RES
|
||||
ext/mbstring/libmbfl/*.res
|
||||
ext/mbstring/libmbfl/*.obj
|
||||
ext/mbstring/libmbfl/*.tds
|
||||
ext/mbstring/libmbfl/filters/Makefile.in
|
||||
ext/mbstring/libmbfl/mbfl/Makefile.in
|
||||
ext/mbstring/libmbfl/mbfl/EastAsianWidth.txt
|
||||
ext/mbstring/libmbfl/nls/Makefile.in
|
||||
ext/mssql/#*#
|
||||
ext/mssql/Makefile.global
|
||||
ext/mssql/acinclude.m4
|
||||
ext/mssql/config.sub
|
||||
ext/mssql/configure.in
|
||||
ext/mssql/ltmain.sh
|
||||
ext/mysql/weztest.sqlite
|
||||
ext/oci8/tests/*.tmp
|
||||
ext/oci8/tests/*.vglog
|
||||
ext/pdo/conftest*
|
||||
ext/pdo/tests/*.db
|
||||
ext/pdo/tests/*.tmp
|
||||
ext/pdo_firebird/conftest*
|
||||
ext/pdo_mysql/conftest*
|
||||
ext/pdo_mysql/tests/*.db
|
||||
ext/pdo_mysql/tests/*.tmp
|
||||
ext/pdo_oci/conftest*
|
||||
ext/pdo_odbc/tests/*.db
|
||||
ext/pdo_odbc/tests/*.tmp
|
||||
ext/pdo_odbc/tests/*.mdb
|
||||
ext/pdo_pgsql/conftest*
|
||||
ext/pdo_pgsql/tests/*.db
|
||||
ext/pdo_pgsql/tests/*.tmp
|
||||
ext/pdo_sqlite/conftest*
|
||||
ext/pdo_sqlite/sqlite3.h
|
||||
ext/pdo_sqlite/tests/*.db
|
||||
ext/pdo_sqlite/tests/*.tmp
|
||||
ext/phar/phar.phar
|
||||
ext/pspell/tests/*.tmp
|
||||
ext/reflection/xml
|
||||
ext/reflection/html
|
||||
ext/reflection/spl.chm
|
||||
ext/simplexml/examples/security.new.xml
|
||||
ext/spl/examples/.htaccess
|
||||
ext/spl/examples/*.phps
|
||||
ext/sqlite/weztest.sqlite
|
||||
ext/sqlite/libsqlite/src/sqlite.h
|
||||
ext/sqlite/libsqlite/src/parse.out
|
||||
ext/sqlite/libsqlite/src/libsqlite.dsw
|
||||
ext/sqlite3/tests/phpsql*
|
||||
ext/sqlite3/tests/*.db
|
||||
ext/sqlite3/tests/*.tmp
|
||||
ext/standard/tests/misc/*.txt
|
||||
ext/standard/tests/strings/*.txt
|
||||
main/build-defs.h
|
||||
main/internal_functions_cli.c
|
||||
main/config.w32.h
|
||||
main/stamp-h1
|
||||
main/streams/build-defs.h
|
||||
main/streams/stamp-h1
|
||||
pear/install-pear-nozlib.phar
|
||||
pear/phpize
|
||||
pear/run-tests
|
||||
pear/php-config
|
||||
pear/scripts
|
||||
sapi/apache/libphp5.module
|
||||
sapi/apache2handler/libphp5.module
|
||||
sapi/apache_hooks/libphp5.module
|
||||
sapi/cgi/php-cgi
|
||||
sapi/cli/php.1
|
||||
sapi/fpm/php-fpm
|
||||
sapi/fpm/php-fpm.1
|
||||
sapi/fpm/init.d.php-fpm
|
||||
sapi/fpm/php-fpm.conf
|
||||
sapi/fpm/fpm/php-cgi
|
||||
scripts/php-config
|
||||
scripts/phpize
|
||||
scripts/man1/*.1
|
||||
win32/*.suo
|
||||
win32/*.aps
|
||||
win32/*.positions
|
||||
win32/ext
|
||||
win32/phpts.def
|
||||
win32/wsyslog.h
|
||||
win32/win32.dsp
|
||||
win32/php.dsw
|
||||
+1
-1
@@ -337,7 +337,7 @@ MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: curl
|
||||
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>, Ilia Alshanetsky <iliaa@php.net>, Pierrick Charron <pierrick@php.net>
|
||||
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>,Ilia Alshanetsky <iliaa@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
SINCE: 4.0.2
|
||||
|
||||
+1
-2
@@ -12,8 +12,7 @@ php_lcov.info: lcov-test
|
||||
@rm -rf lcov_data/
|
||||
@$(mkinstalldirs) lcov_data/
|
||||
@echo
|
||||
-@files=`find . -name \*.gcda -o -name \*.gcno -o -name \*.da -o -name \*.h | sed -e 's/^\.\///' | sed -e 's/\.gcda//g' -e 's/\.gcno//g' -e 's/\.da//g' | uniq` ;\
|
||||
for x in $$files; do \
|
||||
-@find . -name \*.gcda -o -name \*.gcno -o -name \*.da -o -name \*.h | sed -e 's/^\.\///' | sed -e 's/\.gcda//g' -e 's/\.gcno//g' -e 's/\.da//g' | uniq | while read x; do \
|
||||
echo -n . ;\
|
||||
y=`echo $$x | sed -e 's!\.libs/!!'`; \
|
||||
dir=lcov_data/`dirname $$x`; \
|
||||
|
||||
+31
-22
@@ -45,35 +45,43 @@ way round.
|
||||
Rolling a non stable release (alpha/beta/RC)
|
||||
--------------------------------------------
|
||||
|
||||
1. Check windows snapshot builder logs (http://windows.php.net/downloads/snaps/ the last revision)
|
||||
1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
|
||||
|
||||
2. run the "scripts/dev/credits" script in php-src and commit the changes in the
|
||||
credits files in ext/standard.
|
||||
|
||||
3. Checkout the release branch for this release (e.g., PHP-5.4.2).
|
||||
|
||||
4. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
|
||||
3. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
|
||||
Do not use abbreviations for alpha and beta.
|
||||
|
||||
5. Commit these changes to the branch with ``git commit -a``.
|
||||
4. Commit those changes and note the revision id.
|
||||
|
||||
6. Tag the repository with the version, e.g.:
|
||||
``git tag -u YOURKEYID PHP-5.4.2-RC2``
|
||||
5. tag the repository with the version. To do the tag in a fast way do a svn copy on the server using full URLs. You should use the revision id from the above commit to prevent mistakes in case there was a commit in between. f.e. "``svn cp https://svn.php.net/repository/php/php-src/branches/PHP_5_3@308399 https://svn.php.net/repository/php/php-src/tags/php_5_3_6RC1``"
|
||||
(of course, you need to change that to the version you're rolling an RC for).
|
||||
|
||||
7. Push the changes to the main repo:
|
||||
``git push --tags origin HEAD``
|
||||
6. Bump up the version numbers in ``main/php_version.h``, ``configure.in``
|
||||
and possibly ``NEWS`` again, to the **next** version. F.e. if the release
|
||||
candidate was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless
|
||||
if we get a new RC or not. This is to make sure ``version_compare()`` can
|
||||
correctly work.
|
||||
|
||||
8. run: ``./makedist 5.4.2-RC2``, this will export the tree, create configure
|
||||
7. Commit those changes
|
||||
|
||||
8. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
|
||||
branch if you're rolling 4.4.x releases).
|
||||
|
||||
9. You do not have to update the tree, but of course you can with "``svn up``".
|
||||
|
||||
10. run: ``./makedist php 4.4.1RC1``, this will export the tree, create configure
|
||||
and build two tarballs (one gz and one bz2).
|
||||
|
||||
9. Copy those two tarballs to www.php.net, in your homedir there should be a
|
||||
11. Copy those two tarballs to www.php.net, in your homedir there should be a
|
||||
directory "downloads/". Copy them into there, so that the system can generate
|
||||
MD5 sums. If you do not have this directory, talk to Derick.
|
||||
|
||||
10. Now the RC can be found on http://downloads.php.net/yourname,
|
||||
12. Now the RC can be found on http://downloads.php.net/yourname,
|
||||
f.e. http://downloads.php.net/derick/
|
||||
|
||||
11. Once the release has been tagged, contact the PHP Windows development team
|
||||
13. Once the release has been tagged, contact the PHP Windows development team
|
||||
(internals-win@lists.php.net) so that Windows binaries can be created. Once
|
||||
those are made, they should be placed into the same directory as the source snapshots.
|
||||
|
||||
@@ -96,7 +104,7 @@ Derick) run the following commands for you:
|
||||
|
||||
``sudo -u ezmlm ezmlm-sub ~ezmlm/primary-qa-tester/mod moderator-email-address``
|
||||
|
||||
3. Update ``qa.git/include/release-qa.php`` with the appropriate information.
|
||||
3. Update ``web/qa/trunk/include/release-qa.php`` with the appropriate information.
|
||||
See the documentation within release-qa.php for more information, but all releases
|
||||
and RCs are configured here. Only $QA_RELEASES needs to be edited.
|
||||
|
||||
@@ -105,21 +113,22 @@ Derick) run the following commands for you:
|
||||
|
||||
Note: Remember to update the MD5 checksum information.
|
||||
|
||||
4. Update ``php.git/include/version.inc`` (x=major version number)
|
||||
|
||||
a. ``$PHP_x_RC`` = "5.4.0RC1"
|
||||
1. Update in ``web/php-bugs/trunk/include/php_versions.php`` to include the new RC and commit.
|
||||
|
||||
2. Update ``web/php/trunk/include/version.inc`` (x=major version number)
|
||||
|
||||
a. ``$PHP_x_RC`` = "5.3.0RC1"
|
||||
|
||||
b. ``$PHP_x_RC_DATE`` = "06 September 2007"
|
||||
|
||||
5. Commit and push those changes:
|
||||
3. Commit those changes:
|
||||
|
||||
a. ``git commit -a && git push origin master``
|
||||
a. ``svn commit web/qa/trunk web/php-bugs/trunk web/php/trunk``
|
||||
|
||||
6. For the first RC, write the doc team (phpdoc@lists.php.net) about updating the
|
||||
4. For the first RC, write the doc team (phpdoc@lists.php.net) about updating the
|
||||
INSTALL and win32/install.txt files which are generated from the PHP manual sources.
|
||||
|
||||
7. Publish the announce on www.php.net as well (for all releases, alpha, RCs or other)
|
||||
|
||||
Rolling a stable release
|
||||
------------------------
|
||||
|
||||
@@ -157,7 +166,7 @@ and build two tarballs (one gz and one bz2).
|
||||
|
||||
13. Once the release has been tagged, contact the PHP Windows development team
|
||||
(internals-win@lists.php.net) so that Windows binaries can be created. Once
|
||||
those are made, they should be committed to SVN too.
|
||||
those are made, they should be committed to CVS too.
|
||||
|
||||
14. Check if the pear files are updated (phar for 5.1+ or run pear/make-pear-bundle.php with 4.4)
|
||||
|
||||
|
||||
+3
-4
@@ -39,15 +39,14 @@ Having said that, here are the organizational rules::
|
||||
To do so use "make test".
|
||||
|
||||
7. For development use the --enable-maintainer-zts switch to ensure your
|
||||
code handles TSRM correctly and doesn't break for those who need that.
|
||||
code handles TSRM correctly and doesn't break for thos who need that.
|
||||
|
||||
Currently we have the following branches in use::
|
||||
|
||||
trunk The active development branch.
|
||||
|
||||
branches/PHP_5_4 Is used to release the PHP 5.4.x series. In release
|
||||
process, only bugfixes and very small changes approved
|
||||
by RMs are allowed.
|
||||
branches/PHP_5_4 Is used to release the PHP 5.4.x series. It still allows for
|
||||
larger enhancements.
|
||||
|
||||
branches/PHP_5_3 Is used to release the PHP 5.3.x series. This is current
|
||||
stable version and is open for bugfixes and small
|
||||
|
||||
+1
-1
@@ -86,7 +86,7 @@ PHP_MINFO_FUNCTION(my_input_filter)
|
||||
{
|
||||
php_info_print_table_start();
|
||||
php_info_print_table_row( 2, "My Input Filter Support", "enabled" );
|
||||
php_info_print_table_row( 2, "Revision", "$Id$");
|
||||
php_info_print_table_row( 2, "Revision", "$Revision$");
|
||||
php_info_print_table_end();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2012 The PHP Group |
|
||||
| Copyright (c) 1997-2011 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2012 The PHP Group |
|
||||
| Copyright (c) 1997-2011 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+4
-16
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2012 The PHP Group |
|
||||
| Copyright (c) 1997-2011 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -760,9 +760,6 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i
|
||||
|
||||
while (1) {
|
||||
if (len <= start) {
|
||||
if (link_is_dir) {
|
||||
*link_is_dir = 1;
|
||||
}
|
||||
return start;
|
||||
}
|
||||
|
||||
@@ -779,10 +776,6 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i
|
||||
continue;
|
||||
} else if (i == len - 2 && path[i] == '.' && path[i+1] == '.') {
|
||||
/* remove '..' and previous directory */
|
||||
is_dir = 1;
|
||||
if (link_is_dir) {
|
||||
*link_is_dir = 1;
|
||||
}
|
||||
if (i - 1 <= start) {
|
||||
return start ? start : len;
|
||||
}
|
||||
@@ -1207,14 +1200,9 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
return 1;
|
||||
}
|
||||
memcpy(resolved_path, state->cwd, state_cwd_length);
|
||||
if (resolved_path[state_cwd_length-1] == DEFAULT_SLASH) {
|
||||
memcpy(resolved_path + state_cwd_length, path, path_length + 1);
|
||||
path_length += state_cwd_length;
|
||||
} else {
|
||||
resolved_path[state_cwd_length] = DEFAULT_SLASH;
|
||||
memcpy(resolved_path + state_cwd_length + 1, path, path_length + 1);
|
||||
path_length += state_cwd_length + 1;
|
||||
}
|
||||
resolved_path[state_cwd_length] = DEFAULT_SLASH;
|
||||
memcpy(resolved_path + state_cwd_length + 1, path, path_length + 1);
|
||||
path_length += state_cwd_length + 1;
|
||||
}
|
||||
} else {
|
||||
#ifdef TSRM_WIN32
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2012 The PHP Group |
|
||||
| Copyright (c) 1997-2011 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2012 The PHP Group |
|
||||
| Copyright (c) 1997-2011 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2012 The PHP Group |
|
||||
| Copyright (c) 1997-2011 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ Zend MM disabled:
|
||||
Shared extensions:
|
||||
------------------
|
||||
|
||||
Since PHP 5.3.11 it is possible to prevent shared extensions from unloading so
|
||||
Since PHP 5.4 it is possible to prevent shared extensions from unloading so
|
||||
that valgrind can correctly track the memory leaks in shared extensions. For
|
||||
this there is the ZEND_DONT_UNLOAD_MODULES environment variable. If set, then
|
||||
DL_UNLOAD() is skipped during the shutdown of shared extensions.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
Title: Zend 2.0 Namespaces
|
||||
Version: $Id$
|
||||
Version: $Revision$
|
||||
Status: declined
|
||||
Maintainer: Stig S. Bakken <ssb@php.net>
|
||||
Created: 2001-09-08
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
Title: Loose type requirements for functions
|
||||
Version: $Id$
|
||||
Version: $Revision$
|
||||
Status: draft
|
||||
Maintainer: Brian Moon <brianm@dealnews.com>
|
||||
Created: 2001-09-17
|
||||
|
||||
+2
-8
@@ -393,20 +393,14 @@ int main()
|
||||
AC_CHECK_FUNCS(mremap)
|
||||
|
||||
|
||||
AC_ARG_ENABLE(zend-signals,
|
||||
[ --enable-zend-signals Use zend signal handling],[
|
||||
ZEND_SIGNALS=$enableval
|
||||
],[
|
||||
ZEND_SIGNALS=no
|
||||
])
|
||||
|
||||
AC_CHECK_FUNC(sigaction, [
|
||||
ZEND_SIGNALS=yes
|
||||
AC_DEFINE(ZEND_SIGNALS, 1, [Use zend signal handling])
|
||||
AC_DEFINE(HAVE_SIGACTION, 1, [Whether sigaction() is available])
|
||||
], [
|
||||
ZEND_SIGNALS=no
|
||||
])
|
||||
if test "$ZEND_SIGNALS" = "yes"; then
|
||||
AC_DEFINE(ZEND_SIGNALS, 1, [Use zend signal handling])
|
||||
CFLAGS="$CFLAGS -DZEND_SIGNALS"
|
||||
fi
|
||||
|
||||
|
||||
@@ -202,35 +202,6 @@ function read_str_offset($n) {
|
||||
}
|
||||
}
|
||||
|
||||
function issetor($n) {
|
||||
$val = array(0,1,2,3,4,5,6,7,8,9);
|
||||
for ($i = 0; $i < $n; ++$i) {
|
||||
$x = $val ?: null;
|
||||
}
|
||||
}
|
||||
|
||||
function issetor2($n) {
|
||||
$f = false; $j = 0;
|
||||
for ($i = 0; $i < $n; ++$i) {
|
||||
$x = $f ?: $j + 1;
|
||||
}
|
||||
}
|
||||
|
||||
function ternary($n) {
|
||||
$val = array(0,1,2,3,4,5,6,7,8,9);
|
||||
$f = false;
|
||||
for ($i = 0; $i < $n; ++$i) {
|
||||
$x = $f ? null : $val;
|
||||
}
|
||||
}
|
||||
|
||||
function ternary2($n) {
|
||||
$f = false; $j = 0;
|
||||
for ($i = 0; $i < $n; ++$i) {
|
||||
$x = $f ? $f : $j + 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*****/
|
||||
|
||||
function empty_loop($n) {
|
||||
@@ -347,12 +318,4 @@ read_hash(N);
|
||||
$t = end_test($t, '$x = $hash[\'v\']', $overhead);
|
||||
read_str_offset(N);
|
||||
$t = end_test($t, '$x = $str[0]', $overhead);
|
||||
issetor(N);
|
||||
$t = end_test($t, '$x = $a ?: null', $overhead);
|
||||
issetor2(N);
|
||||
$t = end_test($t, '$x = $f ?: tmp', $overhead);
|
||||
ternary(N);
|
||||
$t = end_test($t, '$x = $f ? $f : $a', $overhead);
|
||||
ternary2(N);
|
||||
$t = end_test($t, '$x = $f ? $f : tmp', $overhead);
|
||||
total($t0, "Total");
|
||||
@@ -1,16 +0,0 @@
|
||||
--TEST--
|
||||
Bug #55719 (Argument restriction should come with a more specific error message)
|
||||
--FILE--
|
||||
<?php
|
||||
Class Base {
|
||||
public function &test($foo, array $bar, $option = NULL, $extra = "lllllllllllllllllllllllllllllllllllllllllllllllllll") {
|
||||
}
|
||||
}
|
||||
|
||||
class Sub extends Base {
|
||||
public function &test() {
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of Sub::test() should be compatible with & Base::test($foo, array $bar, $option = NULL, $extra = 'llllllllll...') in %sargument_restriction_001.php on line %d
|
||||
@@ -1,16 +0,0 @@
|
||||
--TEST--
|
||||
Bug #55719 (Argument restriction should come with a more specific error message)
|
||||
--FILE--
|
||||
<?php
|
||||
Abstract Class Base {
|
||||
public function test($foo, array &$bar, $option = NULL, $extra = 3.141592653589793238462643383279502884197169399375105 ) {
|
||||
}
|
||||
}
|
||||
|
||||
class Sub extends Base {
|
||||
public function test($foo, array &$bar) {
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of Sub::test() should be compatible with Base::test($foo, array &$bar, $option = NULL, $extra = 3.1415926535898) in %sargument_restriction_002.php on line %d
|
||||
@@ -1,19 +0,0 @@
|
||||
--TEST--
|
||||
Bug #55719 (Argument restriction should come with a more specific error message)
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
}
|
||||
|
||||
Abstract Class Base {
|
||||
public function test(Foo $foo, array $bar, $option = NULL, $extra = "lllllllllllllllllllllllllllllllllllllllllllllllllll") {
|
||||
}
|
||||
}
|
||||
|
||||
class Sub extends Base {
|
||||
public function test() {
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of Sub::test() should be compatible with Base::test(Foo $foo, array $bar, $option = NULL, $extra = 'llllllllll...') in %sargument_restriction_003.php on line %d
|
||||
@@ -1,17 +0,0 @@
|
||||
--TEST--
|
||||
Bug #55719 (Argument restriction should come with a more specific error message)
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
}
|
||||
|
||||
Abstract Class Base {
|
||||
abstract public function test(Foo $foo, array $bar, $option = NULL, $extra = 16777215) ;
|
||||
}
|
||||
|
||||
class Sub extends Base {
|
||||
public function test(Foo $foo, array $bar, $option = NULL, $extra = 0xffffff ) {
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
@@ -1,11 +0,0 @@
|
||||
--TEST--
|
||||
Bug #55719 (Argument restriction should come with a more specific error message)
|
||||
--FILE--
|
||||
<?php
|
||||
class Sub implements ArrayAccess {
|
||||
public function offsetSet() {
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Declaration of Sub::offsetSet() must be compatible with ArrayAccess::offsetSet($offset, $value) in %sargument_restriction_005.php on line %d
|
||||
@@ -1,16 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60174 (Notice when array in method prototype error)
|
||||
--FILE--
|
||||
<?php
|
||||
Abstract Class Base {
|
||||
public function test($foo, $extra = array("test")) {
|
||||
}
|
||||
}
|
||||
|
||||
class Sub extends Base {
|
||||
public function test($foo, $extra) {
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of Sub::test() should be compatible with Base::test($foo, $extra = Array) in %sargument_restriction_006.php on line %d
|
||||
@@ -17,7 +17,7 @@ var_dump(isset($a['b']));
|
||||
|
||||
$simpleString = "Bogus String Text";
|
||||
echo isset($simpleString->wrong)?"bug\n":"ok\n";
|
||||
echo isset($simpleString["wrong"])?"bug\n":"ok\n";
|
||||
echo isset($simpleString["wrong"])?"ok\n":"bug\n";
|
||||
echo isset($simpleString[-1])?"bug\n":"ok\n";
|
||||
echo isset($simpleString[0])?"ok\n":"bug\n";
|
||||
echo isset($simpleString["0"])?"ok\n":"bug\n";
|
||||
@@ -34,8 +34,8 @@ bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
@@ -44,12 +44,8 @@ ok
|
||||
ok
|
||||
ok
|
||||
|
||||
Notice: Trying to get property of non-object in %s on line %d
|
||||
Notice: Trying to get property of non-object in %sbug31098.php on line %d
|
||||
ok
|
||||
|
||||
Warning: Illegal string offset 'wrong' in %s on line %d
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
|
||||
Warning: Illegal string offset 'wrong' in %s on line %d
|
||||
ok
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #34199 (if($obj)/if(!$obj) inconsistency because of cast handler)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("simplexml")) print "skip SimpleXML extension required"; ?>
|
||||
<?php if (!extension_loaded("simplexml")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$xml = "<root></root>";
|
||||
|
||||
+14
-25
@@ -6,7 +6,7 @@ Bug #39018 (Error control operator '@' fails to suppress "Uninitialized string o
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$a = 'foo';
|
||||
$a[111111111111111111111];
|
||||
$a[11111111111];
|
||||
|
||||
$a = '';
|
||||
|
||||
@@ -62,42 +62,31 @@ print "\nDone\n";
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
|
||||
Notice: Uninitialized string offset: 0 in %s on line %d
|
||||
Notice: Uninitialized string offset: %i in %s on line 6
|
||||
|
||||
Notice: Uninitialized string offset: 0 in %s on line %d
|
||||
Notice: Uninitialized string offset: 0 in %s on line 10
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
Notice: Uninitialized string offset: 0 in %s on line 12
|
||||
|
||||
Notice: Uninitialized string offset: %i in %s on line %d
|
||||
Notice: Uninitialized string offset: %i in %s on line 14
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
Notice: Uninitialized string offset: %i in %s on line 16
|
||||
|
||||
Notice: Uninitialized string offset: %i in %s on line %d
|
||||
Notice: Uninitialized string offset: 0 in %s on line 18
|
||||
|
||||
Notice: Uninitialized string offset: 0 in %s on line %d
|
||||
Notice: Uninitialized string offset: 4 in %s on line 28
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line %d
|
||||
Notice: Uninitialized string offset: 4 in %s on line 34
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line %d
|
||||
Notice: Uninitialized string offset: 4 in %s on line 38
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line %d
|
||||
Notice: Uninitialized string offset: 4 in %s on line 42
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line %d
|
||||
Notice: Uninitialized string offset: 4 in %s on line 46
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line %d
|
||||
Notice: Uninitialized string offset: 12 in %s on line 50
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
|
||||
Notice: Uninitialized string offset: 12 in %s on line %d
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
|
||||
Notice: Uninitialized string offset: 12 in %s on line %d
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
Notice: Uninitialized string offset: 12 in %s on line 52
|
||||
b
|
||||
Done
|
||||
@@ -7,10 +7,10 @@ Bug #39304 (Segmentation fault with list unpacking of string offset)
|
||||
echo "I am alive";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Uninitialized string offset: 0 in %sbug39304.php on line %d
|
||||
Notice: Uninitialized string offset: 0 in %sbug39304.php on line 3
|
||||
|
||||
Notice: Uninitialized string offset: 1 in %sbug39304.php on line %d
|
||||
Notice: Uninitialized string offset: 1 in %sbug39304.php on line 3
|
||||
|
||||
Notice: Uninitialized string offset: 0 in %sbug39304.php on line %d
|
||||
Notice: Uninitialized string offset: 0 in %sbug39304.php on line 3
|
||||
I am alive
|
||||
|
||||
@@ -9,10 +9,10 @@ Bug #39304 (Segmentation fault with list unpacking of string offset)
|
||||
var_dump($a,$b);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line %d
|
||||
Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line 3
|
||||
|
||||
Notice: Uninitialized string offset: 1 in %sbug39304_2_4.php on line %d
|
||||
Notice: Uninitialized string offset: 1 in %sbug39304_2_4.php on line 3
|
||||
|
||||
Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line %d
|
||||
Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line 3
|
||||
string(0) ""
|
||||
string(0) ""
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #39602 (Invalid session.save_handler crashes PHP)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("session")) die("skip session extension required"); ?>
|
||||
<?php if (!extension_loaded("session")) die("skip"); ?>
|
||||
--INI--
|
||||
session.save_handler=qwerty
|
||||
error_reporting=0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #42819 (namespaces in indexes of constant arrays)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("spl")) print "skip SPL extension required"; ?>
|
||||
<?php if (!extension_loaded("spl")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
namespace foo\foo;
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
--TEST--
|
||||
Bug #43200 (Interface implementation / inheritence not possible in abstract classes)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
interface a {
|
||||
function foo();
|
||||
function bar();
|
||||
}
|
||||
interface b {
|
||||
function foo();
|
||||
}
|
||||
|
||||
abstract class c {
|
||||
function bar() { }
|
||||
}
|
||||
|
||||
class x extends c implements a, b {
|
||||
function foo() { }
|
||||
}
|
||||
|
||||
ReflectionClass::export('x');
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Class [ <user> class x extends c implements a, b ] {
|
||||
@@ %s 15-17
|
||||
|
||||
- Constants [0] {
|
||||
}
|
||||
|
||||
- Static properties [0] {
|
||||
}
|
||||
|
||||
- Static methods [0] {
|
||||
}
|
||||
|
||||
- Properties [0] {
|
||||
}
|
||||
|
||||
- Methods [2] {
|
||||
Method [ <user, prototype b> public method foo ] {
|
||||
@@ %s 16 - 16
|
||||
}
|
||||
|
||||
Method [ <user, inherits c, prototype a> public method bar ] {
|
||||
@@ %s 12 - 12
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
--TEST--
|
||||
Bug #43200.2 (Interface implementation / inheritence not possible in abstract classes)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
interface A {
|
||||
function foo();
|
||||
}
|
||||
|
||||
abstract class B implements A {
|
||||
abstract public function foo();
|
||||
}
|
||||
|
||||
class C extends B {
|
||||
public function foo() {
|
||||
echo 'works';
|
||||
}
|
||||
}
|
||||
|
||||
$o = new C();
|
||||
$o->foo();
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
works
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #43918 (Segmentation fault in garbage collector)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("simplexml")) print "skip SimpleXML extension required"; ?>
|
||||
<?php if (!extension_loaded("simplexml")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$xmlstr = <<<XML
|
||||
|
||||
@@ -14,4 +14,6 @@ class b implements a { function f($a=1) {}}
|
||||
class c extends b {function f() {}}
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(60) "Declaration of c::f() should be compatible with b::f($a = 1)"
|
||||
string(62) "Declaration of c::f() should be compatible with that of b::f()"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #50174 (Incorrectly matched docComment)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded('reflection') || !extension_loaded('spl')) print "skip SPL and reflection extensions required"; ?>
|
||||
<?php if (!extension_loaded('reflection') || !extension_loaded('spl')) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
@@ -15,4 +15,4 @@ class Test extends TestInterface {
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Declaration of Test::__construct() must be compatible with TestInterface::__construct(ExampleClass $var) in %s on line %d
|
||||
Fatal error: Declaration of Test::__construct() must be compatible with that of TestInterface::__construct() in %s on line %d
|
||||
@@ -9,7 +9,7 @@ $simpleString["wrong"] = "f";
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
bool(false)
|
||||
bool(true)
|
||||
|
||||
Warning: Attempt to modify property of non-object in %sbug54262.php on line 4
|
||||
|
||||
|
||||
@@ -5,44 +5,9 @@ Bug #55509 (segfault on x86_64 using more than 2G memory)
|
||||
if (PHP_INT_SIZE == 4) {
|
||||
die('skip Not for 32-bits OS');
|
||||
}
|
||||
if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
|
||||
// check the available memory
|
||||
if (PHP_OS == 'Linux') {
|
||||
$lines = file('/proc/meminfo');
|
||||
$infos = array();
|
||||
foreach ($lines as $line) {
|
||||
$tmp = explode(":", $line);
|
||||
$index = strtolower($tmp[0]);
|
||||
$value = (int)ltrim($tmp[1], " ")*1024;
|
||||
$infos[$index] = $value;
|
||||
}
|
||||
$freeMemory = $infos['memfree']+$infos['buffers']+$infos['cached'];
|
||||
if ($freeMemory < 2100*1024*1024) {
|
||||
die('skip Not enough memory.');
|
||||
}
|
||||
}
|
||||
elseif (PHP_OS == 'FreeBSD') {
|
||||
$lines = explode("\n",`sysctl -a`);
|
||||
$infos = array();
|
||||
foreach ($lines as $line) {
|
||||
if(!$line){
|
||||
continue;
|
||||
}
|
||||
$tmp = explode(":", $line);
|
||||
$index = strtolower($tmp[0]);
|
||||
$value = trim($tmp[1], " ");
|
||||
$infos[$index] = $value;
|
||||
}
|
||||
$freeMemory = ($infos['vm.stats.vm.v_inactive_count']*$infos['hw.pagesize'])
|
||||
+($infos['vm.stats.vm.v_cache_count']*$infos['hw.pagesize'])
|
||||
+($infos['vm.stats.vm.v_free_count']*$infos['hw.pagesize']);
|
||||
if ($freeMemory < 2100*1024*1024) {
|
||||
die('skip Not enough memory.');
|
||||
}
|
||||
}
|
||||
?>
|
||||
--INI--
|
||||
memory_limit=2100M
|
||||
memory_limit=3G
|
||||
--FILE--
|
||||
<?php
|
||||
$a1 = str_repeat("1", 1024 * 1024 * 1024 * 0.5);
|
||||
@@ -55,11 +20,14 @@ $a4 = str_repeat("4", 1024 * 1024 * 1024 * 0.5);
|
||||
echo "4\n";
|
||||
$a5 = str_repeat("5", 1024 * 1024 * 1024 * 0.5);
|
||||
echo "5\n";
|
||||
$a6 = str_repeat("6", 1024 * 1024 * 1024 * 0.5);
|
||||
echo "6\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %sbug55509.php on line %d
|
||||
Fatal error: Allowed memory size of %d bytes exhausted (tried to allocate %d bytes) in %s/bug55509.php on line %d
|
||||
@@ -1,9 +0,0 @@
|
||||
--TEST--
|
||||
Bug #55705 (Omitting a callable typehinted argument causes a segfault)
|
||||
--FILE--
|
||||
<?php
|
||||
function f(callable $c) {}
|
||||
f();
|
||||
?>
|
||||
--EXPECTF--
|
||||
Catchable fatal error: Argument 1 passed to f() must be callable, none given, called in %s on line 3 and defined in %s on line %d
|
||||
@@ -1,17 +0,0 @@
|
||||
--TEST--
|
||||
Bug #55825 (Missing initial value of static locals in trait methods)
|
||||
--FILE--
|
||||
<?php
|
||||
trait T1 {
|
||||
public function inc() {
|
||||
static $x=1;
|
||||
echo $x++ . "\n";
|
||||
}
|
||||
}
|
||||
class C { use T1; }
|
||||
$c1 = new C;
|
||||
$c1->inc();
|
||||
$c1->inc();
|
||||
--EXPECT--
|
||||
1
|
||||
2
|
||||
@@ -1,10 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60099 (__halt_compiler() works in braced namespaces)
|
||||
--FILE--
|
||||
<?php
|
||||
namespace foo {
|
||||
__halt_compiler();
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: __HALT_COMPILER() can only be used from the outermost scope in %s on line %d
|
||||
@@ -1,16 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60138 (GC crash with referenced array in RecursiveArrayIterator)
|
||||
--FILE--
|
||||
<?php
|
||||
$tree = array(array("f"));
|
||||
$category =& $tree[0];
|
||||
|
||||
$iterator = new RecursiveIteratorIterator(
|
||||
new RecursiveArrayIterator($tree),
|
||||
RecursiveIteratorIterator::SELF_FIRST
|
||||
);
|
||||
foreach($iterator as $file);
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
@@ -1,32 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60139 (Anonymous functions create cycles not detected by the GC)
|
||||
--INI--
|
||||
zend.enable_gc=1
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
public $x;
|
||||
|
||||
public function __construct() {
|
||||
$this->x = function() {};
|
||||
}
|
||||
}
|
||||
|
||||
class Bar {
|
||||
public $x;
|
||||
|
||||
public function __construct() {
|
||||
$self = $this;
|
||||
$this->x = function() use ($self) {};
|
||||
}
|
||||
}
|
||||
|
||||
gc_collect_cycles();
|
||||
new Foo;
|
||||
var_dump(gc_collect_cycles());
|
||||
new Bar;
|
||||
var_dump(gc_collect_cycles());
|
||||
?>
|
||||
--EXPECT--
|
||||
int(2)
|
||||
int(2)
|
||||
@@ -1,11 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60169 (Conjunction of ternary and list crashes PHP)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(0);
|
||||
$arr = array("test");
|
||||
list($a,$b) = is_array($arr)? $arr : $arr;
|
||||
list($c,$d) = is_array($arr)?: NULL;
|
||||
echo "ok\n";
|
||||
--EXPECT--
|
||||
ok
|
||||
@@ -1,11 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60350 No string escape code for ESC (ascii 27), normally \e
|
||||
--FILE--
|
||||
<?php
|
||||
$str = "\e";
|
||||
if (ord($str) == 27) {
|
||||
echo "Works";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
Works
|
||||
@@ -1,74 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60362: non-existent sub-sub keys should not have values
|
||||
--FILE--
|
||||
<?php
|
||||
$arr = array('exists' => 'foz');
|
||||
|
||||
if (isset($arr['exists']['non_existent'])) {
|
||||
echo "sub-key 'non_existent' is set: ";
|
||||
var_dump($arr['exists']['non_existent']);
|
||||
} else {
|
||||
echo "sub-key 'non_existent' is not set.\n";
|
||||
}
|
||||
if (isset($arr['exists'][1])) {
|
||||
echo "sub-key 1 is set: ";
|
||||
var_dump($arr['exists'][1]);
|
||||
} else {
|
||||
echo "sub-key 1 is not set.\n";
|
||||
}
|
||||
|
||||
echo "-------------------\n";
|
||||
if (isset($arr['exists']['non_existent']['sub_sub'])) {
|
||||
echo "sub-key 'sub_sub' is set: ";
|
||||
var_dump($arr['exists']['non_existent']['sub_sub']);
|
||||
} else {
|
||||
echo "sub-sub-key 'sub_sub' is not set.\n";
|
||||
}
|
||||
if (isset($arr['exists'][1][0])) {
|
||||
echo "sub-sub-key 0 is set: ";
|
||||
var_dump($arr['exists'][1][0]);
|
||||
} else {
|
||||
echo "sub-sub-key 0 is not set.\n";
|
||||
}
|
||||
|
||||
echo "-------------------\n";
|
||||
if (empty($arr['exists']['non_existent'])) {
|
||||
echo "sub-key 'non_existent' is empty.\n";
|
||||
} else {
|
||||
echo "sub-key 'non_existent' is not empty: ";
|
||||
var_dump($arr['exists']['non_existent']);
|
||||
}
|
||||
if (empty($arr['exists'][1])) {
|
||||
echo "sub-key 1 is empty.\n";
|
||||
} else {
|
||||
echo "sub-key 1 is not empty: ";
|
||||
var_dump($arr['exists'][1]);
|
||||
}
|
||||
|
||||
echo "-------------------\n";
|
||||
if (empty($arr['exists']['non_existent']['sub_sub'])) {
|
||||
echo "sub-sub-key 'sub_sub' is empty.\n";
|
||||
} else {
|
||||
echo "sub-sub-key 'sub_sub' is not empty: ";
|
||||
var_dump($arr['exists']['non_existent']['sub_sub']);
|
||||
}
|
||||
if (empty($arr['exists'][1][0])) {
|
||||
echo "sub-sub-key 0 is empty.\n";
|
||||
} else {
|
||||
echo "sub-sub-key 0 is not empty: ";
|
||||
var_dump($arr['exists'][1][0]);
|
||||
}
|
||||
echo "DONE";
|
||||
--EXPECT--
|
||||
sub-key 'non_existent' is not set.
|
||||
sub-key 1 is set: string(1) "o"
|
||||
-------------------
|
||||
sub-sub-key 'sub_sub' is not set.
|
||||
sub-sub-key 0 is set: string(1) "o"
|
||||
-------------------
|
||||
sub-key 'non_existent' is empty.
|
||||
sub-key 1 is not empty: string(1) "o"
|
||||
-------------------
|
||||
sub-sub-key 'sub_sub' is empty.
|
||||
sub-sub-key 0 is not empty: string(1) "o"
|
||||
DONE
|
||||
@@ -1,18 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60444 (Segmentation fault with include & class extending)
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
public function __construct() {
|
||||
eval("class Bar extends Foo {}");
|
||||
Some::foo($this);
|
||||
}
|
||||
}
|
||||
class Some {
|
||||
public static function foo(Foo $foo) {
|
||||
}
|
||||
}
|
||||
new Foo;
|
||||
echo "done\n";
|
||||
--EXPECT--
|
||||
done
|
||||
@@ -1,25 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60536 (Traits Segfault)
|
||||
--FILE--
|
||||
<?php
|
||||
trait T { private $x = 0; }
|
||||
class X {
|
||||
use T;
|
||||
}
|
||||
class Y extends X {
|
||||
use T;
|
||||
function x() {
|
||||
return ++$this->x;
|
||||
}
|
||||
}
|
||||
class Z extends Y {
|
||||
function z() {
|
||||
return ++$this->x;
|
||||
}
|
||||
}
|
||||
$a = new Z();
|
||||
$a->x();
|
||||
echo "DONE";
|
||||
?>
|
||||
--EXPECTF--
|
||||
DONE
|
||||
@@ -1,40 +0,0 @@
|
||||
--TEST--
|
||||
The same rules are applied for properties that are defined in the class hierarchy. Thus, if the properties are compatible, a notice is issued, if not a fatal error occures. (relevant with #60536)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
class Base {
|
||||
private $hello;
|
||||
}
|
||||
|
||||
trait THello1 {
|
||||
private $hello;
|
||||
}
|
||||
|
||||
echo "PRE-CLASS-GUARD\n";
|
||||
class Notice extends Base {
|
||||
use THello1;
|
||||
private $hello;
|
||||
}
|
||||
echo "POST-CLASS-GUARD\n";
|
||||
|
||||
// now we do the test for a fatal error
|
||||
|
||||
class TraitsTest {
|
||||
use THello1;
|
||||
public $hello;
|
||||
}
|
||||
|
||||
echo "POST-CLASS-GUARD2\n";
|
||||
|
||||
$t = new TraitsTest;
|
||||
$t->hello = "foo";
|
||||
?>
|
||||
--EXPECTF--
|
||||
PRE-CLASS-GUARD
|
||||
|
||||
Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d
|
||||
POST-CLASS-GUARD
|
||||
|
||||
Fatal error: TraitsTest and THello1 define the same property ($hello) in the composition of TraitsTest. However, the definition differs and is considered incompatible. Class was composed in %s on line %d
|
||||
@@ -1,46 +0,0 @@
|
||||
--TEST--
|
||||
Properties should be initialized correctly (relevant to #60536)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
class BaseWithPropA {
|
||||
private $hello = 0;
|
||||
}
|
||||
|
||||
trait AHelloProperty {
|
||||
private $hello = 0;
|
||||
}
|
||||
|
||||
class BaseWithTPropB {
|
||||
use AHelloProperty;
|
||||
}
|
||||
|
||||
class SubclassA extends BaseWithPropA {
|
||||
use AHelloProperty;
|
||||
}
|
||||
|
||||
class SubclassB extends BaseWithTPropB {
|
||||
use AHelloProperty;
|
||||
}
|
||||
|
||||
$a = new SubclassA;
|
||||
var_dump($a);
|
||||
|
||||
$b = new SubclassB;
|
||||
var_dump($b);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
object(SubclassA)#%d (2) {
|
||||
["hello":"SubclassA":private]=>
|
||||
int(0)
|
||||
["hello":"BaseWithPropA":private]=>
|
||||
int(0)
|
||||
}
|
||||
object(SubclassB)#%d (2) {
|
||||
["hello":"SubclassB":private]=>
|
||||
int(0)
|
||||
["hello":"BaseWithTPropB":private]=>
|
||||
int(0)
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
--TEST--
|
||||
Introducing new private variables of the same name in a subclass is ok, and does not lead to any output. That is consitent with normal inheritance handling. (relevant to #60536)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
class Base {
|
||||
private $hello;
|
||||
}
|
||||
|
||||
trait THello1 {
|
||||
private $hello;
|
||||
}
|
||||
|
||||
// Now we use the trait, which happens to introduce another private variable
|
||||
// but they are distinct, and not related to each other, so no warning.
|
||||
echo "PRE-CLASS-GUARD\n";
|
||||
class SameNameInSubClassNoNotice extends Base {
|
||||
use THello1;
|
||||
}
|
||||
echo "POST-CLASS-GUARD\n";
|
||||
|
||||
// now the same with a class that defines the property itself,
|
||||
// that should give the expected strict warning.
|
||||
|
||||
class Notice extends Base {
|
||||
use THello1;
|
||||
private $hello;
|
||||
}
|
||||
echo "POST-CLASS-GUARD2\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
PRE-CLASS-GUARD
|
||||
POST-CLASS-GUARD
|
||||
|
||||
Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %sbug60536_004.php on line %d
|
||||
POST-CLASS-GUARD2
|
||||
@@ -1,38 +0,0 @@
|
||||
--TEST--
|
||||
Introducing new private variables of the same name in a subclass is ok, and does not lead to any output. That is consitent with normal inheritance handling. (relevant to #60536)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
class Base {
|
||||
protected $hello;
|
||||
}
|
||||
|
||||
trait THello1 {
|
||||
protected $hello;
|
||||
}
|
||||
|
||||
// Protected and public are handle more strict with a warning then what is
|
||||
// expected from normal inheritance since they can have easier coliding semantics
|
||||
echo "PRE-CLASS-GUARD\n";
|
||||
class SameNameInSubClassProducesNotice extends Base {
|
||||
use THello1;
|
||||
}
|
||||
echo "POST-CLASS-GUARD\n";
|
||||
|
||||
// now the same with a class that defines the property itself, too.
|
||||
|
||||
class Notice extends Base {
|
||||
use THello1;
|
||||
protected $hello;
|
||||
}
|
||||
echo "POST-CLASS-GUARD2\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
PRE-CLASS-GUARD
|
||||
|
||||
Strict Standards: Base and THello1 define the same property ($hello) in the composition of SameNameInSubClassProducesNotice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d
|
||||
POST-CLASS-GUARD
|
||||
|
||||
Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d
|
||||
POST-CLASS-GUARD2
|
||||
Binary file not shown.
@@ -1,84 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60573 (type hinting with "self" keyword causes weird errors)
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo1 {
|
||||
|
||||
public function setSelf(self $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Bar1 extends Foo1 {
|
||||
|
||||
public function setSelf(parent $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Foo2 {
|
||||
|
||||
public function setSelf(Foo2 $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Bar2 extends Foo2 {
|
||||
|
||||
public function setSelf(parent $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Base {
|
||||
}
|
||||
|
||||
class Foo3 extends Base{
|
||||
|
||||
public function setSelf(parent $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Bar3 extends Foo3 {
|
||||
|
||||
public function setSelf(Base $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Foo4 {
|
||||
|
||||
public function setSelf(self $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Bar4 extends Foo4 {
|
||||
|
||||
public function setSelf(self $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Foo5 extends Base {
|
||||
|
||||
public function setSelf(parent $s) { }
|
||||
|
||||
}
|
||||
|
||||
class Bar5 extends Foo5 {
|
||||
|
||||
public function setSelf(parent $s) { }
|
||||
|
||||
}
|
||||
|
||||
abstract class Foo6 extends Base {
|
||||
|
||||
abstract public function setSelf(parent $s);
|
||||
|
||||
}
|
||||
|
||||
class Bar6 extends Foo6 {
|
||||
|
||||
public function setSelf(Foo6 $s) { }
|
||||
|
||||
}
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of Bar4::setSelf() should be compatible with Foo4::setSelf(Foo4 $s) in %sbug60573.php on line %d
|
||||
|
||||
Strict Standards: Declaration of Bar5::setSelf() should be compatible with Foo5::setSelf(Base $s) in %sbug60573.php on line %d
|
||||
|
||||
Fatal error: Declaration of Bar6::setSelf() must be compatible with Foo6::setSelf(Base $s) in %sbug60573.php on line %d
|
||||
@@ -1,27 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60611 (Segmentation fault with Cls::{expr}() syntax)
|
||||
--FILE--
|
||||
<?php
|
||||
class Cls {
|
||||
function __call($name, $arg) {
|
||||
}
|
||||
static function __callStatic($name, $arg) {
|
||||
}
|
||||
}
|
||||
|
||||
$cls = new Cls;
|
||||
$cls->{0}();
|
||||
$cls->{1.0}();
|
||||
$cls->{true}();
|
||||
$cls->{false}();
|
||||
$cls->{null}();
|
||||
|
||||
Cls::{0}();
|
||||
Cls::{1.0}();
|
||||
Cls::{true}();
|
||||
Cls::{false}();
|
||||
Cls::{null}();
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Method name must be a string in %sbug60611.php on line %d
|
||||
@@ -1,18 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60613 (Segmentation fault with $cls->{expr}() syntax)
|
||||
--FILE--
|
||||
<?php
|
||||
class Cls {
|
||||
function __call($name, $arg) {
|
||||
}
|
||||
}
|
||||
|
||||
$cls = new Cls();
|
||||
$cls->{0}();
|
||||
$cls->{1.0}();
|
||||
$cls->{true}();
|
||||
$cls->{false}();
|
||||
$cls->{null}();
|
||||
echo "ok\n";
|
||||
--EXPECTF--
|
||||
Fatal error: Method name must be a string in %sbug60613.php on line %d
|
||||
@@ -1,9 +0,0 @@
|
||||
--TEST--
|
||||
test of larger than 8kb text file being parsed by require statement
|
||||
--FILE--
|
||||
<?php
|
||||
file_put_contents('test.php',str_repeat('passed, ',1024));
|
||||
require('test.php');
|
||||
?>
|
||||
--EXPECT--
|
||||
passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed,Line truncated
|
||||
@@ -1,19 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60825 (Segfault when running symfony 2 tests)
|
||||
--DESCRIPTION--
|
||||
run this with valgrind
|
||||
--FILE--
|
||||
<?php
|
||||
class test {
|
||||
public static $x;
|
||||
public function __toString() {
|
||||
self::$x = $this;
|
||||
return __FILE__;
|
||||
}
|
||||
}
|
||||
$a = new test;
|
||||
require_once $a;
|
||||
debug_zval_dump(test::$x);
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(%d) "%sbug60825.php" refcount(2)
|
||||
@@ -1,10 +0,0 @@
|
||||
--TEST--
|
||||
Bug #60978 (exit code incorrect)
|
||||
--FILE--
|
||||
<?php
|
||||
$php = getenv('TEST_PHP_EXECUTABLE');
|
||||
exec($php . ' -n -r "exit(2);"', $output, $exit_code);
|
||||
echo $exit_code;
|
||||
?>
|
||||
--EXPECT--
|
||||
2
|
||||
@@ -1,35 +0,0 @@
|
||||
--TEST--
|
||||
Bug #61011 (Crash when an exception is thrown by __autoload accessing a static property)
|
||||
--FILE--
|
||||
<?php
|
||||
function __autoload($name) {
|
||||
throw new Exception($name);
|
||||
}
|
||||
try {
|
||||
echo AAA::$a; //zend_fetch_var_address_helper
|
||||
} catch (Exception $e) {
|
||||
try {
|
||||
echo AAA::XXX; //ZEND_FETCH_CONSTANT
|
||||
} catch (Exception $e) {
|
||||
try {
|
||||
echo AAA::foo(); //ZEND_INIT_STATIC_METHOD_CALL
|
||||
} catch (Exception $e) {
|
||||
try {
|
||||
unset(AAA::$a); // ZEND_UNSET_VAR
|
||||
} catch (Exception $e){
|
||||
try {
|
||||
isset(AAAA::$a); // ZEND_ISSET_ISEMPTY_VAR
|
||||
} catch (Exception $e) {
|
||||
try {
|
||||
$a = array("AAA", "foo");
|
||||
$a(); //ZEND_INIT_FCALL_BY_NAME
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo 'okey';
|
||||
--EXPECT--
|
||||
okey
|
||||
@@ -1,10 +0,0 @@
|
||||
--TEST--
|
||||
Bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode)
|
||||
--FILE--
|
||||
<?php
|
||||
// the used file is actually irrelevant, so just use this file
|
||||
// even though it's not an .ini
|
||||
parse_ini_file(__FILE__, false, 100);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Invalid scanner mode in %s on line %d
|
||||
@@ -1,9 +0,0 @@
|
||||
--TEST--
|
||||
Bug #61095 (Lexing 0x00*+<NUM> incorectly)
|
||||
--FILE--
|
||||
<?php
|
||||
echo 0x00+2;
|
||||
echo "\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
2
|
||||
@@ -1,28 +0,0 @@
|
||||
--TEST--
|
||||
Bug #61165 (Segfault - strip_tags())
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$handler = NULL;
|
||||
class T {
|
||||
public $_this;
|
||||
|
||||
public function __toString() {
|
||||
global $handler;
|
||||
$handler = $this;
|
||||
$this->_this = $this; // <-- uncoment this
|
||||
return 'A';
|
||||
}
|
||||
}
|
||||
|
||||
$t = new T;
|
||||
for ($i = 0; $i < 3; $i++) {
|
||||
strip_tags($t);
|
||||
strip_tags(new T);
|
||||
}
|
||||
var_dump($handler);
|
||||
--EXPECTF--
|
||||
object(T)#%d (1) {
|
||||
["_this"]=>
|
||||
*RECURSION*
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
--TEST--
|
||||
Bug #61225 (Lexing 0b0*+<NUM> incorectly)
|
||||
--FILE--
|
||||
<?php
|
||||
echo 0b00+1;
|
||||
echo "\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
1
|
||||
@@ -1,15 +0,0 @@
|
||||
--TEST--
|
||||
Bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes)
|
||||
--FILE--
|
||||
<?php
|
||||
/**
|
||||
* for 5.3 #define ZEND_VM_STACK_PAGE_SIZE ((64 * 1024) - 64)
|
||||
* for 5.4 #define ZEND_VM_STACK_PAGE_SIZE ((16 * 1024) - 16)
|
||||
* we should trick EG(argument_stack) into growing
|
||||
*/
|
||||
$args = array_fill(0, 64 * 1024 - 64, 0);
|
||||
call_user_func_array(function(&$a) {}, $args);
|
||||
echo strval("okey");
|
||||
--EXPECTF--
|
||||
Warning: Parameter 1 to {closure}() expected to be a reference, value given in %sbug61273.php on line %d
|
||||
okey
|
||||
Binary file not shown.
@@ -50,46 +50,26 @@ var_dump($d.$d);
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(24) "Arraythis is test object"
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(16) "Arraysome string"
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(8) "Array222"
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(13) "Array2323.444"
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(10) "ArrayArray"
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(24) "this is test objectArray"
|
||||
string(30) "this is test objectsome string"
|
||||
string(22) "this is test object222"
|
||||
string(27) "this is test object2323.444"
|
||||
string(38) "this is test objectthis is test object"
|
||||
string(30) "some stringthis is test object"
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(16) "some stringArray"
|
||||
string(14) "some string222"
|
||||
string(19) "some string2323.444"
|
||||
string(22) "some stringsome string"
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(8) "222Array"
|
||||
string(22) "222this is test object"
|
||||
string(14) "222some string"
|
||||
string(11) "2222323.444"
|
||||
string(6) "222222"
|
||||
|
||||
Notice: Array to string conversion in %sconcat_001.php on line %d
|
||||
string(13) "2323.444Array"
|
||||
string(27) "2323.444this is test object"
|
||||
string(19) "2323.444some string"
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
--TEST--
|
||||
Testing empty() with string offsets
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
print "- empty ---\n";
|
||||
|
||||
$str = "test0123";
|
||||
|
||||
var_dump(empty($str[-1]));
|
||||
var_dump(empty($str[0]));
|
||||
var_dump(empty($str[1]));
|
||||
var_dump(empty($str[4])); // 0
|
||||
var_dump(empty($str[5])); // 1
|
||||
var_dump(empty($str[8]));
|
||||
var_dump(empty($str[10000]));
|
||||
// non-numeric offsets
|
||||
print "- string ---\n";
|
||||
var_dump(empty($str['-1']));
|
||||
var_dump(empty($str['0']));
|
||||
var_dump(empty($str['1']));
|
||||
var_dump(empty($str['4'])); // 0
|
||||
var_dump(empty($str['1.5']));
|
||||
var_dump(empty($str['good']));
|
||||
var_dump(empty($str['3 and a half']));
|
||||
print "- bool ---\n";
|
||||
var_dump(empty($str[true]));
|
||||
var_dump(empty($str[false]));
|
||||
var_dump(empty($str[false][true]));
|
||||
print "- null ---\n";
|
||||
var_dump(empty($str[null]));
|
||||
print "- double ---\n";
|
||||
var_dump(empty($str[-1.1]));
|
||||
var_dump(empty($str[-0.8]));
|
||||
var_dump(empty($str[-0.1]));
|
||||
var_dump(empty($str[0.2]));
|
||||
var_dump(empty($str[0.9]));
|
||||
var_dump(empty($str[M_PI]));
|
||||
var_dump(empty($str[100.5001]));
|
||||
print "- array ---\n";
|
||||
var_dump(empty($str[array()]));
|
||||
var_dump(empty($str[array(1,2,3)]));
|
||||
print "- object ---\n";
|
||||
var_dump(empty($str[new stdClass()]));
|
||||
print "- resource ---\n";
|
||||
$f = fopen(__FILE__, 'r');
|
||||
var_dump(empty($str[$f]));
|
||||
print "done\n";
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
- empty ---
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
- string ---
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
- bool ---
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
- null ---
|
||||
bool(false)
|
||||
- double ---
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
- array ---
|
||||
bool(true)
|
||||
bool(true)
|
||||
- object ---
|
||||
bool(true)
|
||||
- resource ---
|
||||
bool(true)
|
||||
done
|
||||
@@ -3,7 +3,7 @@ GC 024: GC and objects with non-standard handlers
|
||||
--INI--
|
||||
zend.enable_gc=1
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("spl")) print "skip SPL extension required"; ?>
|
||||
<?php if (!extension_loaded("spl")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$a = new ArrayObject();
|
||||
|
||||
@@ -71,8 +71,6 @@ array(1) {
|
||||
}
|
||||
}
|
||||
|
||||
Warning: Illegal string offset 'foo' in %s on line %d
|
||||
|
||||
Notice: Array to string conversion in %s on line %d
|
||||
string(1) "A"
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
--TEST--
|
||||
Testing indirect method call and exceptions
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class foo {
|
||||
public function __construct() {
|
||||
throw new Exception('foobar');
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$X = (new foo)->Inexistent(3);
|
||||
} catch (Exception $e) {
|
||||
var_dump($e->getMessage()); // foobar
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
string(6) "foobar"
|
||||
@@ -1,32 +0,0 @@
|
||||
--TEST--
|
||||
Indirect method call with chaining
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class foo {
|
||||
public $x = 'testing';
|
||||
|
||||
public function bar() {
|
||||
return "foo";
|
||||
}
|
||||
public function baz() {
|
||||
return new self;
|
||||
}
|
||||
static function xyz() {
|
||||
}
|
||||
}
|
||||
|
||||
var_dump((new foo())->bar()); // string(3) "foo"
|
||||
var_dump((new foo())->baz()->x); // string(7) "testing"
|
||||
var_dump((new foo())->baz()->baz()->bar()); // string(3) "foo"
|
||||
var_dump((new foo())->xyz()); // NULL
|
||||
(new foo())->www();
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(3) "foo"
|
||||
string(7) "testing"
|
||||
string(3) "foo"
|
||||
NULL
|
||||
|
||||
Fatal error: Call to undefined method foo::www() in %s on line %d
|
||||
@@ -1,23 +0,0 @@
|
||||
--TEST--
|
||||
Testing indirect method call
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class foo {
|
||||
public $x = 1;
|
||||
|
||||
public function getX() {
|
||||
return $this->x;
|
||||
}
|
||||
public function setX($val) {
|
||||
$this->x = $val;
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
$X = (new foo)->setX(10)->getX();
|
||||
var_dump($X); // int(10)
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
int(10)
|
||||
@@ -1,26 +0,0 @@
|
||||
--TEST--
|
||||
Indirect method call and cloning
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
class bar {
|
||||
public $z;
|
||||
|
||||
public function __construct() {
|
||||
$this->z = new stdclass;
|
||||
}
|
||||
public function getZ() {
|
||||
return $this->z;
|
||||
}
|
||||
}
|
||||
|
||||
var_dump(clone (new bar)->z);
|
||||
var_dump(clone (new bar)->getZ());
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
object(stdClass)#%d (0) {
|
||||
}
|
||||
object(stdClass)#%d (0) {
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
--TEST--
|
||||
Testing array dereferencing from instance with ArrayObject
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class foo extends ArrayObject {
|
||||
public function __construct($arr) {
|
||||
parent::__construct($arr);
|
||||
}
|
||||
}
|
||||
|
||||
var_dump( (new foo( array(1, array(4, 5), 3) ))[1][0] ); // int(4)
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
int(4)
|
||||
@@ -1,26 +0,0 @@
|
||||
--TEST--
|
||||
Testing indirect property access
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class foo {
|
||||
public $x = 1;
|
||||
}
|
||||
|
||||
class bar {
|
||||
public $y = 'foo';
|
||||
}
|
||||
|
||||
$x = 'bar';
|
||||
|
||||
$bar = new bar;
|
||||
|
||||
var_dump((new bar)->y); // foo
|
||||
var_dump((new $x)->y); // foo
|
||||
var_dump((new $bar->y)->x); // 1
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
string(3) "foo"
|
||||
string(3) "foo"
|
||||
int(1)
|
||||
@@ -17,4 +17,4 @@ interface a extends d, w { }
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot make non static method c::B() static in class d in %s on line %d
|
||||
Fatal error: Can't inherit abstract function c::B() (previously declared abstract in d) in %s on line %d
|
||||
@@ -14,8 +14,6 @@ interface b {
|
||||
interface c extends a, b {
|
||||
}
|
||||
|
||||
echo "done!\n";
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
done!
|
||||
Fatal error: Can't inherit abstract function b::b() (previously declared abstract in a) in %s on line %d
|
||||
@@ -1,89 +0,0 @@
|
||||
--TEST--
|
||||
Testing isset with string offsets
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
print "- isset ---\n";
|
||||
|
||||
$str = "test0123";
|
||||
|
||||
var_dump(isset($str[-1]));
|
||||
var_dump(isset($str[0]));
|
||||
var_dump(isset($str[1]));
|
||||
var_dump(isset($str[4])); // 0
|
||||
var_dump(isset($str[5])); // 1
|
||||
var_dump(isset($str[8]));
|
||||
var_dump(isset($str[10000]));
|
||||
// non-numeric offsets
|
||||
print "- string ---\n";
|
||||
var_dump(isset($str['-1']));
|
||||
var_dump(isset($str['0']));
|
||||
var_dump(isset($str['1']));
|
||||
var_dump(isset($str['4'])); // 0
|
||||
var_dump(isset($str['1.5']));
|
||||
var_dump(isset($str['good']));
|
||||
var_dump(isset($str['3 and a half']));
|
||||
print "- bool ---\n";
|
||||
var_dump(isset($str[true]));
|
||||
var_dump(isset($str[false]));
|
||||
var_dump(isset($str[false][true]));
|
||||
print "- null ---\n";
|
||||
var_dump(isset($str[null]));
|
||||
print "- double ---\n";
|
||||
var_dump(isset($str[-1.1]));
|
||||
var_dump(isset($str[-0.8]));
|
||||
var_dump(isset($str[-0.1]));
|
||||
var_dump(isset($str[0.2]));
|
||||
var_dump(isset($str[0.9]));
|
||||
var_dump(isset($str[M_PI]));
|
||||
var_dump(isset($str[100.5001]));
|
||||
print "- array ---\n";
|
||||
var_dump(isset($str[array()]));
|
||||
var_dump(isset($str[array(1,2,3)]));
|
||||
print "- object ---\n";
|
||||
var_dump(isset($str[new stdClass()]));
|
||||
print "- resource ---\n";
|
||||
$f = fopen(__FILE__, 'r');
|
||||
var_dump(isset($str[$f]));
|
||||
print "done\n";
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
- isset ---
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
- string ---
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
- bool ---
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
- null ---
|
||||
bool(true)
|
||||
- double ---
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
- array ---
|
||||
bool(false)
|
||||
bool(false)
|
||||
- object ---
|
||||
bool(false)
|
||||
- resource ---
|
||||
bool(false)
|
||||
done
|
||||
@@ -1,30 +0,0 @@
|
||||
--TEST--
|
||||
Initial value of static var in method depends on the include time of the class definition
|
||||
--XFAIL--
|
||||
Maybe not a bug
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
public function __construct() {
|
||||
eval("class Bar extends Foo {}");
|
||||
}
|
||||
public static function test() {
|
||||
static $i = 0;
|
||||
var_dump(++$i);
|
||||
}
|
||||
}
|
||||
|
||||
foo::test();
|
||||
new Foo;
|
||||
foo::test();
|
||||
|
||||
/**
|
||||
* function_add_ref() makes a clone of static variables for inherited functions, so $i in Bar::test gets initial value 1
|
||||
*/
|
||||
Bar::test();
|
||||
Bar::test();
|
||||
--EXPECT--
|
||||
int(1)
|
||||
int(2)
|
||||
int(1)
|
||||
int(2)
|
||||
@@ -20,5 +20,5 @@ class test3 extends test {
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with test::foo() in %s on line %d
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
|
||||
Done
|
||||
@@ -20,5 +20,5 @@ class test3 extends test {
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with test::foo($arg) in %s on line %d
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
|
||||
Done
|
||||
@@ -20,5 +20,5 @@ class test3 extends test {
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with test::foo($arg) in %s on line %d
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
|
||||
Done
|
||||
@@ -20,5 +20,5 @@ class test3 extends test {
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with & test::foo() in %s on line %d
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
|
||||
Done
|
||||
@@ -20,5 +20,5 @@ class test3 extends test {
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with test::foo($arg, $arg2 = NULL) in %s on line %d
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
|
||||
Done
|
||||
@@ -20,5 +20,5 @@ class test3 extends test {
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with test::foo($arg, &$arg2 = NULL) in %s on line %d
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
|
||||
Done
|
||||
@@ -20,5 +20,5 @@ class test3 extends test {
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with test::foo(Test $arg) in %s on line %d
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
|
||||
Done
|
||||
@@ -20,5 +20,5 @@ class test3 extends test {
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with test::foo(Test $arg) in %s on line %d
|
||||
Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
|
||||
Done
|
||||
@@ -14,8 +14,6 @@ interface Itest2 {
|
||||
interface Itest3 extends Itest, Itest2 {
|
||||
}
|
||||
|
||||
echo "done!\n";
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
done!
|
||||
Fatal error: Can't inherit abstract function Itest2::a() (previously declared abstract in Itest) in %s on line %d
|
||||
@@ -3,11 +3,9 @@ Crash on $x['x']['y'] += 1 when $x is string
|
||||
--FILE--
|
||||
<?php
|
||||
$x = "a";
|
||||
$x['x']['y'] += 1;
|
||||
$x['x']['y'] += 1;
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Illegal string offset 'x' in %soffset_assign.php on line %d
|
||||
|
||||
Fatal error: Cannot use string offset as an array in %soffset_assign.php on line %d
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot use string offset as an array in %s on line %d
|
||||
@@ -9,9 +9,6 @@ var_dump($str[1]);
|
||||
var_dump($str[0.0836]);
|
||||
var_dump($str[NULL]);
|
||||
var_dump($str["run away"]);
|
||||
var_dump($str["13"]);
|
||||
var_dump($str["14.5"]);
|
||||
var_dump($str["15 and then some"]);
|
||||
|
||||
var_dump($str[TRUE]);
|
||||
var_dump($str[FALSE]);
|
||||
@@ -27,29 +24,12 @@ var_dump($str[$arr]);
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
--EXPECTF--
|
||||
string(1) "i"
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
string(1) "S"
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
string(1) "S"
|
||||
|
||||
Warning: Illegal string offset 'run away' in %s on line %d
|
||||
string(1) "S"
|
||||
string(1) "c"
|
||||
|
||||
Warning: Illegal string offset '14.5' in %s on line %d
|
||||
string(1) "o"
|
||||
|
||||
Notice: A non well formed numeric value encountered in %s on line %d
|
||||
string(1) "r"
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
string(1) "i"
|
||||
|
||||
Notice: String offset cast occured in %s on line %d
|
||||
string(1) "S"
|
||||
|
||||
Warning: Illegal offset type in %s on line %d
|
||||
@@ -62,4 +42,4 @@ string(1) "%s"
|
||||
|
||||
Warning: Illegal offset type in %s on line %d
|
||||
string(1) "i"
|
||||
Done
|
||||
Done
|
||||
@@ -24,6 +24,6 @@ $x->prop;
|
||||
$x->y;
|
||||
echo "ok\n";
|
||||
--EXPECTF--
|
||||
Notice: Uninitialized string offset: 3 in %sresult_unused.php on line %d
|
||||
Notice: Uninitialized string offset: 3 in %sresult_unused.php on line 11
|
||||
ok
|
||||
|
||||
@@ -24,28 +24,28 @@ foo($str[1][0]);
|
||||
foo($str[2][1]);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Uninitialized string offset: -1 in %sstr_offset_001.php on line %d
|
||||
Notice: Uninitialized string offset: -1 in %sstr_offset_001.php on line 7
|
||||
string(0) ""
|
||||
string(1) "a"
|
||||
string(1) "b"
|
||||
string(1) "c"
|
||||
|
||||
Notice: Uninitialized string offset: 3 in %sstr_offset_001.php on line %d
|
||||
Notice: Uninitialized string offset: 3 in %sstr_offset_001.php on line 11
|
||||
string(0) ""
|
||||
string(1) "b"
|
||||
|
||||
Notice: Uninitialized string offset: 1 in %sstr_offset_001.php on line %d
|
||||
Notice: Uninitialized string offset: 1 in %sstr_offset_001.php on line 13
|
||||
string(0) ""
|
||||
|
||||
Notice: Uninitialized string offset: -1 in %sstr_offset_001.php on line %d
|
||||
Notice: Uninitialized string offset: -1 in %sstr_offset_001.php on line 15
|
||||
string(0) ""
|
||||
string(1) "a"
|
||||
string(1) "b"
|
||||
string(1) "c"
|
||||
|
||||
Notice: Uninitialized string offset: 3 in %sstr_offset_001.php on line %d
|
||||
Notice: Uninitialized string offset: 3 in %sstr_offset_001.php on line 19
|
||||
string(0) ""
|
||||
string(1) "b"
|
||||
|
||||
Notice: Uninitialized string offset: 1 in %sstr_offset_001.php on line %d
|
||||
Notice: Uninitialized string offset: 1 in %sstr_offset_001.php on line 21
|
||||
string(0) ""
|
||||
@@ -1,19 +0,0 @@
|
||||
--TEST--
|
||||
Bug #54441 (Changing trait static method visibility)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
trait Foo {
|
||||
public function bar() {}
|
||||
}
|
||||
|
||||
class Boo {
|
||||
use Foo {
|
||||
bar as dontKnow;
|
||||
dontKnow as protected;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: The modifiers for the trait alias dontKnow() need to be changed in the same statment in which the alias is defined. Error in %s on line %d
|
||||
@@ -4,9 +4,6 @@ Bug #55214 (Use of __CLASS__ within trait returns trait name not class name)
|
||||
<?php
|
||||
|
||||
trait ATrait {
|
||||
public static $static_var = __CLASS__;
|
||||
public $var = __CLASS__;
|
||||
|
||||
public static function get_class_name() {
|
||||
return __CLASS__;
|
||||
}
|
||||
@@ -14,14 +11,6 @@ trait ATrait {
|
||||
public function get_class_name_obj() {
|
||||
return __CLASS__;
|
||||
}
|
||||
|
||||
public static function get_class_name2() {
|
||||
return self::$static_var;
|
||||
}
|
||||
|
||||
public function get_class_name_obj2() {
|
||||
return $this->var;
|
||||
}
|
||||
}
|
||||
|
||||
trait Indirect {
|
||||
@@ -38,34 +27,22 @@ class UsingIndirect {
|
||||
|
||||
$r = SomeClass::get_class_name();
|
||||
var_dump($r);
|
||||
$r = SomeClass::get_class_name2();
|
||||
var_dump($r);
|
||||
|
||||
$o = new SomeClass();
|
||||
$r = $o->get_class_name_obj();
|
||||
var_dump($r);
|
||||
$r = $o->get_class_name_obj2();
|
||||
var_dump($r);
|
||||
|
||||
$r = UsingIndirect::get_class_name();
|
||||
var_dump($r);
|
||||
$r = UsingIndirect::get_class_name2();
|
||||
var_dump($r);
|
||||
|
||||
$o = new UsingIndirect();
|
||||
$r = $o->get_class_name_obj();
|
||||
var_dump($r);
|
||||
$r = $o->get_class_name_obj2();
|
||||
var_dump($r);
|
||||
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
string(9) "SomeClass"
|
||||
string(9) "SomeClass"
|
||||
string(9) "SomeClass"
|
||||
string(9) "SomeClass"
|
||||
string(13) "UsingIndirect"
|
||||
string(13) "UsingIndirect"
|
||||
string(13) "UsingIndirect"
|
||||
string(13) "UsingIndirect"
|
||||
@@ -12,4 +12,4 @@ trait Foo extends Base {
|
||||
echo 'DONE';
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: A trait (Foo) cannot extend a class. Traits can only be composed from other traits with the 'use' keyword. Error in %s on line %d
|
||||
Fatal error: A trait (Foo) cannot extend a class in %s on line %d
|
||||
Loaded 100 of 1616 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user