Skip to content

Commit d0ba4ce

Browse files
tristanlabellecompnerd
authored andcommitted
tests: Fix module loading prefer-serialized test failure on Windows
Fixes three tests failing on Windows: ``` Swift(windows-x86_64) :: ModuleInterface/ModuleCache/force-module-loading-mode-archs.swift Swift(windows-x86_64) :: ModuleInterface/ModuleCache/force-module-loading-mode-framework.swift Swift(windows-x86_64) :: ModuleInterface/ModuleCache/force-module-loading-mode.swift ``` These test cases remove read access to the `.swiftmodule` . The expected behavior is that the compiler checks `fs.exists("path-to.swiftmodule")` , determines that the file exists and chooses to use it instead of the `.swiftinterface`. Compilation then fails because the file cannot be read. https://github.com/apple/swift/blob/e22cf2e993267639ad8875707cadf401eb97d98b/lib/Frontend/ModuleInterfaceLoader.cpp#L752 On Windows, we were denying `R` access, which is broader than only read access to file contents but also includes file attributes and permissions. This caused `fs.exists` to fail since it relies on `fs.status`, which could not open the file with `CreateFileW`. The fix is is to only deny `RD - read data/list directory` access.
1 parent e22cf2e commit d0ba4ce

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

test/ModuleInterface/Inputs/make-unreadable.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
for path in sys.argv[1:]:
3232
subprocess.call(['icacls', path, '/deny',
33-
'{}:(R)'.format(user_name)])
33+
'{}:(RD)'.format(user_name)])
3434
else:
3535
for path in sys.argv[1:]:
3636
subprocess.call(['chmod', 'a-r', path])

0 commit comments

Comments
 (0)