1
0
mirror of https://github.com/php/php-src.git synced 2026-04-03 22:22:18 +02:00

Don't check directory nlink in stat tests

It seems like on many filesystems nlink for directories is the
number of subdirectories (plus two, due to . and ..). However,
this is not a POSIX requirement, and some filesystems don't
implement it this way. This seems to be the case for whatever is
used on the Travis AArch64 builders now.
This commit is contained in:
Nikita Popov
2020-03-30 10:52:25 +02:00
parent a2f8c78183
commit b9b49cfb7b
2 changed files with 2 additions and 69 deletions

View File

@@ -39,8 +39,8 @@ $new_stat = stat($dirname);
// compare self stats
var_dump( compare_self_stat($old_stat) );
var_dump( compare_self_stat($new_stat) );
// compare the stats
$affected_members = array(3, 9, 10, 'nlink', 'mtime', 'ctime');
// compare the stat
$affected_members = array(9, 10, 'mtime', 'ctime');
clearstatcache();
var_dump(compare_stats($old_stat, $new_stat, $affected_members, "<"));

View File

@@ -1,67 +0,0 @@
--TEST--
Test lstat() and stat() functions: usage variations - deleting file/subdir
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
die('skip.. Not valid for Windows');
}
?>
--FILE--
<?php
/* Prototype: array lstat ( string $filename );
Description: Gives information about a file or symbolic link
Prototype: array stat ( string $filename );
Description: Gives information about a file
*/
$file_path = __DIR__;
require "$file_path/file.inc";
/* test the effects on stats by deleting file/subdir from a dir
*/
echo "*** Testing stat() for comparing stats after the deletion of subdir and file ***\n";
/* first create the dir/subdir and files, record the stat */
@rmdir("$file_path/lstat_stat_variation9/"); // ensure that dir doesn't exists
mkdir("$file_path/lstat_stat_variation9/"); // temp dir
// creating and deleting subdir and files in the dir
$dirname = "$file_path/lstat_stat_variation9";
@rmdir("$dirname/lstat_stat_variation9_subdir"); // ensure that dir doesn't exists
mkdir("$dirname/lstat_stat_variation9_subdir");
$file_handle = fopen("$dirname/lstat_stat_variation9a.tmp", "w");
fclose($file_handle);
$old_stat = stat($dirname);
/* now delete the surdir and file and record the stat */
unlink("$dirname/lstat_stat_variation9a.tmp");
rmdir("$dirname/lstat_stat_variation9_subdir");
// comparing stats after the deletion of subdir and file
$new_stat = stat($dirname);
// compare self stats
var_dump( compare_self_stat($old_stat) );
var_dump( compare_self_stat($new_stat) );
// compare the stats
$affected_members = array(3, 'nlink');
var_dump(compare_stats($old_stat, $new_stat, $affected_members, ">"));
echo "\n--- Done ---";
?>
--CLEAN--
<?php
$file_path = __DIR__;
$dirname = "$file_path/lstat_stat_variation9";
rmdir($dirname);
?>
--EXPECT--
*** Testing stat() for comparing stats after the deletion of subdir and file ***
bool(true)
bool(true)
bool(true)
--- Done ---