diff options
Diffstat (limited to 'ext/standard/tests/file/windows_links/bug76335.phpt')
-rw-r--r-- | ext/standard/tests/file/windows_links/bug76335.phpt | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ext/standard/tests/file/windows_links/bug76335.phpt b/ext/standard/tests/file/windows_links/bug76335.phpt new file mode 100644 index 0000000000..866057fe02 --- /dev/null +++ b/ext/standard/tests/file/windows_links/bug76335.phpt @@ -0,0 +1,52 @@ +--TEST-- +Bug #76335 "link(): Bad file descriptor" with non-ASCII path +--SKIPIF-- +<?php +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php + +$d0 = dirname(__FILE__) . DIRECTORY_SEPARATOR . "á"; +$d1 = dirname(__FILE__) . DIRECTORY_SEPARATOR . "a"; + +$fn = dirname(__FILE__) . DIRECTORY_SEPARATOR . "file"; + +$l0 = $d0 . DIRECTORY_SEPARATOR . "b"; +$l1 = $d1 . DIRECTORY_SEPARATOR . "b"; + +mkdir($d0); +mkdir($d1); + +file_put_contents($fn, ""); + +chdir($d0); +var_dump(link($d0 . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . "file", $l0)); + +chdir($d1); +var_dump(link($d1 . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . "file", $l1)); + +?> +--CLEAN-- +<?php + +$d0 = dirname(__FILE__) . DIRECTORY_SEPARATOR . "á"; +$d1 = dirname(__FILE__) . DIRECTORY_SEPARATOR . "a"; + +$fn = dirname(__FILE__) . DIRECTORY_SEPARATOR . "file"; + +$l0 = $d0 . DIRECTORY_SEPARATOR . "b"; +$l1 = $d1 . DIRECTORY_SEPARATOR . "b"; + +unlink($l0); +unlink($l1); +unlink($fn); +rmdir($d0); +rmdir($d1); +?> +--EXPECT-- +bool(true) +bool(true) + |