From d3b73f375e8ccfe4a7cc95ff27b4a752d03c688c Mon Sep 17 00:00:00 2001 From: Matt Ficken Date: Sun, 12 Jun 2016 21:22:42 -0700 Subject: [PATCH 1/3] more PHPTs for multi-byte support, mostly ANSI fallback behavior --- .../tests/finfo_buffer_basic_charset-mb.phpt | 57 +++++++ ext/gd/tests/001_charset-mb.phpt | 27 ++++ ext/phar/tests/phar_extract-mb.phpt | 150 +++++++++++++++++ ext/phar/tests/phar_extract_charset-mb.phpt | 151 ++++++++++++++++++ ext/phar/tests/tar/bignames_overflow-mb.phpt | 40 +++++ .../tar/bignames_overflow_charset-mb.phpt | 41 +++++ ext/phar/tests/tar/rename-charset_mb.phpt | 43 +++++ ext/phar/tests/tar/rename-mb.phpt | 42 +++++ ext/phar/tests/tar/tar_001-mb.phpt | 31 ++++ ext/phar/tests/tar/tar_001_charset-mb.phpt | 33 ++++ ..._basic-win32-mb.phpt => dir_basic-mb.phpt} | 0 .../tests/dir/dir_basic_charset-mb.phpt | 88 ++++++++++ .../tests/dir/readdir_basic_charset-mb.phpt | 75 +++++++++ .../tests/dir/readdir_error_charset-mb.phpt | 45 ++++++ .../dir/readdir_variation2_charset-mb.phpt | 50 ++++++ .../file/fseek_dir_basic_charset-mb.phpt | 98 ++++++++++++ .../windows_mb_path/bug54977_charset.phpt | 54 +++++++ .../windows_mb_path/bug64699_charset.phpt | 65 ++++++++ .../test_readdir_charset_mb_names.phpt | 77 +++++++++ ext/tidy/tests/005_charset-mb.phpt | 20 +++ ext/xmlreader/tests/003_charset-mb.phpt | 86 ++++++++++ ext/xmlwriter/tests/005_charset-mb.phpt | 35 ++++ ext/xsl/tests/xslt008_charset-mb.phpt | 33 ++++ ext/zip/tests/bug40228_charset-mb.phpt | 25 +++ ext/zlib/tests/004_charset-mb.phpt | 68 ++++++++ 25 files changed, 1434 insertions(+) create mode 100644 ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt create mode 100644 ext/gd/tests/001_charset-mb.phpt create mode 100644 ext/phar/tests/phar_extract-mb.phpt create mode 100644 ext/phar/tests/phar_extract_charset-mb.phpt create mode 100644 ext/phar/tests/tar/bignames_overflow-mb.phpt create mode 100644 ext/phar/tests/tar/bignames_overflow_charset-mb.phpt create mode 100644 ext/phar/tests/tar/rename-charset_mb.phpt create mode 100644 ext/phar/tests/tar/rename-mb.phpt create mode 100644 ext/phar/tests/tar/tar_001-mb.phpt create mode 100644 ext/phar/tests/tar/tar_001_charset-mb.phpt rename ext/standard/tests/dir/{dir_basic-win32-mb.phpt => dir_basic-mb.phpt} (100%) create mode 100644 ext/standard/tests/dir/dir_basic_charset-mb.phpt create mode 100644 ext/standard/tests/dir/readdir_basic_charset-mb.phpt create mode 100644 ext/standard/tests/dir/readdir_error_charset-mb.phpt create mode 100644 ext/standard/tests/dir/readdir_variation2_charset-mb.phpt create mode 100644 ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt create mode 100644 ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt create mode 100644 ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt create mode 100644 ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt create mode 100644 ext/tidy/tests/005_charset-mb.phpt create mode 100644 ext/xmlreader/tests/003_charset-mb.phpt create mode 100644 ext/xmlwriter/tests/005_charset-mb.phpt create mode 100644 ext/xsl/tests/xslt008_charset-mb.phpt create mode 100644 ext/zip/tests/bug40228_charset-mb.phpt create mode 100644 ext/zlib/tests/004_charset-mb.phpt diff --git a/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt b/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt new file mode 100644 index 0000000000000..b72e6749ac2ab --- /dev/null +++ b/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt @@ -0,0 +1,57 @@ +--TEST-- +Test finfo_buffer() function : basic functionality +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing finfo_buffer() : basic functionality *** +string(36) "ASCII text, with no line terminators" +string(3) "ELF" +string(22) "old ACE/gr binary file" +string(12) "xo65 object," +string(15) "MIFF image data" +string(25) "RIFF (little-endian) data" +string(28) "text/plain; charset=us-ascii" +string(26) "text/plain; charset=ebcdic" +string(40) "application/octet-stream; charset=binary" +string(28) "text/plain; charset=us-ascii" +string(28) "text/plain; charset=us-ascii" +string(25) "text/plain; charset=utf-8" +===DONE=== diff --git a/ext/gd/tests/001_charset-mb.phpt b/ext/gd/tests/001_charset-mb.phpt new file mode 100644 index 0000000000000..071150890af04 --- /dev/null +++ b/ext/gd/tests/001_charset-mb.phpt @@ -0,0 +1,27 @@ +--TEST-- +imagecreatefrompng() and empty/missing file +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECTF-- +Warning: imagecreatefrompng(%s001АБВГДЕЖЗИЙКЛМНОПF.test): failed to open stream: No such file or directory in %s on line %d +bool(false) + +Warning: imagecreatefrompng(): '%s001АБВГДЕЖЗИЙКЛМНОПF.test' is not a valid PNG file in %s on line %d +bool(false) +Done diff --git a/ext/phar/tests/phar_extract-mb.phpt b/ext/phar/tests/phar_extract-mb.phpt new file mode 100644 index 0000000000000..e938d1edc0214 --- /dev/null +++ b/ext/phar/tests/phar_extract-mb.phpt @@ -0,0 +1,150 @@ +--TEST-- +Phar: Phar::extractTo() +--SKIPIF-- + +--INI-- +phar.readonly=0 +--FILE-- +mount($pname . '/mount', __FILE__); +$a->addEmptyDir('one/level'); + +$a->extractTo(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF', 'mount'); +$a->extractTo(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF'); + +$out = array(); + +foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { + $out[] = $p; +} + +sort($out); + +foreach ($out as $b) { + echo "$b\n"; +} + +$a->extractTo(dirname(__FILE__) . '/extract1', 'file1.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1', 'subdir/ectory/file.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/subdir/ectory/file.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1-2', array('file2.txt', 'one/level')); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1-2/file2.txt')); +var_dump(is_dir(dirname(__FILE__) . '/extract1-2/one/level')); + +try { + $a->extractTo(dirname(__FILE__) . '/whatever', 134); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a->extractTo(array()); + +try { + $a->extractTo(''); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/oops', 'I is file'); + +try { + $a->extractTo(dirname(__FILE__) . '/oops', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/oops1', array(array(), 'file1.txt')); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/extract/file1.txt', 'first'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt', true); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +try { + $a->extractTo(str_repeat('a', 20000), 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a[str_repeat('a', 20000)] = 'long'; + +try { + $a->extractTo(dirname(__FILE__) . '/extract', str_repeat('a', 20000)); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +%sextract%cfile1.txt +%sextract%cfile2.txt +%sextract%cone +%sextract%csubdir +%sextract%csubdir%cectory +%sextract%csubdir%cectory%cfile.txt +string(2) "hi" +string(3) "hi3" +string(3) "hi2" +bool(false) +Invalid argument, expected a filename (string) or array of filenames + +Warning: Phar::extractTo() expects parameter 1 to be a valid path, array given in %sphar_extract.php on line %d +Invalid argument, extraction path must be non-zero length +Unable to use path "%soops" for extraction, it is a file, must be a directory +Invalid argument, array of filenames to extract contains non-string value +Extraction from phar "%stempmanifest1.phar.php" failed: Cannot extract "file1.txt" to "%sextract/file1.txt", path already exists +string(5) "first" +string(2) "hi" +Cannot extract to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...", destination directory is too long for filesystem +Extraction from phar "%stempmanifest1.phar.php" failed: Cannot extract "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..." to "%s...", extracted filename is too long for filesystem +===DONE=== diff --git a/ext/phar/tests/phar_extract_charset-mb.phpt b/ext/phar/tests/phar_extract_charset-mb.phpt new file mode 100644 index 0000000000000..305f7278f131f --- /dev/null +++ b/ext/phar/tests/phar_extract_charset-mb.phpt @@ -0,0 +1,151 @@ +--TEST-- +Phar: Phar::extractTo() +--SKIPIF-- + +--INI-- +phar.readonly=0 +default_charset=cp1251 +--FILE-- +mount($pname . '/mount', __FILE__); +$a->addEmptyDir('one/level'); + +$a->extractTo(dirname(__FILE__) . '/extract', 'mount'); +$a->extractTo(dirname(__FILE__) . '/extract'); + +$out = array(); + +foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { + $out[] = $p; +} + +sort($out); + +foreach ($out as $b) { + echo "$b\n"; +} + +$a->extractTo(dirname(__FILE__) . '/extract1', 'file1.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1', 'subdir/ectory/file.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/subdir/ectory/file.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1-2', array('file2.txt', 'one/level')); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1-2/file2.txt')); +var_dump(is_dir(dirname(__FILE__) . '/extract1-2/one/level')); + +try { + $a->extractTo(dirname(__FILE__) . '/whatever', 134); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a->extractTo(array()); + +try { + $a->extractTo(''); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/oops', 'I is file'); + +try { + $a->extractTo(dirname(__FILE__) . '/oops', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/oops1', array(array(), 'file1.txt')); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/extract/file1.txt', 'first'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt', true); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +try { + $a->extractTo(str_repeat('a', 20000), 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a[str_repeat('a', 20000)] = 'long'; + +try { + $a->extractTo(dirname(__FILE__) . '/extract', str_repeat('a', 20000)); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +%sextract%cfile1.txt +%sextract%cfile2.txt +%sextract%cone +%sextract%csubdir +%sextract%csubdir%cectory +%sextract%csubdir%cectory%cfile.txt +string(2) "hi" +string(3) "hi3" +string(3) "hi2" +bool(false) +Invalid argument, expected a filename (string) or array of filenames + +Warning: Phar::extractTo() expects parameter 1 to be a valid path, array given in %sphar_extract.php on line %d +Invalid argument, extraction path must be non-zero length +Unable to use path "%soops" for extraction, it is a file, must be a directory +Invalid argument, array of filenames to extract contains non-string value +Extraction from phar "%stempmanifestАБВГДЕЖЗИЙКЛМНОПF1.phar.php" failed: Cannot extract "file1.txt" to "%sextract/file1.txt", path already exists +string(5) "first" +string(2) "hi" +Cannot extract to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...", destination directory is too long for filesystem +Extraction from phar "%stempmanifestАБВГДЕЖЗИЙКЛМНОПF1.phar.php" failed: Cannot extract "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..." to "%s...", extracted filename is too long for filesystem +===DONE=== diff --git a/ext/phar/tests/tar/bignames_overflow-mb.phpt b/ext/phar/tests/tar/bignames_overflow-mb.phpt new file mode 100644 index 0000000000000..c0595720ef348 --- /dev/null +++ b/ext/phar/tests/tar/bignames_overflow-mb.phpt @@ -0,0 +1,40 @@ +--TEST-- +Phar: tar with huge filenames, buffer overflow +--SKIPIF-- + +--INI-- +phar.require_hash=0 +--FILE-- +init(); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 101), 'hi'); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 255), 'hi2'); +$tar->close(); + +$p1 = new PharData($fname); +foreach ($p1 as $file) { + echo $file->getFileName(), "\n"; +} +echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n"; +echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n"; + +?> +===DONE=== +--CLEAN-- + +--EXPECT-- +АБВГДЕЖЗИЙКЛМНОПFa +АБВГДЕЖЗИЙКЛМНОПFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +hi +hi2 +===DONE=== diff --git a/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt b/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt new file mode 100644 index 0000000000000..c9d694b3b1947 --- /dev/null +++ b/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt @@ -0,0 +1,41 @@ +--TEST-- +Phar: tar with huge filenames, buffer overflow +--SKIPIF-- + +--INI-- +phar.require_hash=0 +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 101), 'hi'); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 255), 'hi2'); +$tar->close(); + +$p1 = new PharData($fname); +foreach ($p1 as $file) { + echo $file->getFileName(), "\n"; +} +echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n"; +echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n"; + +?> +===DONE=== +--CLEAN-- + +--EXPECT-- +АБВГДЕЖЗИЙКЛМНОПFa +АБВГДЕЖЗИЙКЛМНОПFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +hi +hi2 +===DONE=== diff --git a/ext/phar/tests/tar/rename-charset_mb.phpt b/ext/phar/tests/tar/rename-charset_mb.phpt new file mode 100644 index 0000000000000..51bc4d68afb61 --- /dev/null +++ b/ext/phar/tests/tar/rename-charset_mb.phpt @@ -0,0 +1,43 @@ +--TEST-- +Phar: rename test tar-based +--SKIPIF-- + +--INI-- +phar.readonly=0 +phar.require_hash=0 +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('.phar/stubАБВГДЕЖЗИЙКЛМНОПF.php', ""); + +$files = array(); +$files['a'] = 'a'; + +foreach ($files as $n => $file) { + $tar->addFile($n, $file); +} + +$tar->close(); + +include $fname; + +echo file_get_contents($alias . '/a') . "\n"; +rename($alias . '/a', $alias . '/b'); +echo file_get_contents($alias . '/b') . "\n"; +echo file_get_contents($alias . '/a') . "\n"; +?> +--CLEAN-- + +--EXPECTF-- +a +a + +Warning: file_get_contents(phar://%srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar/a): failed to open stream: phar error: "a" is not a file in phar "%srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar" in %srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.php on line %d diff --git a/ext/phar/tests/tar/rename-mb.phpt b/ext/phar/tests/tar/rename-mb.phpt new file mode 100644 index 0000000000000..66eac67d50e28 --- /dev/null +++ b/ext/phar/tests/tar/rename-mb.phpt @@ -0,0 +1,42 @@ +--TEST-- +Phar: rename test tar-based +--SKIPIF-- + +--INI-- +phar.readonly=0 +phar.require_hash=0 +--FILE-- +init(); +$tar->addFile('.phar/stub.php', ""); + +$files = array(); +$files['a'] = 'a'; + +foreach ($files as $n => $file) { + $tar->addFile($n, $file); +} + +$tar->close(); + +include $fname; + +echo file_get_contents($alias . '/a') . "\n"; +rename($alias . '/a', $alias . '/b'); +echo file_get_contents($alias . '/b') . "\n"; +echo file_get_contents($alias . '/a') . "\n"; +?> +--CLEAN-- + +--EXPECTF-- +a +a + +Warning: file_get_contents(phar://%srename-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar/a): failed to open stream: phar error: "a" is not a file in phar "%srename-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar" in %srename-mbАБВГДЕЖЗИЙКЛМНОПF.php on line %d diff --git a/ext/phar/tests/tar/tar_001-mb.phpt b/ext/phar/tests/tar/tar_001-mb.phpt new file mode 100644 index 0000000000000..69a17ce8be93d --- /dev/null +++ b/ext/phar/tests/tar/tar_001-mb.phpt @@ -0,0 +1,31 @@ +--TEST-- +Phar: tar-based phar corrupted +--SKIPIF-- + + +--FILE-- +init(); +$tar->addFile('tar_001.phpt', __FILE__); +$tar->close(); + +$tar = fopen('phar://' . dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', 'rb'); +try { + $phar = new Phar(dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar'); + echo "should not execute\n"; +} catch (Exception $e) { + echo $e->getMessage() . "\n"; +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +Warning: fopen(phar://%star_001.phar.tar/tar_001-mbАБВГДЕЖЗИЙКЛМНОПF.phpt): failed to open stream: phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) in %star_001-mbАБВГДЕЖЗИЙКЛМНОПF.php on line 9 +phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) +===DONE=== diff --git a/ext/phar/tests/tar/tar_001_charset-mb.phpt b/ext/phar/tests/tar/tar_001_charset-mb.phpt new file mode 100644 index 0000000000000..af05540018570 --- /dev/null +++ b/ext/phar/tests/tar/tar_001_charset-mb.phpt @@ -0,0 +1,33 @@ +--TEST-- +Phar: tar-based phar corrupted +--SKIPIF-- + + +--INI-- +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', __FILE__); +$tar->close(); + +$tar = fopen('phar://' . dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', 'rb'); +try { + $phar = new Phar(dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar'); + echo "should not execute\n"; +} catch (Exception $e) { + echo $e->getMessage() . "\n"; +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +Warning: fopen(phar://%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt): failed to open stream: phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) in %star_001АБВГДЕЖЗИЙКЛМНОПF.php on line 9 +phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) +===DONE=== diff --git a/ext/standard/tests/dir/dir_basic-win32-mb.phpt b/ext/standard/tests/dir/dir_basic-mb.phpt similarity index 100% rename from ext/standard/tests/dir/dir_basic-win32-mb.phpt rename to ext/standard/tests/dir/dir_basic-mb.phpt diff --git a/ext/standard/tests/dir/dir_basic_charset-mb.phpt b/ext/standard/tests/dir/dir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..e691dec599719 --- /dev/null +++ b/ext/standard/tests/dir/dir_basic_charset-mb.phpt @@ -0,0 +1,88 @@ +--TEST-- +Test dir() function : basic functionality +--INI-- +default_charset=cp1251 +--FILE-- +read() ); +var_dump( $d->read() ); +var_dump( $d->rewind() ); + +echo "\nTest using handle directly:\n"; +var_dump( readdir($d->handle) ); +var_dump( readdir($d->handle) ); + +echo "\nClose directory:\n"; +var_dump( $d->close() ); +var_dump( $d ); + +echo "\nTest read after closing the dir:"; +var_dump( $d->read() ); + +// delete temp files +delete_files($dir_path, 3, "АБВГДЕЖЗИЙКЛМНОПFdir_basic", 1, ".tmp"); +echo "Done"; +?> +--CLEAN-- + +--EXPECTF-- +*** Testing dir() : basic functionality *** +Get Directory instance: +object(Directory)#%d (2) { + ["path"]=> + string(%d) "%s/АБВГДЕЖЗИЙКЛМНОПFdir_basic" + ["handle"]=> + resource(%d) of type (stream) +} + +Read and rewind: +string(%d) "%s" +string(%d) "%s" +NULL + +Test using handle directly: +string(%d) "%s" +string(%d) "%s" + +Close directory: +NULL +object(Directory)#%d (2) { + ["path"]=> + string(%d) "%sАБВГДЕЖЗИЙКЛМНОПFdir_basic" + ["handle"]=> + resource(%d) of type (Unknown) +} + +Test read after closing the dir: +Warning: Directory::read(): %s is not a valid Directory resource in %s on line %d +bool(false) +Done diff --git a/ext/standard/tests/dir/readdir_basic_charset-mb.phpt b/ext/standard/tests/dir/readdir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..bb8b34592a015 --- /dev/null +++ b/ext/standard/tests/dir/readdir_basic_charset-mb.phpt @@ -0,0 +1,75 @@ +--TEST-- +Test readdir() function : basic functionality +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : basic functionality *** + +-- Call readdir() with $path argument -- +resource(%d) of type (stream) +string(1) "." +string(2) ".." +string(9) "file1.tmp" +string(9) "file2.tmp" +string(9) "file3.tmp" + +-- Call readdir() without $path argument -- +resource(%d) of type (stream) +string(1) "." +string(2) ".." +string(9) "file1.tmp" +string(9) "file2.tmp" +string(9) "file3.tmp" +===DONE=== diff --git a/ext/standard/tests/dir/readdir_error_charset-mb.phpt b/ext/standard/tests/dir/readdir_error_charset-mb.phpt new file mode 100644 index 0000000000000..1ad1c525a4a56 --- /dev/null +++ b/ext/standard/tests/dir/readdir_error_charset-mb.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test readdir() function : error conditions - Incorrect number of args +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : error conditions *** + +-- Testing readdir() function with more than expected no. of arguments -- + +Warning: readdir() expects at most 1 parameter, 2 given in %s on line %d +NULL +===DONE=== diff --git a/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt b/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt new file mode 100644 index 0000000000000..2371fd3dce420 --- /dev/null +++ b/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test readdir() function : usage variations - empty directories +--INI-- +default_charset=cp1251 +--FILE-- + strlen($b) ? 1 : -1; +} +$entries = array(); +while(FALSE !== ($file = readdir($dir_handle))){ + $entries[] = $file; +} + +closedir($dir_handle); + +usort($entries, "mysort"); +foreach($entries as $entry) { + var_dump($entry); +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : usage variations *** + +-- Pass an empty directory to readdir() -- +string(1) "." +string(2) ".." +===DONE=== diff --git a/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt b/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..89283a1ed527c --- /dev/null +++ b/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt @@ -0,0 +1,98 @@ +--TEST-- +Testing fseek() on a directory stream +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECTF-- +call readdir(): +resource(%d) of type (stream) +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} + +call fseek() on directory resource: +int(0) +call readdir(): +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} + +call fseek() with different arguments on directory resource: +int(0) +call readdir(): +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} +bool(true) diff --git a/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt b/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt new file mode 100644 index 0000000000000..577292d9634ba --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt @@ -0,0 +1,54 @@ +--TEST-- +Bug #54977 UTF-8 files and folder are not shown +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + +===DONE=== +--EXPECT-- +testBug54977 +windows_mb_path +多国語 +多国語.test +汚れて掘る +汚れて掘る.test +王 +王.test +===DONE=== diff --git a/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt b/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt new file mode 100644 index 0000000000000..5d54bd16c6c66 --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt @@ -0,0 +1,65 @@ +--TEST-- +Bug #64699 is_dir() is inaccurate result on Windows with japanese locale. +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + $comp: {$file}\n"; + } + closedir($dh); +} + +foreach ($dirs as $d) { + rmdir($prefix . $d); +} +rmdir($prefix); + +set_active_cp($old_cp); + +?> +===DONE=== +--EXPECTF-- +Active code page: 65001 +filetype()[dir ] == is_dir()[dir ] -> OK: . +filetype()[dir ] == is_dir()[dir ] -> OK: .. +filetype()[dir ] == is_dir()[dir ] -> OK: a +filetype()[dir ] == is_dir()[dir ] -> OK: şŞıİğĞ +filetype()[dir ] == is_dir()[dir ] -> OK: ソ +filetype()[dir ] == is_dir()[dir ] -> OK: ゾ +filetype()[dir ] == is_dir()[dir ] -> OK: 多国語 +filetype()[dir ] == is_dir()[dir ] -> OK: 表 +Active code page: %d +===DONE=== diff --git a/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt b/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt new file mode 100644 index 0000000000000..68c40d4fc2fc3 --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt @@ -0,0 +1,77 @@ +--TEST-- +Test readdir() with a dir for multibyte filenames +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + +===DONE=== +--EXPECTF-- +Active code page: 65001 +filename: . : filetype: dir +filename: .. : filetype: dir +filename: Röd_Statistics.txt : filetype: file +filename: tschüß : filetype: file +filename: tschüß3 : filetype: dir +filename: Voláçao : filetype: file +filename: Voláçao3 : filetype: dir +filename: českýtestování.inc : filetype: file +filename: š.txt : filetype: file +filename: Ελλάδα.txt : filetype: file +filename: привет : filetype: file +filename: привет3 : filetype: dir +filename: テストマルチバイト・パス : filetype: file +filename: テストマルチバイト・パス42 : filetype: dir +filename: 測試多字節路徑 : filetype: file +filename: 測試多字節路徑5 : filetype: dir +Active code page: %d +===DONE=== diff --git a/ext/tidy/tests/005_charset-mb.phpt b/ext/tidy/tests/005_charset-mb.phpt new file mode 100644 index 0000000000000..610cc02f54754 --- /dev/null +++ b/ext/tidy/tests/005_charset-mb.phpt @@ -0,0 +1,20 @@ +--TEST-- +tidy_parse_file() +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECT-- + + + + + + + \ No newline at end of file diff --git a/ext/xmlreader/tests/003_charset-mb.phpt b/ext/xmlreader/tests/003_charset-mb.phpt new file mode 100644 index 0000000000000..d311b860c50e6 --- /dev/null +++ b/ext/xmlreader/tests/003_charset-mb.phpt @@ -0,0 +1,86 @@ +--TEST-- +XMLReader: libxml2 XML Reader, attributes test +--SKIPIF-- + +--INI +default_charset=cp1251 +--FILE-- + +book1'; +file_put_contents($filename, $xmlstring); + +$reader = new XMLReader(); +if (!$reader->open($filename)) { + exit(); +} + +// Only go through +while ($reader->read()) { + if ($reader->nodeType != XMLREADER::END_ELEMENT) { + if ($reader->nodeType == XMLREADER::ELEMENT && $reader->hasAttributes) { + $attr = $reader->moveToFirstAttribute(); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute($reader->name) == $reader->value) { + echo "1st attr (num) failed\n"; + } + + + $attr = $reader->moveToNextAttribute(); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute($reader->name) == $reader->value) { + echo "2nd attr (idx) failed\n"; + } + + // Named attribute + $attr = $reader->moveToAttribute('num'); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute('num') == $reader->value) { + echo "attr num failed\n"; + } + + $attr = $reader->moveToAttribute('idx'); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute('idx') == $reader->value) { + echo "attr idx failed\n"; + } + + // Numeric positions of attributes + $attr = $reader->moveToAttributeNo(0); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttributeNo(0) == $reader->value) { + echo "attr 0 failed\n"; + } + + $attr = $reader->moveToAttributeNo(1); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + } + } +} +$reader->close(); +unlink($filename); +?> +===DONE=== +--EXPECT-- +num: 1 +idx: 2 +num: 1 +idx: 2 +num: 1 +idx: 2 +===DONE=== diff --git a/ext/xmlwriter/tests/005_charset-mb.phpt b/ext/xmlwriter/tests/005_charset-mb.phpt new file mode 100644 index 0000000000000..851c64f26fcc3 --- /dev/null +++ b/ext/xmlwriter/tests/005_charset-mb.phpt @@ -0,0 +1,35 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, comments +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--EXPECT-- + + +===DONE=== diff --git a/ext/xsl/tests/xslt008_charset-mb.phpt b/ext/xsl/tests/xslt008_charset-mb.phpt new file mode 100644 index 0000000000000..a66b26bc3de59 --- /dev/null +++ b/ext/xsl/tests/xslt008_charset-mb.phpt @@ -0,0 +1,33 @@ +--TEST-- +Test 8: Stream Wrapper Includes +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- +load(dirname(__FILE__)."/АБВГДЕЖЗИЙКЛМНОПFstreamsinclude.xsl"); +if(!$xsl) { + echo "Error while parsing the document\n"; + exit; +} +chdir(dirname(__FILE__)); +$proc->importStylesheet($xsl); +print "\n"; +print $proc->transformToXML($dom); + + +--EXPECT-- +Test 8: Stream Wrapper Includes + +bar +a1 b1 c1
+a2 c2
+�3 b3 c3
+ diff --git a/ext/zip/tests/bug40228_charset-mb.phpt b/ext/zip/tests/bug40228_charset-mb.phpt new file mode 100644 index 0000000000000..6ee25e5702025 --- /dev/null +++ b/ext/zip/tests/bug40228_charset-mb.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #40228 (extractTo does not create recursive empty path) +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- +open($arc_name, ZIPARCHIVE::CREATE);; +$zip->extractTo($dest); +if (is_dir($dest . '/test/empty')) { + echo "Ok\n"; + rmdir($dest . '/test/empty'); + rmdir($dest . '/test'); +} else { + echo "Failed.\n"; +} +echo "Done\n"; +?> +--EXPECT-- +Ok +Done diff --git a/ext/zlib/tests/004_charset-mb.phpt b/ext/zlib/tests/004_charset-mb.phpt new file mode 100644 index 0000000000000..45641a4a5da3b --- /dev/null +++ b/ext/zlib/tests/004_charset-mb.phpt @@ -0,0 +1,68 @@ +--TEST-- +gzfile() with various invalid params +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECTF-- +Warning: gzfile() expects at least 1 parameter, 0 given in %s on line %d +NULL + +Warning: gzfile(nonexistent_file_gzfile): failed to open stream: No such file or directory in %s on line %d +bool(false) + +Warning: gzfile() expects at most 2 parameters, 3 given in %s on line %d +NULL +array(6) { + [0]=> + string(36) "When you're taught through feelings +" + [1]=> + string(26) "Destiny flying high above +" + [2]=> + string(38) "all I know is that you can realize it +" + [3]=> + string(18) "Destiny who cares +" + [4]=> + string(19) "as it turns around +" + [5]=> + string(39) "and I know that it descends down on me +" +} +array(6) { + [0]=> + string(36) "When you're taught through feelings +" + [1]=> + string(26) "Destiny flying high above +" + [2]=> + string(38) "all I know is that you can realize it +" + [3]=> + string(18) "Destiny who cares +" + [4]=> + string(19) "as it turns around +" + [5]=> + string(39) "and I know that it descends down on me +" +} +Done From b7695f68795137831a680956516b458dcf1eedee Mon Sep 17 00:00:00 2001 From: Matt Ficken Date: Sun, 12 Jun 2016 21:33:59 -0700 Subject: [PATCH 2/3] Revert "more PHPTs for multi-byte support, mostly ANSI fallback behavior" This reverts commit d3b73f375e8ccfe4a7cc95ff27b4a752d03c688c. --- .../tests/finfo_buffer_basic_charset-mb.phpt | 57 ------- ext/gd/tests/001_charset-mb.phpt | 27 ---- ext/phar/tests/phar_extract-mb.phpt | 150 ----------------- ext/phar/tests/phar_extract_charset-mb.phpt | 151 ------------------ ext/phar/tests/tar/bignames_overflow-mb.phpt | 40 ----- .../tar/bignames_overflow_charset-mb.phpt | 41 ----- ext/phar/tests/tar/rename-charset_mb.phpt | 43 ----- ext/phar/tests/tar/rename-mb.phpt | 42 ----- ext/phar/tests/tar/tar_001-mb.phpt | 31 ---- ext/phar/tests/tar/tar_001_charset-mb.phpt | 33 ---- ..._basic-mb.phpt => dir_basic-win32-mb.phpt} | 0 .../tests/dir/dir_basic_charset-mb.phpt | 88 ---------- .../tests/dir/readdir_basic_charset-mb.phpt | 75 --------- .../tests/dir/readdir_error_charset-mb.phpt | 45 ------ .../dir/readdir_variation2_charset-mb.phpt | 50 ------ .../file/fseek_dir_basic_charset-mb.phpt | 98 ------------ .../windows_mb_path/bug54977_charset.phpt | 54 ------- .../windows_mb_path/bug64699_charset.phpt | 65 -------- .../test_readdir_charset_mb_names.phpt | 77 --------- ext/tidy/tests/005_charset-mb.phpt | 20 --- ext/xmlreader/tests/003_charset-mb.phpt | 86 ---------- ext/xmlwriter/tests/005_charset-mb.phpt | 35 ---- ext/xsl/tests/xslt008_charset-mb.phpt | 33 ---- ext/zip/tests/bug40228_charset-mb.phpt | 25 --- ext/zlib/tests/004_charset-mb.phpt | 68 -------- 25 files changed, 1434 deletions(-) delete mode 100644 ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt delete mode 100644 ext/gd/tests/001_charset-mb.phpt delete mode 100644 ext/phar/tests/phar_extract-mb.phpt delete mode 100644 ext/phar/tests/phar_extract_charset-mb.phpt delete mode 100644 ext/phar/tests/tar/bignames_overflow-mb.phpt delete mode 100644 ext/phar/tests/tar/bignames_overflow_charset-mb.phpt delete mode 100644 ext/phar/tests/tar/rename-charset_mb.phpt delete mode 100644 ext/phar/tests/tar/rename-mb.phpt delete mode 100644 ext/phar/tests/tar/tar_001-mb.phpt delete mode 100644 ext/phar/tests/tar/tar_001_charset-mb.phpt rename ext/standard/tests/dir/{dir_basic-mb.phpt => dir_basic-win32-mb.phpt} (100%) delete mode 100644 ext/standard/tests/dir/dir_basic_charset-mb.phpt delete mode 100644 ext/standard/tests/dir/readdir_basic_charset-mb.phpt delete mode 100644 ext/standard/tests/dir/readdir_error_charset-mb.phpt delete mode 100644 ext/standard/tests/dir/readdir_variation2_charset-mb.phpt delete mode 100644 ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt delete mode 100644 ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt delete mode 100644 ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt delete mode 100644 ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt delete mode 100644 ext/tidy/tests/005_charset-mb.phpt delete mode 100644 ext/xmlreader/tests/003_charset-mb.phpt delete mode 100644 ext/xmlwriter/tests/005_charset-mb.phpt delete mode 100644 ext/xsl/tests/xslt008_charset-mb.phpt delete mode 100644 ext/zip/tests/bug40228_charset-mb.phpt delete mode 100644 ext/zlib/tests/004_charset-mb.phpt diff --git a/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt b/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt deleted file mode 100644 index b72e6749ac2ab..0000000000000 --- a/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt +++ /dev/null @@ -1,57 +0,0 @@ ---TEST-- -Test finfo_buffer() function : basic functionality ---SKIPIF-- - ---INI-- -default_charset=cp1251 ---FILE-- - -===DONE=== ---EXPECTF-- -*** Testing finfo_buffer() : basic functionality *** -string(36) "ASCII text, with no line terminators" -string(3) "ELF" -string(22) "old ACE/gr binary file" -string(12) "xo65 object," -string(15) "MIFF image data" -string(25) "RIFF (little-endian) data" -string(28) "text/plain; charset=us-ascii" -string(26) "text/plain; charset=ebcdic" -string(40) "application/octet-stream; charset=binary" -string(28) "text/plain; charset=us-ascii" -string(28) "text/plain; charset=us-ascii" -string(25) "text/plain; charset=utf-8" -===DONE=== diff --git a/ext/gd/tests/001_charset-mb.phpt b/ext/gd/tests/001_charset-mb.phpt deleted file mode 100644 index 071150890af04..0000000000000 --- a/ext/gd/tests/001_charset-mb.phpt +++ /dev/null @@ -1,27 +0,0 @@ ---TEST-- -imagecreatefrompng() and empty/missing file ---SKIPIF-- - ---INI-- -default_charset=cp1251 ---FILE-- - ---EXPECTF-- -Warning: imagecreatefrompng(%s001АБВГДЕЖЗИЙКЛМНОПF.test): failed to open stream: No such file or directory in %s on line %d -bool(false) - -Warning: imagecreatefrompng(): '%s001АБВГДЕЖЗИЙКЛМНОПF.test' is not a valid PNG file in %s on line %d -bool(false) -Done diff --git a/ext/phar/tests/phar_extract-mb.phpt b/ext/phar/tests/phar_extract-mb.phpt deleted file mode 100644 index e938d1edc0214..0000000000000 --- a/ext/phar/tests/phar_extract-mb.phpt +++ /dev/null @@ -1,150 +0,0 @@ ---TEST-- -Phar: Phar::extractTo() ---SKIPIF-- - ---INI-- -phar.readonly=0 ---FILE-- -mount($pname . '/mount', __FILE__); -$a->addEmptyDir('one/level'); - -$a->extractTo(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF', 'mount'); -$a->extractTo(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF'); - -$out = array(); - -foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { - $out[] = $p; -} - -sort($out); - -foreach ($out as $b) { - echo "$b\n"; -} - -$a->extractTo(dirname(__FILE__) . '/extract1', 'file1.txt'); -var_dump(file_get_contents(dirname(__FILE__) . '/extract1/file1.txt')); - -$a->extractTo(dirname(__FILE__) . '/extract1', 'subdir/ectory/file.txt'); -var_dump(file_get_contents(dirname(__FILE__) . '/extract1/subdir/ectory/file.txt')); - -$a->extractTo(dirname(__FILE__) . '/extract1-2', array('file2.txt', 'one/level')); -var_dump(file_get_contents(dirname(__FILE__) . '/extract1-2/file2.txt')); -var_dump(is_dir(dirname(__FILE__) . '/extract1-2/one/level')); - -try { - $a->extractTo(dirname(__FILE__) . '/whatever', 134); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -$a->extractTo(array()); - -try { - $a->extractTo(''); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -file_put_contents(dirname(__FILE__) . '/oops', 'I is file'); - -try { - $a->extractTo(dirname(__FILE__) . '/oops', 'file1.txt'); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -try { - $a->extractTo(dirname(__FILE__) . '/oops1', array(array(), 'file1.txt')); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -try { - $a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt'); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -file_put_contents(dirname(__FILE__) . '/extract/file1.txt', 'first'); -var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); - -$a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt', true); -var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); - -try { - $a->extractTo(str_repeat('a', 20000), 'file1.txt'); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -$a[str_repeat('a', 20000)] = 'long'; - -try { - $a->extractTo(dirname(__FILE__) . '/extract', str_repeat('a', 20000)); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -?> -===DONE=== ---CLEAN-- - ---EXPECTF-- -%sextract%cfile1.txt -%sextract%cfile2.txt -%sextract%cone -%sextract%csubdir -%sextract%csubdir%cectory -%sextract%csubdir%cectory%cfile.txt -string(2) "hi" -string(3) "hi3" -string(3) "hi2" -bool(false) -Invalid argument, expected a filename (string) or array of filenames - -Warning: Phar::extractTo() expects parameter 1 to be a valid path, array given in %sphar_extract.php on line %d -Invalid argument, extraction path must be non-zero length -Unable to use path "%soops" for extraction, it is a file, must be a directory -Invalid argument, array of filenames to extract contains non-string value -Extraction from phar "%stempmanifest1.phar.php" failed: Cannot extract "file1.txt" to "%sextract/file1.txt", path already exists -string(5) "first" -string(2) "hi" -Cannot extract to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...", destination directory is too long for filesystem -Extraction from phar "%stempmanifest1.phar.php" failed: Cannot extract "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..." to "%s...", extracted filename is too long for filesystem -===DONE=== diff --git a/ext/phar/tests/phar_extract_charset-mb.phpt b/ext/phar/tests/phar_extract_charset-mb.phpt deleted file mode 100644 index 305f7278f131f..0000000000000 --- a/ext/phar/tests/phar_extract_charset-mb.phpt +++ /dev/null @@ -1,151 +0,0 @@ ---TEST-- -Phar: Phar::extractTo() ---SKIPIF-- - ---INI-- -phar.readonly=0 -default_charset=cp1251 ---FILE-- -mount($pname . '/mount', __FILE__); -$a->addEmptyDir('one/level'); - -$a->extractTo(dirname(__FILE__) . '/extract', 'mount'); -$a->extractTo(dirname(__FILE__) . '/extract'); - -$out = array(); - -foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { - $out[] = $p; -} - -sort($out); - -foreach ($out as $b) { - echo "$b\n"; -} - -$a->extractTo(dirname(__FILE__) . '/extract1', 'file1.txt'); -var_dump(file_get_contents(dirname(__FILE__) . '/extract1/file1.txt')); - -$a->extractTo(dirname(__FILE__) . '/extract1', 'subdir/ectory/file.txt'); -var_dump(file_get_contents(dirname(__FILE__) . '/extract1/subdir/ectory/file.txt')); - -$a->extractTo(dirname(__FILE__) . '/extract1-2', array('file2.txt', 'one/level')); -var_dump(file_get_contents(dirname(__FILE__) . '/extract1-2/file2.txt')); -var_dump(is_dir(dirname(__FILE__) . '/extract1-2/one/level')); - -try { - $a->extractTo(dirname(__FILE__) . '/whatever', 134); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -$a->extractTo(array()); - -try { - $a->extractTo(''); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -file_put_contents(dirname(__FILE__) . '/oops', 'I is file'); - -try { - $a->extractTo(dirname(__FILE__) . '/oops', 'file1.txt'); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -try { - $a->extractTo(dirname(__FILE__) . '/oops1', array(array(), 'file1.txt')); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -try { - $a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt'); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -file_put_contents(dirname(__FILE__) . '/extract/file1.txt', 'first'); -var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); - -$a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt', true); -var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); - -try { - $a->extractTo(str_repeat('a', 20000), 'file1.txt'); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -$a[str_repeat('a', 20000)] = 'long'; - -try { - $a->extractTo(dirname(__FILE__) . '/extract', str_repeat('a', 20000)); -} catch (Exception $e) { - echo $e->getMessage(), "\n"; -} - -?> -===DONE=== ---CLEAN-- - ---EXPECTF-- -%sextract%cfile1.txt -%sextract%cfile2.txt -%sextract%cone -%sextract%csubdir -%sextract%csubdir%cectory -%sextract%csubdir%cectory%cfile.txt -string(2) "hi" -string(3) "hi3" -string(3) "hi2" -bool(false) -Invalid argument, expected a filename (string) or array of filenames - -Warning: Phar::extractTo() expects parameter 1 to be a valid path, array given in %sphar_extract.php on line %d -Invalid argument, extraction path must be non-zero length -Unable to use path "%soops" for extraction, it is a file, must be a directory -Invalid argument, array of filenames to extract contains non-string value -Extraction from phar "%stempmanifestАБВГДЕЖЗИЙКЛМНОПF1.phar.php" failed: Cannot extract "file1.txt" to "%sextract/file1.txt", path already exists -string(5) "first" -string(2) "hi" -Cannot extract to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...", destination directory is too long for filesystem -Extraction from phar "%stempmanifestАБВГДЕЖЗИЙКЛМНОПF1.phar.php" failed: Cannot extract "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..." to "%s...", extracted filename is too long for filesystem -===DONE=== diff --git a/ext/phar/tests/tar/bignames_overflow-mb.phpt b/ext/phar/tests/tar/bignames_overflow-mb.phpt deleted file mode 100644 index c0595720ef348..0000000000000 --- a/ext/phar/tests/tar/bignames_overflow-mb.phpt +++ /dev/null @@ -1,40 +0,0 @@ ---TEST-- -Phar: tar with huge filenames, buffer overflow ---SKIPIF-- - ---INI-- -phar.require_hash=0 ---FILE-- -init(); -$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 101), 'hi'); -$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 255), 'hi2'); -$tar->close(); - -$p1 = new PharData($fname); -foreach ($p1 as $file) { - echo $file->getFileName(), "\n"; -} -echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n"; -echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n"; - -?> -===DONE=== ---CLEAN-- - ---EXPECT-- -АБВГДЕЖЗИЙКЛМНОПFa -АБВГДЕЖЗИЙКЛМНОПFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -hi -hi2 -===DONE=== diff --git a/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt b/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt deleted file mode 100644 index c9d694b3b1947..0000000000000 --- a/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt +++ /dev/null @@ -1,41 +0,0 @@ ---TEST-- -Phar: tar with huge filenames, buffer overflow ---SKIPIF-- - ---INI-- -phar.require_hash=0 -default_charset=cp1251 ---FILE-- -init(); -$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 101), 'hi'); -$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 255), 'hi2'); -$tar->close(); - -$p1 = new PharData($fname); -foreach ($p1 as $file) { - echo $file->getFileName(), "\n"; -} -echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n"; -echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n"; - -?> -===DONE=== ---CLEAN-- - ---EXPECT-- -АБВГДЕЖЗИЙКЛМНОПFa -АБВГДЕЖЗИЙКЛМНОПFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -hi -hi2 -===DONE=== diff --git a/ext/phar/tests/tar/rename-charset_mb.phpt b/ext/phar/tests/tar/rename-charset_mb.phpt deleted file mode 100644 index 51bc4d68afb61..0000000000000 --- a/ext/phar/tests/tar/rename-charset_mb.phpt +++ /dev/null @@ -1,43 +0,0 @@ ---TEST-- -Phar: rename test tar-based ---SKIPIF-- - ---INI-- -phar.readonly=0 -phar.require_hash=0 -default_charset=cp1251 ---FILE-- -init(); -$tar->addFile('.phar/stubАБВГДЕЖЗИЙКЛМНОПF.php', ""); - -$files = array(); -$files['a'] = 'a'; - -foreach ($files as $n => $file) { - $tar->addFile($n, $file); -} - -$tar->close(); - -include $fname; - -echo file_get_contents($alias . '/a') . "\n"; -rename($alias . '/a', $alias . '/b'); -echo file_get_contents($alias . '/b') . "\n"; -echo file_get_contents($alias . '/a') . "\n"; -?> ---CLEAN-- - ---EXPECTF-- -a -a - -Warning: file_get_contents(phar://%srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar/a): failed to open stream: phar error: "a" is not a file in phar "%srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar" in %srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.php on line %d diff --git a/ext/phar/tests/tar/rename-mb.phpt b/ext/phar/tests/tar/rename-mb.phpt deleted file mode 100644 index 66eac67d50e28..0000000000000 --- a/ext/phar/tests/tar/rename-mb.phpt +++ /dev/null @@ -1,42 +0,0 @@ ---TEST-- -Phar: rename test tar-based ---SKIPIF-- - ---INI-- -phar.readonly=0 -phar.require_hash=0 ---FILE-- -init(); -$tar->addFile('.phar/stub.php', ""); - -$files = array(); -$files['a'] = 'a'; - -foreach ($files as $n => $file) { - $tar->addFile($n, $file); -} - -$tar->close(); - -include $fname; - -echo file_get_contents($alias . '/a') . "\n"; -rename($alias . '/a', $alias . '/b'); -echo file_get_contents($alias . '/b') . "\n"; -echo file_get_contents($alias . '/a') . "\n"; -?> ---CLEAN-- - ---EXPECTF-- -a -a - -Warning: file_get_contents(phar://%srename-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar/a): failed to open stream: phar error: "a" is not a file in phar "%srename-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar" in %srename-mbАБВГДЕЖЗИЙКЛМНОПF.php on line %d diff --git a/ext/phar/tests/tar/tar_001-mb.phpt b/ext/phar/tests/tar/tar_001-mb.phpt deleted file mode 100644 index 69a17ce8be93d..0000000000000 --- a/ext/phar/tests/tar/tar_001-mb.phpt +++ /dev/null @@ -1,31 +0,0 @@ ---TEST-- -Phar: tar-based phar corrupted ---SKIPIF-- - - ---FILE-- -init(); -$tar->addFile('tar_001.phpt', __FILE__); -$tar->close(); - -$tar = fopen('phar://' . dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', 'rb'); -try { - $phar = new Phar(dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar'); - echo "should not execute\n"; -} catch (Exception $e) { - echo $e->getMessage() . "\n"; -} -?> -===DONE=== ---CLEAN-- - ---EXPECTF-- -Warning: fopen(phar://%star_001.phar.tar/tar_001-mbАБВГДЕЖЗИЙКЛМНОПF.phpt): failed to open stream: phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) in %star_001-mbАБВГДЕЖЗИЙКЛМНОПF.php on line 9 -phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) -===DONE=== diff --git a/ext/phar/tests/tar/tar_001_charset-mb.phpt b/ext/phar/tests/tar/tar_001_charset-mb.phpt deleted file mode 100644 index af05540018570..0000000000000 --- a/ext/phar/tests/tar/tar_001_charset-mb.phpt +++ /dev/null @@ -1,33 +0,0 @@ ---TEST-- -Phar: tar-based phar corrupted ---SKIPIF-- - - ---INI-- -default_charset=cp1251 ---FILE-- -init(); -$tar->addFile('tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', __FILE__); -$tar->close(); - -$tar = fopen('phar://' . dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', 'rb'); -try { - $phar = new Phar(dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar'); - echo "should not execute\n"; -} catch (Exception $e) { - echo $e->getMessage() . "\n"; -} -?> -===DONE=== ---CLEAN-- - ---EXPECTF-- -Warning: fopen(phar://%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt): failed to open stream: phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) in %star_001АБВГДЕЖЗИЙКЛМНОПF.php on line 9 -phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) -===DONE=== diff --git a/ext/standard/tests/dir/dir_basic-mb.phpt b/ext/standard/tests/dir/dir_basic-win32-mb.phpt similarity index 100% rename from ext/standard/tests/dir/dir_basic-mb.phpt rename to ext/standard/tests/dir/dir_basic-win32-mb.phpt diff --git a/ext/standard/tests/dir/dir_basic_charset-mb.phpt b/ext/standard/tests/dir/dir_basic_charset-mb.phpt deleted file mode 100644 index e691dec599719..0000000000000 --- a/ext/standard/tests/dir/dir_basic_charset-mb.phpt +++ /dev/null @@ -1,88 +0,0 @@ ---TEST-- -Test dir() function : basic functionality ---INI-- -default_charset=cp1251 ---FILE-- -read() ); -var_dump( $d->read() ); -var_dump( $d->rewind() ); - -echo "\nTest using handle directly:\n"; -var_dump( readdir($d->handle) ); -var_dump( readdir($d->handle) ); - -echo "\nClose directory:\n"; -var_dump( $d->close() ); -var_dump( $d ); - -echo "\nTest read after closing the dir:"; -var_dump( $d->read() ); - -// delete temp files -delete_files($dir_path, 3, "АБВГДЕЖЗИЙКЛМНОПFdir_basic", 1, ".tmp"); -echo "Done"; -?> ---CLEAN-- - ---EXPECTF-- -*** Testing dir() : basic functionality *** -Get Directory instance: -object(Directory)#%d (2) { - ["path"]=> - string(%d) "%s/АБВГДЕЖЗИЙКЛМНОПFdir_basic" - ["handle"]=> - resource(%d) of type (stream) -} - -Read and rewind: -string(%d) "%s" -string(%d) "%s" -NULL - -Test using handle directly: -string(%d) "%s" -string(%d) "%s" - -Close directory: -NULL -object(Directory)#%d (2) { - ["path"]=> - string(%d) "%sАБВГДЕЖЗИЙКЛМНОПFdir_basic" - ["handle"]=> - resource(%d) of type (Unknown) -} - -Test read after closing the dir: -Warning: Directory::read(): %s is not a valid Directory resource in %s on line %d -bool(false) -Done diff --git a/ext/standard/tests/dir/readdir_basic_charset-mb.phpt b/ext/standard/tests/dir/readdir_basic_charset-mb.phpt deleted file mode 100644 index bb8b34592a015..0000000000000 --- a/ext/standard/tests/dir/readdir_basic_charset-mb.phpt +++ /dev/null @@ -1,75 +0,0 @@ ---TEST-- -Test readdir() function : basic functionality ---INI-- -default_charset=cp1251 ---FILE-- - -===DONE=== ---CLEAN-- - ---EXPECTF-- -*** Testing readdir() : basic functionality *** - --- Call readdir() with $path argument -- -resource(%d) of type (stream) -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" - --- Call readdir() without $path argument -- -resource(%d) of type (stream) -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" -===DONE=== diff --git a/ext/standard/tests/dir/readdir_error_charset-mb.phpt b/ext/standard/tests/dir/readdir_error_charset-mb.phpt deleted file mode 100644 index 1ad1c525a4a56..0000000000000 --- a/ext/standard/tests/dir/readdir_error_charset-mb.phpt +++ /dev/null @@ -1,45 +0,0 @@ ---TEST-- -Test readdir() function : error conditions - Incorrect number of args ---INI-- -default_charset=cp1251 ---FILE-- - -===DONE=== ---CLEAN-- - ---EXPECTF-- -*** Testing readdir() : error conditions *** - --- Testing readdir() function with more than expected no. of arguments -- - -Warning: readdir() expects at most 1 parameter, 2 given in %s on line %d -NULL -===DONE=== diff --git a/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt b/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt deleted file mode 100644 index 2371fd3dce420..0000000000000 --- a/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt +++ /dev/null @@ -1,50 +0,0 @@ ---TEST-- -Test readdir() function : usage variations - empty directories ---INI-- -default_charset=cp1251 ---FILE-- - strlen($b) ? 1 : -1; -} -$entries = array(); -while(FALSE !== ($file = readdir($dir_handle))){ - $entries[] = $file; -} - -closedir($dir_handle); - -usort($entries, "mysort"); -foreach($entries as $entry) { - var_dump($entry); -} -?> -===DONE=== ---CLEAN-- - ---EXPECTF-- -*** Testing readdir() : usage variations *** - --- Pass an empty directory to readdir() -- -string(1) "." -string(2) ".." -===DONE=== diff --git a/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt b/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt deleted file mode 100644 index 89283a1ed527c..0000000000000 --- a/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt +++ /dev/null @@ -1,98 +0,0 @@ ---TEST-- -Testing fseek() on a directory stream ---INI-- -default_charset=cp1251 ---FILE-- - ---EXPECTF-- -call readdir(): -resource(%d) of type (stream) -array(6) { - [0]=> - bool(false) - [1]=> - string(1) "." - [2]=> - string(2) ".." - [3]=> - string(9) "file1.tmp" - [4]=> - string(9) "file2.tmp" - [5]=> - string(9) "file3.tmp" -} - -call fseek() on directory resource: -int(0) -call readdir(): -array(6) { - [0]=> - bool(false) - [1]=> - string(1) "." - [2]=> - string(2) ".." - [3]=> - string(9) "file1.tmp" - [4]=> - string(9) "file2.tmp" - [5]=> - string(9) "file3.tmp" -} - -call fseek() with different arguments on directory resource: -int(0) -call readdir(): -array(6) { - [0]=> - bool(false) - [1]=> - string(1) "." - [2]=> - string(2) ".." - [3]=> - string(9) "file1.tmp" - [4]=> - string(9) "file2.tmp" - [5]=> - string(9) "file3.tmp" -} -bool(true) diff --git a/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt b/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt deleted file mode 100644 index 577292d9634ba..0000000000000 --- a/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt +++ /dev/null @@ -1,54 +0,0 @@ ---TEST-- -Bug #54977 UTF-8 files and folder are not shown ---SKIPIF-- - ---INI-- -default_charset=shift_jis ---FILE-- - -===DONE=== ---EXPECT-- -testBug54977 -windows_mb_path -多国語 -多国語.test -汚れて掘る -汚れて掘る.test -王 -王.test -===DONE=== diff --git a/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt b/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt deleted file mode 100644 index 5d54bd16c6c66..0000000000000 --- a/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt +++ /dev/null @@ -1,65 +0,0 @@ ---TEST-- -Bug #64699 is_dir() is inaccurate result on Windows with japanese locale. ---SKIPIF-- - ---INI-- -default_charset=shift_jis ---FILE-- - $comp: {$file}\n"; - } - closedir($dh); -} - -foreach ($dirs as $d) { - rmdir($prefix . $d); -} -rmdir($prefix); - -set_active_cp($old_cp); - -?> -===DONE=== ---EXPECTF-- -Active code page: 65001 -filetype()[dir ] == is_dir()[dir ] -> OK: . -filetype()[dir ] == is_dir()[dir ] -> OK: .. -filetype()[dir ] == is_dir()[dir ] -> OK: a -filetype()[dir ] == is_dir()[dir ] -> OK: şŞıİğĞ -filetype()[dir ] == is_dir()[dir ] -> OK: ソ -filetype()[dir ] == is_dir()[dir ] -> OK: ゾ -filetype()[dir ] == is_dir()[dir ] -> OK: 多国語 -filetype()[dir ] == is_dir()[dir ] -> OK: 表 -Active code page: %d -===DONE=== diff --git a/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt b/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt deleted file mode 100644 index 68c40d4fc2fc3..0000000000000 --- a/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt +++ /dev/null @@ -1,77 +0,0 @@ ---TEST-- -Test readdir() with a dir for multibyte filenames ---SKIPIF-- - ---INI-- -default_charset=shift_jis ---FILE-- - -===DONE=== ---EXPECTF-- -Active code page: 65001 -filename: . : filetype: dir -filename: .. : filetype: dir -filename: Röd_Statistics.txt : filetype: file -filename: tschüß : filetype: file -filename: tschüß3 : filetype: dir -filename: Voláçao : filetype: file -filename: Voláçao3 : filetype: dir -filename: českýtestování.inc : filetype: file -filename: š.txt : filetype: file -filename: Ελλάδα.txt : filetype: file -filename: привет : filetype: file -filename: привет3 : filetype: dir -filename: テストマルチバイト・パス : filetype: file -filename: テストマルチバイト・パス42 : filetype: dir -filename: 測試多字節路徑 : filetype: file -filename: 測試多字節路徑5 : filetype: dir -Active code page: %d -===DONE=== diff --git a/ext/tidy/tests/005_charset-mb.phpt b/ext/tidy/tests/005_charset-mb.phpt deleted file mode 100644 index 610cc02f54754..0000000000000 --- a/ext/tidy/tests/005_charset-mb.phpt +++ /dev/null @@ -1,20 +0,0 @@ ---TEST-- -tidy_parse_file() ---SKIPIF-- - ---INI-- -default_charset=cp1251 ---FILE-- - ---EXPECT-- - - - - - - - \ No newline at end of file diff --git a/ext/xmlreader/tests/003_charset-mb.phpt b/ext/xmlreader/tests/003_charset-mb.phpt deleted file mode 100644 index d311b860c50e6..0000000000000 --- a/ext/xmlreader/tests/003_charset-mb.phpt +++ /dev/null @@ -1,86 +0,0 @@ ---TEST-- -XMLReader: libxml2 XML Reader, attributes test ---SKIPIF-- - ---INI -default_charset=cp1251 ---FILE-- - -book1'; -file_put_contents($filename, $xmlstring); - -$reader = new XMLReader(); -if (!$reader->open($filename)) { - exit(); -} - -// Only go through -while ($reader->read()) { - if ($reader->nodeType != XMLREADER::END_ELEMENT) { - if ($reader->nodeType == XMLREADER::ELEMENT && $reader->hasAttributes) { - $attr = $reader->moveToFirstAttribute(); - echo $reader->name . ": "; - echo $reader->value . "\n"; - - if ($reader->getAttribute($reader->name) == $reader->value) { - echo "1st attr (num) failed\n"; - } - - - $attr = $reader->moveToNextAttribute(); - echo $reader->name . ": "; - echo $reader->value . "\n"; - - if ($reader->getAttribute($reader->name) == $reader->value) { - echo "2nd attr (idx) failed\n"; - } - - // Named attribute - $attr = $reader->moveToAttribute('num'); - echo $reader->name . ": "; - echo $reader->value . "\n"; - - if ($reader->getAttribute('num') == $reader->value) { - echo "attr num failed\n"; - } - - $attr = $reader->moveToAttribute('idx'); - echo $reader->name . ": "; - echo $reader->value . "\n"; - - if ($reader->getAttribute('idx') == $reader->value) { - echo "attr idx failed\n"; - } - - // Numeric positions of attributes - $attr = $reader->moveToAttributeNo(0); - echo $reader->name . ": "; - echo $reader->value . "\n"; - - if ($reader->getAttributeNo(0) == $reader->value) { - echo "attr 0 failed\n"; - } - - $attr = $reader->moveToAttributeNo(1); - echo $reader->name . ": "; - echo $reader->value . "\n"; - - } - } -} -$reader->close(); -unlink($filename); -?> -===DONE=== ---EXPECT-- -num: 1 -idx: 2 -num: 1 -idx: 2 -num: 1 -idx: 2 -===DONE=== diff --git a/ext/xmlwriter/tests/005_charset-mb.phpt b/ext/xmlwriter/tests/005_charset-mb.phpt deleted file mode 100644 index 851c64f26fcc3..0000000000000 --- a/ext/xmlwriter/tests/005_charset-mb.phpt +++ /dev/null @@ -1,35 +0,0 @@ ---TEST-- -XMLWriter: libxml2 XML Writer, comments ---SKIPIF-- - ---INI-- -default_charset=cp1251 ---FILE-- - -===DONE=== ---EXPECT-- - - -===DONE=== diff --git a/ext/xsl/tests/xslt008_charset-mb.phpt b/ext/xsl/tests/xslt008_charset-mb.phpt deleted file mode 100644 index a66b26bc3de59..0000000000000 --- a/ext/xsl/tests/xslt008_charset-mb.phpt +++ /dev/null @@ -1,33 +0,0 @@ ---TEST-- -Test 8: Stream Wrapper Includes ---SKIPIF-- - ---INI-- -default_charset=cp1251 ---FILE-- -load(dirname(__FILE__)."/АБВГДЕЖЗИЙКЛМНОПFstreamsinclude.xsl"); -if(!$xsl) { - echo "Error while parsing the document\n"; - exit; -} -chdir(dirname(__FILE__)); -$proc->importStylesheet($xsl); -print "\n"; -print $proc->transformToXML($dom); - - ---EXPECT-- -Test 8: Stream Wrapper Includes - -bar -a1 b1 c1
-a2 c2
-�3 b3 c3
- diff --git a/ext/zip/tests/bug40228_charset-mb.phpt b/ext/zip/tests/bug40228_charset-mb.phpt deleted file mode 100644 index 6ee25e5702025..0000000000000 --- a/ext/zip/tests/bug40228_charset-mb.phpt +++ /dev/null @@ -1,25 +0,0 @@ ---TEST-- -Bug #40228 (extractTo does not create recursive empty path) ---SKIPIF-- - ---INI-- -default_charset=cp1251 ---FILE-- -open($arc_name, ZIPARCHIVE::CREATE);; -$zip->extractTo($dest); -if (is_dir($dest . '/test/empty')) { - echo "Ok\n"; - rmdir($dest . '/test/empty'); - rmdir($dest . '/test'); -} else { - echo "Failed.\n"; -} -echo "Done\n"; -?> ---EXPECT-- -Ok -Done diff --git a/ext/zlib/tests/004_charset-mb.phpt b/ext/zlib/tests/004_charset-mb.phpt deleted file mode 100644 index 45641a4a5da3b..0000000000000 --- a/ext/zlib/tests/004_charset-mb.phpt +++ /dev/null @@ -1,68 +0,0 @@ ---TEST-- -gzfile() with various invalid params ---SKIPIF-- - ---INI-- -default_charset=cp1251 ---FILE-- - ---EXPECTF-- -Warning: gzfile() expects at least 1 parameter, 0 given in %s on line %d -NULL - -Warning: gzfile(nonexistent_file_gzfile): failed to open stream: No such file or directory in %s on line %d -bool(false) - -Warning: gzfile() expects at most 2 parameters, 3 given in %s on line %d -NULL -array(6) { - [0]=> - string(36) "When you're taught through feelings -" - [1]=> - string(26) "Destiny flying high above -" - [2]=> - string(38) "all I know is that you can realize it -" - [3]=> - string(18) "Destiny who cares -" - [4]=> - string(19) "as it turns around -" - [5]=> - string(39) "and I know that it descends down on me -" -} -array(6) { - [0]=> - string(36) "When you're taught through feelings -" - [1]=> - string(26) "Destiny flying high above -" - [2]=> - string(38) "all I know is that you can realize it -" - [3]=> - string(18) "Destiny who cares -" - [4]=> - string(19) "as it turns around -" - [5]=> - string(39) "and I know that it descends down on me -" -} -Done From ccd13c71df7356c0542d5c00e5df5b6f389040d0 Mon Sep 17 00:00:00 2001 From: Matt Ficken Date: Sun, 12 Jun 2016 22:02:49 -0700 Subject: [PATCH 3/3] new PHPTs for multi-byte path support --- .../tests/finfo_buffer_basic_charset-mb.phpt | 57 +++++++ ext/gd/tests/001_charset-mb.phpt | 27 ++++ ext/phar/tests/phar_extract-mb.phpt | 150 +++++++++++++++++ ext/phar/tests/phar_extract_charset-mb.phpt | 151 ++++++++++++++++++ ext/phar/tests/tar/bignames_overflow-mb.phpt | 40 +++++ .../tar/bignames_overflow_charset-mb.phpt | 41 +++++ ext/phar/tests/tar/rename-charset_mb.phpt | 43 +++++ ext/phar/tests/tar/rename-mb.phpt | 42 +++++ ext/phar/tests/tar/tar_001-mb.phpt | 31 ++++ ext/phar/tests/tar/tar_001_charset-mb.phpt | 33 ++++ .../tests/dir/dir_basic_charset-mb.phpt | 88 ++++++++++ .../tests/dir/readdir_basic_charset-mb.phpt | 75 +++++++++ .../tests/dir/readdir_error_charset-mb.phpt | 45 ++++++ .../dir/readdir_variation2_charset-mb.phpt | 50 ++++++ ...2-mb.phpt => rewinddir_variation2-mb.phpt} | 0 .../file/fseek_dir_basic_charset-mb.phpt | 98 ++++++++++++ .../windows_mb_path/bug54977_charset.phpt | 54 +++++++ .../windows_mb_path/bug64699_charset.phpt | 65 ++++++++ .../test_readdir_charset_mb_names.phpt | 77 +++++++++ ext/tidy/tests/005_charset-mb.phpt | 20 +++ ext/xmlreader/tests/003_charset-mb.phpt | 86 ++++++++++ ext/xmlwriter/tests/005_charset-mb.phpt | 35 ++++ ext/xsl/tests/xslt008_charset-mb.phpt | 33 ++++ ext/zip/tests/bug40228_charset-mb.phpt | 25 +++ ext/zlib/tests/004_charset-mb.phpt | 68 ++++++++ 25 files changed, 1434 insertions(+) create mode 100644 ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt create mode 100644 ext/gd/tests/001_charset-mb.phpt create mode 100644 ext/phar/tests/phar_extract-mb.phpt create mode 100644 ext/phar/tests/phar_extract_charset-mb.phpt create mode 100644 ext/phar/tests/tar/bignames_overflow-mb.phpt create mode 100644 ext/phar/tests/tar/bignames_overflow_charset-mb.phpt create mode 100644 ext/phar/tests/tar/rename-charset_mb.phpt create mode 100644 ext/phar/tests/tar/rename-mb.phpt create mode 100644 ext/phar/tests/tar/tar_001-mb.phpt create mode 100644 ext/phar/tests/tar/tar_001_charset-mb.phpt create mode 100644 ext/standard/tests/dir/dir_basic_charset-mb.phpt create mode 100644 ext/standard/tests/dir/readdir_basic_charset-mb.phpt create mode 100644 ext/standard/tests/dir/readdir_error_charset-mb.phpt create mode 100644 ext/standard/tests/dir/readdir_variation2_charset-mb.phpt rename ext/standard/tests/dir/{rewinddir_variation2-win32-mb.phpt => rewinddir_variation2-mb.phpt} (100%) create mode 100644 ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt create mode 100644 ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt create mode 100644 ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt create mode 100644 ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt create mode 100644 ext/tidy/tests/005_charset-mb.phpt create mode 100644 ext/xmlreader/tests/003_charset-mb.phpt create mode 100644 ext/xmlwriter/tests/005_charset-mb.phpt create mode 100644 ext/xsl/tests/xslt008_charset-mb.phpt create mode 100644 ext/zip/tests/bug40228_charset-mb.phpt create mode 100644 ext/zlib/tests/004_charset-mb.phpt diff --git a/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt b/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt new file mode 100644 index 0000000000000..b72e6749ac2ab --- /dev/null +++ b/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt @@ -0,0 +1,57 @@ +--TEST-- +Test finfo_buffer() function : basic functionality +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing finfo_buffer() : basic functionality *** +string(36) "ASCII text, with no line terminators" +string(3) "ELF" +string(22) "old ACE/gr binary file" +string(12) "xo65 object," +string(15) "MIFF image data" +string(25) "RIFF (little-endian) data" +string(28) "text/plain; charset=us-ascii" +string(26) "text/plain; charset=ebcdic" +string(40) "application/octet-stream; charset=binary" +string(28) "text/plain; charset=us-ascii" +string(28) "text/plain; charset=us-ascii" +string(25) "text/plain; charset=utf-8" +===DONE=== diff --git a/ext/gd/tests/001_charset-mb.phpt b/ext/gd/tests/001_charset-mb.phpt new file mode 100644 index 0000000000000..071150890af04 --- /dev/null +++ b/ext/gd/tests/001_charset-mb.phpt @@ -0,0 +1,27 @@ +--TEST-- +imagecreatefrompng() and empty/missing file +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECTF-- +Warning: imagecreatefrompng(%s001АБВГДЕЖЗИЙКЛМНОПF.test): failed to open stream: No such file or directory in %s on line %d +bool(false) + +Warning: imagecreatefrompng(): '%s001АБВГДЕЖЗИЙКЛМНОПF.test' is not a valid PNG file in %s on line %d +bool(false) +Done diff --git a/ext/phar/tests/phar_extract-mb.phpt b/ext/phar/tests/phar_extract-mb.phpt new file mode 100644 index 0000000000000..e938d1edc0214 --- /dev/null +++ b/ext/phar/tests/phar_extract-mb.phpt @@ -0,0 +1,150 @@ +--TEST-- +Phar: Phar::extractTo() +--SKIPIF-- + +--INI-- +phar.readonly=0 +--FILE-- +mount($pname . '/mount', __FILE__); +$a->addEmptyDir('one/level'); + +$a->extractTo(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF', 'mount'); +$a->extractTo(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF'); + +$out = array(); + +foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { + $out[] = $p; +} + +sort($out); + +foreach ($out as $b) { + echo "$b\n"; +} + +$a->extractTo(dirname(__FILE__) . '/extract1', 'file1.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1', 'subdir/ectory/file.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/subdir/ectory/file.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1-2', array('file2.txt', 'one/level')); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1-2/file2.txt')); +var_dump(is_dir(dirname(__FILE__) . '/extract1-2/one/level')); + +try { + $a->extractTo(dirname(__FILE__) . '/whatever', 134); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a->extractTo(array()); + +try { + $a->extractTo(''); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/oops', 'I is file'); + +try { + $a->extractTo(dirname(__FILE__) . '/oops', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/oops1', array(array(), 'file1.txt')); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/extract/file1.txt', 'first'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt', true); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +try { + $a->extractTo(str_repeat('a', 20000), 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a[str_repeat('a', 20000)] = 'long'; + +try { + $a->extractTo(dirname(__FILE__) . '/extract', str_repeat('a', 20000)); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +%sextract%cfile1.txt +%sextract%cfile2.txt +%sextract%cone +%sextract%csubdir +%sextract%csubdir%cectory +%sextract%csubdir%cectory%cfile.txt +string(2) "hi" +string(3) "hi3" +string(3) "hi2" +bool(false) +Invalid argument, expected a filename (string) or array of filenames + +Warning: Phar::extractTo() expects parameter 1 to be a valid path, array given in %sphar_extract.php on line %d +Invalid argument, extraction path must be non-zero length +Unable to use path "%soops" for extraction, it is a file, must be a directory +Invalid argument, array of filenames to extract contains non-string value +Extraction from phar "%stempmanifest1.phar.php" failed: Cannot extract "file1.txt" to "%sextract/file1.txt", path already exists +string(5) "first" +string(2) "hi" +Cannot extract to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...", destination directory is too long for filesystem +Extraction from phar "%stempmanifest1.phar.php" failed: Cannot extract "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..." to "%s...", extracted filename is too long for filesystem +===DONE=== diff --git a/ext/phar/tests/phar_extract_charset-mb.phpt b/ext/phar/tests/phar_extract_charset-mb.phpt new file mode 100644 index 0000000000000..305f7278f131f --- /dev/null +++ b/ext/phar/tests/phar_extract_charset-mb.phpt @@ -0,0 +1,151 @@ +--TEST-- +Phar: Phar::extractTo() +--SKIPIF-- + +--INI-- +phar.readonly=0 +default_charset=cp1251 +--FILE-- +mount($pname . '/mount', __FILE__); +$a->addEmptyDir('one/level'); + +$a->extractTo(dirname(__FILE__) . '/extract', 'mount'); +$a->extractTo(dirname(__FILE__) . '/extract'); + +$out = array(); + +foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { + $out[] = $p; +} + +sort($out); + +foreach ($out as $b) { + echo "$b\n"; +} + +$a->extractTo(dirname(__FILE__) . '/extract1', 'file1.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1', 'subdir/ectory/file.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/subdir/ectory/file.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1-2', array('file2.txt', 'one/level')); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1-2/file2.txt')); +var_dump(is_dir(dirname(__FILE__) . '/extract1-2/one/level')); + +try { + $a->extractTo(dirname(__FILE__) . '/whatever', 134); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a->extractTo(array()); + +try { + $a->extractTo(''); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/oops', 'I is file'); + +try { + $a->extractTo(dirname(__FILE__) . '/oops', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/oops1', array(array(), 'file1.txt')); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/extract/file1.txt', 'first'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt', true); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +try { + $a->extractTo(str_repeat('a', 20000), 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a[str_repeat('a', 20000)] = 'long'; + +try { + $a->extractTo(dirname(__FILE__) . '/extract', str_repeat('a', 20000)); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +%sextract%cfile1.txt +%sextract%cfile2.txt +%sextract%cone +%sextract%csubdir +%sextract%csubdir%cectory +%sextract%csubdir%cectory%cfile.txt +string(2) "hi" +string(3) "hi3" +string(3) "hi2" +bool(false) +Invalid argument, expected a filename (string) or array of filenames + +Warning: Phar::extractTo() expects parameter 1 to be a valid path, array given in %sphar_extract.php on line %d +Invalid argument, extraction path must be non-zero length +Unable to use path "%soops" for extraction, it is a file, must be a directory +Invalid argument, array of filenames to extract contains non-string value +Extraction from phar "%stempmanifestАБВГДЕЖЗИЙКЛМНОПF1.phar.php" failed: Cannot extract "file1.txt" to "%sextract/file1.txt", path already exists +string(5) "first" +string(2) "hi" +Cannot extract to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...", destination directory is too long for filesystem +Extraction from phar "%stempmanifestАБВГДЕЖЗИЙКЛМНОПF1.phar.php" failed: Cannot extract "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..." to "%s...", extracted filename is too long for filesystem +===DONE=== diff --git a/ext/phar/tests/tar/bignames_overflow-mb.phpt b/ext/phar/tests/tar/bignames_overflow-mb.phpt new file mode 100644 index 0000000000000..c0595720ef348 --- /dev/null +++ b/ext/phar/tests/tar/bignames_overflow-mb.phpt @@ -0,0 +1,40 @@ +--TEST-- +Phar: tar with huge filenames, buffer overflow +--SKIPIF-- + +--INI-- +phar.require_hash=0 +--FILE-- +init(); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 101), 'hi'); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 255), 'hi2'); +$tar->close(); + +$p1 = new PharData($fname); +foreach ($p1 as $file) { + echo $file->getFileName(), "\n"; +} +echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n"; +echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n"; + +?> +===DONE=== +--CLEAN-- + +--EXPECT-- +АБВГДЕЖЗИЙКЛМНОПFa +АБВГДЕЖЗИЙКЛМНОПFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +hi +hi2 +===DONE=== diff --git a/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt b/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt new file mode 100644 index 0000000000000..c9d694b3b1947 --- /dev/null +++ b/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt @@ -0,0 +1,41 @@ +--TEST-- +Phar: tar with huge filenames, buffer overflow +--SKIPIF-- + +--INI-- +phar.require_hash=0 +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 101), 'hi'); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 255), 'hi2'); +$tar->close(); + +$p1 = new PharData($fname); +foreach ($p1 as $file) { + echo $file->getFileName(), "\n"; +} +echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n"; +echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n"; + +?> +===DONE=== +--CLEAN-- + +--EXPECT-- +АБВГДЕЖЗИЙКЛМНОПFa +АБВГДЕЖЗИЙКЛМНОПFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +hi +hi2 +===DONE=== diff --git a/ext/phar/tests/tar/rename-charset_mb.phpt b/ext/phar/tests/tar/rename-charset_mb.phpt new file mode 100644 index 0000000000000..51bc4d68afb61 --- /dev/null +++ b/ext/phar/tests/tar/rename-charset_mb.phpt @@ -0,0 +1,43 @@ +--TEST-- +Phar: rename test tar-based +--SKIPIF-- + +--INI-- +phar.readonly=0 +phar.require_hash=0 +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('.phar/stubАБВГДЕЖЗИЙКЛМНОПF.php', ""); + +$files = array(); +$files['a'] = 'a'; + +foreach ($files as $n => $file) { + $tar->addFile($n, $file); +} + +$tar->close(); + +include $fname; + +echo file_get_contents($alias . '/a') . "\n"; +rename($alias . '/a', $alias . '/b'); +echo file_get_contents($alias . '/b') . "\n"; +echo file_get_contents($alias . '/a') . "\n"; +?> +--CLEAN-- + +--EXPECTF-- +a +a + +Warning: file_get_contents(phar://%srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar/a): failed to open stream: phar error: "a" is not a file in phar "%srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar" in %srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.php on line %d diff --git a/ext/phar/tests/tar/rename-mb.phpt b/ext/phar/tests/tar/rename-mb.phpt new file mode 100644 index 0000000000000..66eac67d50e28 --- /dev/null +++ b/ext/phar/tests/tar/rename-mb.phpt @@ -0,0 +1,42 @@ +--TEST-- +Phar: rename test tar-based +--SKIPIF-- + +--INI-- +phar.readonly=0 +phar.require_hash=0 +--FILE-- +init(); +$tar->addFile('.phar/stub.php', ""); + +$files = array(); +$files['a'] = 'a'; + +foreach ($files as $n => $file) { + $tar->addFile($n, $file); +} + +$tar->close(); + +include $fname; + +echo file_get_contents($alias . '/a') . "\n"; +rename($alias . '/a', $alias . '/b'); +echo file_get_contents($alias . '/b') . "\n"; +echo file_get_contents($alias . '/a') . "\n"; +?> +--CLEAN-- + +--EXPECTF-- +a +a + +Warning: file_get_contents(phar://%srename-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar/a): failed to open stream: phar error: "a" is not a file in phar "%srename-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar" in %srename-mbАБВГДЕЖЗИЙКЛМНОПF.php on line %d diff --git a/ext/phar/tests/tar/tar_001-mb.phpt b/ext/phar/tests/tar/tar_001-mb.phpt new file mode 100644 index 0000000000000..69a17ce8be93d --- /dev/null +++ b/ext/phar/tests/tar/tar_001-mb.phpt @@ -0,0 +1,31 @@ +--TEST-- +Phar: tar-based phar corrupted +--SKIPIF-- + + +--FILE-- +init(); +$tar->addFile('tar_001.phpt', __FILE__); +$tar->close(); + +$tar = fopen('phar://' . dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', 'rb'); +try { + $phar = new Phar(dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar'); + echo "should not execute\n"; +} catch (Exception $e) { + echo $e->getMessage() . "\n"; +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +Warning: fopen(phar://%star_001.phar.tar/tar_001-mbАБВГДЕЖЗИЙКЛМНОПF.phpt): failed to open stream: phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) in %star_001-mbАБВГДЕЖЗИЙКЛМНОПF.php on line 9 +phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) +===DONE=== diff --git a/ext/phar/tests/tar/tar_001_charset-mb.phpt b/ext/phar/tests/tar/tar_001_charset-mb.phpt new file mode 100644 index 0000000000000..af05540018570 --- /dev/null +++ b/ext/phar/tests/tar/tar_001_charset-mb.phpt @@ -0,0 +1,33 @@ +--TEST-- +Phar: tar-based phar corrupted +--SKIPIF-- + + +--INI-- +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', __FILE__); +$tar->close(); + +$tar = fopen('phar://' . dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', 'rb'); +try { + $phar = new Phar(dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar'); + echo "should not execute\n"; +} catch (Exception $e) { + echo $e->getMessage() . "\n"; +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +Warning: fopen(phar://%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt): failed to open stream: phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) in %star_001АБВГДЕЖЗИЙКЛМНОПF.php on line 9 +phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) +===DONE=== diff --git a/ext/standard/tests/dir/dir_basic_charset-mb.phpt b/ext/standard/tests/dir/dir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..e691dec599719 --- /dev/null +++ b/ext/standard/tests/dir/dir_basic_charset-mb.phpt @@ -0,0 +1,88 @@ +--TEST-- +Test dir() function : basic functionality +--INI-- +default_charset=cp1251 +--FILE-- +read() ); +var_dump( $d->read() ); +var_dump( $d->rewind() ); + +echo "\nTest using handle directly:\n"; +var_dump( readdir($d->handle) ); +var_dump( readdir($d->handle) ); + +echo "\nClose directory:\n"; +var_dump( $d->close() ); +var_dump( $d ); + +echo "\nTest read after closing the dir:"; +var_dump( $d->read() ); + +// delete temp files +delete_files($dir_path, 3, "АБВГДЕЖЗИЙКЛМНОПFdir_basic", 1, ".tmp"); +echo "Done"; +?> +--CLEAN-- + +--EXPECTF-- +*** Testing dir() : basic functionality *** +Get Directory instance: +object(Directory)#%d (2) { + ["path"]=> + string(%d) "%s/АБВГДЕЖЗИЙКЛМНОПFdir_basic" + ["handle"]=> + resource(%d) of type (stream) +} + +Read and rewind: +string(%d) "%s" +string(%d) "%s" +NULL + +Test using handle directly: +string(%d) "%s" +string(%d) "%s" + +Close directory: +NULL +object(Directory)#%d (2) { + ["path"]=> + string(%d) "%sАБВГДЕЖЗИЙКЛМНОПFdir_basic" + ["handle"]=> + resource(%d) of type (Unknown) +} + +Test read after closing the dir: +Warning: Directory::read(): %s is not a valid Directory resource in %s on line %d +bool(false) +Done diff --git a/ext/standard/tests/dir/readdir_basic_charset-mb.phpt b/ext/standard/tests/dir/readdir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..bb8b34592a015 --- /dev/null +++ b/ext/standard/tests/dir/readdir_basic_charset-mb.phpt @@ -0,0 +1,75 @@ +--TEST-- +Test readdir() function : basic functionality +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : basic functionality *** + +-- Call readdir() with $path argument -- +resource(%d) of type (stream) +string(1) "." +string(2) ".." +string(9) "file1.tmp" +string(9) "file2.tmp" +string(9) "file3.tmp" + +-- Call readdir() without $path argument -- +resource(%d) of type (stream) +string(1) "." +string(2) ".." +string(9) "file1.tmp" +string(9) "file2.tmp" +string(9) "file3.tmp" +===DONE=== diff --git a/ext/standard/tests/dir/readdir_error_charset-mb.phpt b/ext/standard/tests/dir/readdir_error_charset-mb.phpt new file mode 100644 index 0000000000000..1ad1c525a4a56 --- /dev/null +++ b/ext/standard/tests/dir/readdir_error_charset-mb.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test readdir() function : error conditions - Incorrect number of args +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : error conditions *** + +-- Testing readdir() function with more than expected no. of arguments -- + +Warning: readdir() expects at most 1 parameter, 2 given in %s on line %d +NULL +===DONE=== diff --git a/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt b/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt new file mode 100644 index 0000000000000..2371fd3dce420 --- /dev/null +++ b/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test readdir() function : usage variations - empty directories +--INI-- +default_charset=cp1251 +--FILE-- + strlen($b) ? 1 : -1; +} +$entries = array(); +while(FALSE !== ($file = readdir($dir_handle))){ + $entries[] = $file; +} + +closedir($dir_handle); + +usort($entries, "mysort"); +foreach($entries as $entry) { + var_dump($entry); +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : usage variations *** + +-- Pass an empty directory to readdir() -- +string(1) "." +string(2) ".." +===DONE=== diff --git a/ext/standard/tests/dir/rewinddir_variation2-win32-mb.phpt b/ext/standard/tests/dir/rewinddir_variation2-mb.phpt similarity index 100% rename from ext/standard/tests/dir/rewinddir_variation2-win32-mb.phpt rename to ext/standard/tests/dir/rewinddir_variation2-mb.phpt diff --git a/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt b/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..89283a1ed527c --- /dev/null +++ b/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt @@ -0,0 +1,98 @@ +--TEST-- +Testing fseek() on a directory stream +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECTF-- +call readdir(): +resource(%d) of type (stream) +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} + +call fseek() on directory resource: +int(0) +call readdir(): +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} + +call fseek() with different arguments on directory resource: +int(0) +call readdir(): +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} +bool(true) diff --git a/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt b/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt new file mode 100644 index 0000000000000..577292d9634ba --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt @@ -0,0 +1,54 @@ +--TEST-- +Bug #54977 UTF-8 files and folder are not shown +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + +===DONE=== +--EXPECT-- +testBug54977 +windows_mb_path +多国語 +多国語.test +汚れて掘る +汚れて掘る.test +王 +王.test +===DONE=== diff --git a/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt b/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt new file mode 100644 index 0000000000000..5d54bd16c6c66 --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt @@ -0,0 +1,65 @@ +--TEST-- +Bug #64699 is_dir() is inaccurate result on Windows with japanese locale. +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + $comp: {$file}\n"; + } + closedir($dh); +} + +foreach ($dirs as $d) { + rmdir($prefix . $d); +} +rmdir($prefix); + +set_active_cp($old_cp); + +?> +===DONE=== +--EXPECTF-- +Active code page: 65001 +filetype()[dir ] == is_dir()[dir ] -> OK: . +filetype()[dir ] == is_dir()[dir ] -> OK: .. +filetype()[dir ] == is_dir()[dir ] -> OK: a +filetype()[dir ] == is_dir()[dir ] -> OK: şŞıİğĞ +filetype()[dir ] == is_dir()[dir ] -> OK: ソ +filetype()[dir ] == is_dir()[dir ] -> OK: ゾ +filetype()[dir ] == is_dir()[dir ] -> OK: 多国語 +filetype()[dir ] == is_dir()[dir ] -> OK: 表 +Active code page: %d +===DONE=== diff --git a/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt b/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt new file mode 100644 index 0000000000000..68c40d4fc2fc3 --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt @@ -0,0 +1,77 @@ +--TEST-- +Test readdir() with a dir for multibyte filenames +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + +===DONE=== +--EXPECTF-- +Active code page: 65001 +filename: . : filetype: dir +filename: .. : filetype: dir +filename: Röd_Statistics.txt : filetype: file +filename: tschüß : filetype: file +filename: tschüß3 : filetype: dir +filename: Voláçao : filetype: file +filename: Voláçao3 : filetype: dir +filename: českýtestování.inc : filetype: file +filename: š.txt : filetype: file +filename: Ελλάδα.txt : filetype: file +filename: привет : filetype: file +filename: привет3 : filetype: dir +filename: テストマルチバイト・パス : filetype: file +filename: テストマルチバイト・パス42 : filetype: dir +filename: 測試多字節路徑 : filetype: file +filename: 測試多字節路徑5 : filetype: dir +Active code page: %d +===DONE=== diff --git a/ext/tidy/tests/005_charset-mb.phpt b/ext/tidy/tests/005_charset-mb.phpt new file mode 100644 index 0000000000000..610cc02f54754 --- /dev/null +++ b/ext/tidy/tests/005_charset-mb.phpt @@ -0,0 +1,20 @@ +--TEST-- +tidy_parse_file() +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECT-- + + + + + + + \ No newline at end of file diff --git a/ext/xmlreader/tests/003_charset-mb.phpt b/ext/xmlreader/tests/003_charset-mb.phpt new file mode 100644 index 0000000000000..d311b860c50e6 --- /dev/null +++ b/ext/xmlreader/tests/003_charset-mb.phpt @@ -0,0 +1,86 @@ +--TEST-- +XMLReader: libxml2 XML Reader, attributes test +--SKIPIF-- + +--INI +default_charset=cp1251 +--FILE-- + +book1'; +file_put_contents($filename, $xmlstring); + +$reader = new XMLReader(); +if (!$reader->open($filename)) { + exit(); +} + +// Only go through +while ($reader->read()) { + if ($reader->nodeType != XMLREADER::END_ELEMENT) { + if ($reader->nodeType == XMLREADER::ELEMENT && $reader->hasAttributes) { + $attr = $reader->moveToFirstAttribute(); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute($reader->name) == $reader->value) { + echo "1st attr (num) failed\n"; + } + + + $attr = $reader->moveToNextAttribute(); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute($reader->name) == $reader->value) { + echo "2nd attr (idx) failed\n"; + } + + // Named attribute + $attr = $reader->moveToAttribute('num'); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute('num') == $reader->value) { + echo "attr num failed\n"; + } + + $attr = $reader->moveToAttribute('idx'); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute('idx') == $reader->value) { + echo "attr idx failed\n"; + } + + // Numeric positions of attributes + $attr = $reader->moveToAttributeNo(0); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttributeNo(0) == $reader->value) { + echo "attr 0 failed\n"; + } + + $attr = $reader->moveToAttributeNo(1); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + } + } +} +$reader->close(); +unlink($filename); +?> +===DONE=== +--EXPECT-- +num: 1 +idx: 2 +num: 1 +idx: 2 +num: 1 +idx: 2 +===DONE=== diff --git a/ext/xmlwriter/tests/005_charset-mb.phpt b/ext/xmlwriter/tests/005_charset-mb.phpt new file mode 100644 index 0000000000000..851c64f26fcc3 --- /dev/null +++ b/ext/xmlwriter/tests/005_charset-mb.phpt @@ -0,0 +1,35 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, comments +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--EXPECT-- + + +===DONE=== diff --git a/ext/xsl/tests/xslt008_charset-mb.phpt b/ext/xsl/tests/xslt008_charset-mb.phpt new file mode 100644 index 0000000000000..a66b26bc3de59 --- /dev/null +++ b/ext/xsl/tests/xslt008_charset-mb.phpt @@ -0,0 +1,33 @@ +--TEST-- +Test 8: Stream Wrapper Includes +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- +load(dirname(__FILE__)."/АБВГДЕЖЗИЙКЛМНОПFstreamsinclude.xsl"); +if(!$xsl) { + echo "Error while parsing the document\n"; + exit; +} +chdir(dirname(__FILE__)); +$proc->importStylesheet($xsl); +print "\n"; +print $proc->transformToXML($dom); + + +--EXPECT-- +Test 8: Stream Wrapper Includes + +bar +a1 b1 c1
+a2 c2
+�3 b3 c3
+ diff --git a/ext/zip/tests/bug40228_charset-mb.phpt b/ext/zip/tests/bug40228_charset-mb.phpt new file mode 100644 index 0000000000000..6ee25e5702025 --- /dev/null +++ b/ext/zip/tests/bug40228_charset-mb.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #40228 (extractTo does not create recursive empty path) +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- +open($arc_name, ZIPARCHIVE::CREATE);; +$zip->extractTo($dest); +if (is_dir($dest . '/test/empty')) { + echo "Ok\n"; + rmdir($dest . '/test/empty'); + rmdir($dest . '/test'); +} else { + echo "Failed.\n"; +} +echo "Done\n"; +?> +--EXPECT-- +Ok +Done diff --git a/ext/zlib/tests/004_charset-mb.phpt b/ext/zlib/tests/004_charset-mb.phpt new file mode 100644 index 0000000000000..45641a4a5da3b --- /dev/null +++ b/ext/zlib/tests/004_charset-mb.phpt @@ -0,0 +1,68 @@ +--TEST-- +gzfile() with various invalid params +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECTF-- +Warning: gzfile() expects at least 1 parameter, 0 given in %s on line %d +NULL + +Warning: gzfile(nonexistent_file_gzfile): failed to open stream: No such file or directory in %s on line %d +bool(false) + +Warning: gzfile() expects at most 2 parameters, 3 given in %s on line %d +NULL +array(6) { + [0]=> + string(36) "When you're taught through feelings +" + [1]=> + string(26) "Destiny flying high above +" + [2]=> + string(38) "all I know is that you can realize it +" + [3]=> + string(18) "Destiny who cares +" + [4]=> + string(19) "as it turns around +" + [5]=> + string(39) "and I know that it descends down on me +" +} +array(6) { + [0]=> + string(36) "When you're taught through feelings +" + [1]=> + string(26) "Destiny flying high above +" + [2]=> + string(38) "all I know is that you can realize it +" + [3]=> + string(18) "Destiny who cares +" + [4]=> + string(19) "as it turns around +" + [5]=> + string(39) "and I know that it descends down on me +" +} +Done