mirror of
https://github.com/php/php-src.git
synced 2024-10-19 15:34:25 +00:00
87b2a52a16
fix and smaller tests for symlink_link_linkinfo_is_link[basic|error|variation].phpt
108 lines
2.5 KiB
PHP
108 lines
2.5 KiB
PHP
--TEST--
|
|
Test fileperms(), chmod() functions: error conditions
|
|
--SKIPIF--
|
|
<?php
|
|
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
|
die('skip Not on Windows');
|
|
}
|
|
// Skip if being run by root
|
|
$filename = dirname(__FILE__)."/006_root_check.tmp";
|
|
$fp = fopen($filename, 'w');
|
|
fclose($fp);
|
|
if(fileowner($filename) == 0) {
|
|
unlink ($filename);
|
|
die('skip...cannot be run as root\n');
|
|
}
|
|
|
|
unlink($filename);
|
|
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
/*
|
|
Prototype: int fileperms ( string $filename )
|
|
Description: Returns the permissions on the file, or FALSE in case of an error
|
|
|
|
Prototype: bool chmod ( string $filename, int $mode )
|
|
Description: Attempts to change the mode of the file specified by
|
|
filename to that given in mode
|
|
*/
|
|
|
|
echo "*** Testing error conditions for fileperms(), chmod() ***\n";
|
|
|
|
/* With standard files and dirs */
|
|
var_dump( chmod("/etc/passwd", 0777) );
|
|
printf("%o", fileperms("/etc/passwd") );
|
|
echo "\n";
|
|
clearstatcache();
|
|
|
|
var_dump( chmod("/etc", 0777) );
|
|
printf("%o", fileperms("/etc") );
|
|
echo "\n";
|
|
clearstatcache();
|
|
|
|
/* With non-existing file or dir */
|
|
var_dump( chmod("/no/such/file/dir", 0777) );
|
|
var_dump( fileperms("/no/such/file/dir") );
|
|
echo "\n";
|
|
|
|
/* With args less than expected */
|
|
$fp = fopen(dirname(__FILE__)."/006_error.tmp", "w");
|
|
fclose($fp);
|
|
var_dump( chmod(dirname(__FILE__)."/006_error.tmp") );
|
|
var_dump( chmod("nofile") );
|
|
var_dump( chmod() );
|
|
var_dump( fileperms() );
|
|
|
|
/* With args greater than expected */
|
|
var_dump( chmod(dirname(__FILE__)."/006_error.tmp", 0755, TRUE) );
|
|
var_dump( fileperms(dirname(__FILE__)."/006_error.tmp", 0777) );
|
|
var_dump( fileperms("nofile", 0777) );
|
|
|
|
echo "\n*** Done ***\n";
|
|
?>
|
|
--CLEAN--
|
|
<?php
|
|
unlink( dirname(__FILE__)."/006_error.tmp");
|
|
?>
|
|
--EXPECTF--
|
|
*** Testing error conditions for fileperms(), chmod() ***
|
|
|
|
Warning: chmod(): %s in %s on line %d
|
|
bool(false)
|
|
100644
|
|
|
|
Warning: chmod(): %s in %s on line %d
|
|
bool(false)
|
|
40755
|
|
|
|
Warning: chmod(): No such file or directory in %s on line %d
|
|
bool(false)
|
|
|
|
Warning: fileperms(): stat failed for /no/such/file/dir in %s on line %d
|
|
bool(false)
|
|
|
|
|
|
Warning: Wrong parameter count for chmod() in %s on line %d
|
|
NULL
|
|
|
|
Warning: Wrong parameter count for chmod() in %s on line %d
|
|
NULL
|
|
|
|
Warning: Wrong parameter count for chmod() in %s on line %d
|
|
NULL
|
|
|
|
Warning: Wrong parameter count for fileperms() in %s on line %d
|
|
NULL
|
|
|
|
Warning: Wrong parameter count for chmod() in %s on line %d
|
|
NULL
|
|
|
|
Warning: Wrong parameter count for fileperms() in %s on line %d
|
|
NULL
|
|
|
|
Warning: Wrong parameter count for fileperms() in %s on line %d
|
|
NULL
|
|
|
|
*** Done ***
|