unlink_variation1.phpt [plain text]
--TEST--
Test unlink() function : usage variations - unlinking file in a directory
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
die('skip only on Linux');
}
$filename = dirname(__FILE__)."/unlink_root_check.tmp";
$fp = fopen($filename, 'w');
fclose($fp);
if(fileowner($filename) == 0) {
unlink ($filename);
die('skip cannot be run as root');
}
unlink($filename);
?>
--FILE--
<?php
$file_path = dirname(__FILE__);
$dirname = "$file_path/unlink_variation1";
$filename = "$dirname/unlink_variation1.tmp";
echo "\n*** Testing unlink() on file inside a directory ***\n";
mkdir($dirname);
$fp = fopen($filename, "w");
fclose($fp);
echo "-- Unlink file having default permission and its dir having read only permission --\n";
var_dump( chmod($dirname, 0444) );
var_dump( unlink($filename) ); var_dump( file_exists($filename) );
var_dump( chmod($dirname, 0777) );
var_dump( unlink($filename) ); var_dump( rmdir($dirname) );
echo "\n-- Unlinking file without write permission, its dir having default permission --\n";
var_dump( mkdir($dirname) );
$fp = fopen($filename, "w");
fclose($fp);
var_dump( chmod($filename, 0444) );
var_dump( unlink($filename) ); var_dump( file_exists($filename) );
var_dump( rmdir($dirname) );
echo "Done\n";
?>
--EXPECTF--
*** Testing unlink() on file inside a directory ***
-- Unlink file having default permission and its dir having read only permission --
bool(true)
Warning: unlink(%s): %s in %s on line %d
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
-- Unlinking file without write permission, its dir having default permission --
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
Done