@@ -20,7 +20,7 @@ import SwiftPrivateLibcExtras
2020
2121#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS)
2222import Darwin
23- #elseif os(Linux) || os(FreeBSD) || os(PS4) || os(Android)
23+ #elseif os(Linux) || os(FreeBSD) || os(PS4) || os(Android) || CYGWIN
2424import Glibc
2525#endif
2626
@@ -1426,6 +1426,8 @@ public enum OSVersion : CustomStringConvertible {
14261426 case freeBSD
14271427 case android
14281428 case ps4
1429+ case windowsCygnus
1430+ case windows
14291431
14301432 public var description : String {
14311433 switch self {
@@ -1451,6 +1453,10 @@ public enum OSVersion : CustomStringConvertible {
14511453 return " PS4 "
14521454 case . android:
14531455 return " Android "
1456+ case . windowsCygnus:
1457+ return " Cygwin "
1458+ case . windows:
1459+ return " Windows "
14541460 }
14551461 }
14561462}
@@ -1489,6 +1495,10 @@ func _getOSVersion() -> OSVersion {
14891495 return . ps4
14901496#elseif os(Android)
14911497 return . android
1498+ #elseif os(Windows) && CYGWIN
1499+ return . windowsCygnus
1500+ #elseif os(Windows)
1501+ return . windows
14921502#else
14931503 let productVersion = _stdlib_getSystemVersionPlistProperty ( " ProductVersion " ) !
14941504 let ( major, minor, bugFix) = _parseDottedVersionTriple ( productVersion)
@@ -1567,6 +1577,10 @@ public enum TestRunPredicate : CustomStringConvertible {
15671577
15681578 case androidAny( reason: String )
15691579
1580+ case windowsAny( reason: String )
1581+
1582+ case windowsCygnusAny( reason: String )
1583+
15701584 case objCRuntime( /*reason:*/ String )
15711585 case nativeRuntime( /*reason:*/ String )
15721586
@@ -1653,6 +1667,12 @@ public enum TestRunPredicate : CustomStringConvertible {
16531667 case . ps4Any( reason: let reason) :
16541668 return " ps4Any(*, reason: \( reason) ) "
16551669
1670+ case . windowsAny( reason: let reason) :
1671+ return " windowsAny(*, reason: \( reason) ) "
1672+
1673+ case . windowsCygnusAny( reason: let reason) :
1674+ return " windowsCygnusAny(*, reason: \( reason) ) "
1675+
16561676 case . objCRuntime( let reason) :
16571677 return " Objective-C runtime, reason: \( reason) ) "
16581678 case . nativeRuntime( let reason) :
@@ -1918,6 +1938,24 @@ public enum TestRunPredicate : CustomStringConvertible {
19181938 return false
19191939 }
19201940
1941+ case . windowsAny:
1942+ switch _getRunningOSVersion ( ) {
1943+ case . windowsCygnus:
1944+ return true
1945+ case . windows:
1946+ return true
1947+ default :
1948+ return false
1949+ }
1950+
1951+ case . windowsCygnusAny:
1952+ switch _getRunningOSVersion ( ) {
1953+ case . windowsCygnus:
1954+ return true
1955+ default :
1956+ return false
1957+ }
1958+
19211959 case . objCRuntime:
19221960#if _runtime(_ObjC)
19231961 return true
0 commit comments