diff options
Diffstat (limited to 'ext/spl/tests/bug80724.phpt')
-rw-r--r-- | ext/spl/tests/bug80724.phpt | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/ext/spl/tests/bug80724.phpt b/ext/spl/tests/bug80724.phpt new file mode 100644 index 0000000000..7ff118e31b --- /dev/null +++ b/ext/spl/tests/bug80724.phpt @@ -0,0 +1,46 @@ +--TEST-- +Bug #80724 (FOLLOW_SYMLINKS interfering with FilesystemIterator key flags) +--FILE-- +<?php +$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::KEY_AS_FILENAME); +foreach ($iterator as $key => $value) { + echo var_dump(hasSeparator($key)); + break; +} +$iterator->rewind(); +echo var_dump(hasSeparator($iterator->key())); + +$iterator->setFlags(0); +echo var_dump(hasSeparator($iterator->key())); + +$iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME); +echo var_dump(hasSeparator($iterator->key())); + +$iterator2 = new FilesystemIterator(__DIR__, FilesystemIterator::FOLLOW_SYMLINKS | FilesystemIterator::KEY_AS_FILENAME); +foreach ($iterator2 as $key => $value) { + echo var_dump(hasSeparator($key)); + break; +} +$iterator2->rewind(); +echo var_dump(hasSeparator($iterator2->key())); + +$iterator2->setFlags(0); +echo var_dump(hasSeparator($iterator2->key())); + +$iterator2->setFlags(FilesystemIterator::KEY_AS_FILENAME); +echo var_dump(hasSeparator($iterator2->key())); + +function hasSeparator($key) { + return str_contains($key, __DIR__ . DIRECTORY_SEPARATOR); +} + +?> +--EXPECT-- +bool(false) +bool(false) +bool(true) +bool(false) +bool(false) +bool(false) +bool(true) +bool(false) |