Files
2026-07-13 13:05:33 +08:00

40 lines
1.4 KiB
Swift

import Darwin
import XCTest
@testable import OrcaComputerUseMacOSCore
final class UnixSocketPathSafetyTests: XCTestCase {
func testOnlyUnixSocketModesAreAccepted() {
XCTAssertTrue(UnixSocketPathSafety.isSocketMode(mode_t(S_IFSOCK | 0o600)))
XCTAssertFalse(UnixSocketPathSafety.isSocketMode(mode_t(S_IFREG | 0o600)))
XCTAssertFalse(UnixSocketPathSafety.isSocketMode(mode_t(S_IFDIR | 0o700)))
XCTAssertFalse(UnixSocketPathSafety.isSocketMode(mode_t(S_IFLNK | 0o777)))
}
func testRejectsOnlyNonSocketPathsAfterAddressInUseBindFailure() {
XCTAssertTrue(
UnixSocketPathSafety.shouldRejectExistingPathAfterBindFailure(
bindErrno: EADDRINUSE,
existingMode: mode_t(S_IFREG | 0o600)
)
)
XCTAssertFalse(
UnixSocketPathSafety.shouldRejectExistingPathAfterBindFailure(
bindErrno: EADDRINUSE,
existingMode: mode_t(S_IFSOCK | 0o600)
)
)
XCTAssertFalse(
UnixSocketPathSafety.shouldRejectExistingPathAfterBindFailure(
bindErrno: EACCES,
existingMode: mode_t(S_IFREG | 0o600)
)
)
XCTAssertFalse(
UnixSocketPathSafety.shouldRejectExistingPathAfterBindFailure(
bindErrno: EADDRINUSE,
existingMode: nil
)
)
}
}