php-src/ext/standard/tests/file/001.phpt
Sascha Schumann d6d59a9ee5 1. st_blksize might be different for regular files and symlinks; hence
ignore differences in the twelfth element of the stat() array.

2. The 'test.file' is created by the script, thus the owner of the file
   is the user id executing the script.  A mode of 0654 does not grant
   the owner the right to execute the file and therefore, the correct
   output here is "not executable."
2001-06-21 11:15:38 +00:00

150 lines
3.7 KiB
PHP

--TEST--
File type functions
--POST--
--GET--
--FILE--
<?php
@unlink('test.file');
@unlink('test.link');
if (file_exists('test.file')) {
echo "test.file exists\n";
} else {
echo "test.file does not exist\n";
}
fclose (fopen('test.file', 'w'));
chmod ('test.file', 0654);
if (file_exists('test.file')) {
echo "test.file exists\n";
} else {
echo "test.file does not exist\n";
}
sleep (2);
symlink('test.file','test.link');
if (file_exists('test.link')) {
echo "test.link exists\n";
} else {
echo "test.link does not exist\n";
}
if (is_link('test.file')) {
echo "test.file is a symlink\n";
} else {
echo "test.file is not a symlink\n";
}
if (is_link('test.link')) {
echo "test.link is a symlink\n";
} else {
echo "test.link is not a symlink\n";
}
if (file_exists('test.file')) {
echo "test.file exists\n";
} else {
echo "test.file does not exist\n";
}
$s = stat ('test.file');
$ls = lstat ('test.file');
for ($i = 0; $i <= 12; $i++) {
if ($ls[$i] != $s[$i]) {
echo "test.file lstat and stat differ at element $i\n";
}
}
$s = stat ('test.link');
$ls = lstat ('test.link');
for ($i = 0; $i <= 11; $i++) {
if ($ls[$i] != $s[$i]) {
if ($i != 6 && $i != 11) echo "test.link lstat and stat differ at element $i\n";
}
}
echo "test.file is " . filetype('test.file') . "\n";
echo "test.link is " . filetype('test.link') . "\n";
printf ("test.file permissions are 0%o\n", 0777 & fileperms('test.file'));
echo "test.file size is " . filesize('test.file') . "\n";
if (is_writeable('test.file')) {
echo "test.file is writeable\n";
} else {
echo "test.file is not writeable\n";
}
if (is_readable('test.file')) {
echo "test.file is readable\n";
} else {
echo "test.file is not readable\n";
}
if (is_executable('test.file')) {
echo "test.file is executable\n";
} else {
echo "test.file is not executable\n";
}
chmod ('test.file', 0644);
clearstatcache();
if (is_executable('test.file')) {
echo "test.file is executable\n";
} else {
echo "test.file is not executable\n";
}
if (is_file('test.file')) {
echo "test.file is a regular file\n";
} else {
echo "test.file is not a regular file\n";
}
if (is_file('test.link')) {
echo "test.link is a regular file\n";
} else {
echo "test.link is not a regular file\n";
}
if (is_dir('test.link')) {
echo "test.link is a directory\n";
} else {
echo "test.link is not a directory\n";
}
if (is_dir('../file')) {
echo "../file is a directory\n";
} else {
echo "../file is not a directory\n";
}
if (is_dir('test.file')) {
echo "test.file is a directory\n";
} else {
echo "test.file is not a directory\n";
}
unlink('test.file');
unlink('test.link');
if (file_exists('test.file')) {
echo "test.file exists (cached)\n";
} else {
echo "test.file does not exist\n";
}
clearstatcache();
if (file_exists('test.file')) {
echo "test.file exists\n";
} else {
echo "test.file does not exist\n";
}
?>
--EXPECT--
test.file does not exist
test.file exists
test.link exists
test.file is not a symlink
test.link is a symlink
test.file exists
test.link lstat and stat differ at element 1
test.link lstat and stat differ at element 2
test.link lstat and stat differ at element 7
test.link lstat and stat differ at element 8
test.link lstat and stat differ at element 9
test.link lstat and stat differ at element 10
test.file is file
test.link is link
test.file permissions are 0654
test.file size is 0
test.file is writeable
test.file is readable
test.file is not executable
test.file is not executable
test.file is a regular file
test.link is a regular file
test.link is not a directory
../file is a directory
test.file is not a directory
test.file does not exist
test.file does not exist