# Known winfsp-tests failures for the SeaweedFS Windows mount. # # One test name per line, as winfsp-tests reports it. A trailing * matches a # prefix, so "stream_*" covers a whole group. Listed tests are excluded from # the run; a failure in anything NOT listed fails CI, which is what catches a # regression. # # Every test runs on its own in a clean directory, so an entry here is a real # defect rather than the wreckage of the test before it. The rdwr and flush # group is gone from this list for exactly that reason: it passes in isolation # and only failed as collateral. Every entry below is a # gap in the mount rather than a quirk of the suite, and the list is meant to # shrink. Keep a reason on each group — an entry with no reason cannot be told # apart from one nobody has looked at. # Cannot pass by construction # --------------------------- # Alternate data streams: the filer stores one byte range per entry, and the # mount exposes no second stream. stream_* # Reparse points: Symlink is refused, so there is nothing to resolve. reparse_* # Byte-range locks live in the WinFsp driver, so they never reach the mount. lock_* # Security descriptors # -------------------- # The mount carries unix mode bits and no ACL, and Chown accepts and discards, # so a descriptor written here does not read back. create_sd_test getsecurity_test # Memory-mapped IO # ---------------- # rdwr-test.c:645 compares the mapped bytes against the pattern that was # written and finds them different. A real data mismatch, not a cascade: it # only surfaced once each test ran on its own and this one got far enough to # check. Worth its own investigation. rdwr_mmap_test # Delete semantics # ---------------- # WinFsp advertises POSIX unlink, so a file can be deleted while handles are # still open; the mount does not implement the delete-pending state. delete_access_test delete_ex_test delete_mmap_test delete_pending_test # Rename semantics # ---------------- # Rename over an open file, and rename of a directory holding open handles, # which WinFsp is stricter about than POSIX. rename_ex_test rename_mmap_test rename_open_test exec_rename_dir_test # File information # ---------------- # A regular file reports as archived now, but hidden, system and readonly are # still not round-tripped: create_fileattr gets past the archive check and then # asks for READONLY as well, which needs Chflags. Creation time is reported as # ctime because the raw protocol's Attr carries no field for it outside darwin. create_fileattr_test # getfileinfo asserts a file created a moment ago has an access time within ten # seconds of now, and it does not. Two causes have been fixed and neither was # it: Utimens no longer stores a zero timestamp, and the in-memory overlays are # dropped when an inode is released so a recycled number cannot inherit an old # time. Still unexplained, so it stays listed rather than pretended about. getfileinfo_test create_readonlydir_test setfileinfo_test # Directory enumeration # --------------------- # querydir_namelen only: checkName caps at 255 bytes while WinFsp counts 255 # characters. The other two are expected to pass now that "." and ".." are # reported for non-root directories, which is what WinFsp enumerates. querydir_namelen_test # Name length # ----------- # checkName caps at 255 bytes while WinFsp allows 255 characters, so a CJK # name that is legal to Windows is rejected here. create_namelen_test # Sharing modes # ------------- # Windows share-access checking on create, which the mount does not enforce. create_share_test create_test