@@ -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
@@ -1429,6 +1429,8 @@ public enum OSVersion : CustomStringConvertible {
14291429 case freeBSD
14301430 case android
14311431 case ps4
1432+ case windowsCygnus
1433+ case windows
14321434
14331435 public var description : String {
14341436 switch self {
@@ -1454,6 +1456,10 @@ public enum OSVersion : CustomStringConvertible {
14541456 return " PS4 "
14551457 case . android:
14561458 return " Android "
1459+ case . windowsCygnus:
1460+ return " Cygwin "
1461+ case . windows:
1462+ return " Windows "
14571463 }
14581464 }
14591465}
@@ -1492,6 +1498,10 @@ func _getOSVersion() -> OSVersion {
14921498 return . ps4
14931499#elseif os(Android)
14941500 return . android
1501+ #elseif os(Windows) && CYGWIN
1502+ return . windowsCygnus
1503+ #elseif os(Windows)
1504+ return . windows
14951505#else
14961506 let productVersion = _stdlib_getSystemVersionPlistProperty ( " ProductVersion " ) !
14971507 let ( major, minor, bugFix) = _parseDottedVersionTriple ( productVersion)
@@ -1570,6 +1580,10 @@ public enum TestRunPredicate : CustomStringConvertible {
15701580
15711581 case androidAny( reason: String )
15721582
1583+ case windowsAny( reason: String )
1584+
1585+ case windowsCygnusAny( reason: String )
1586+
15731587 case objCRuntime( /*reason:*/ String )
15741588 case nativeRuntime( /*reason:*/ String )
15751589
@@ -1656,6 +1670,12 @@ public enum TestRunPredicate : CustomStringConvertible {
16561670 case . ps4Any( reason: let reason) :
16571671 return " ps4Any(*, reason: \( reason) ) "
16581672
1673+ case . windowsAny( reason: let reason) :
1674+ return " windowsAny(*, reason: \( reason) ) "
1675+
1676+ case . windowsCygnusAny( reason: let reason) :
1677+ return " windowsCygnusAny(*, reason: \( reason) ) "
1678+
16591679 case . objCRuntime( let reason) :
16601680 return " Objective-C runtime, reason: \( reason) ) "
16611681 case . nativeRuntime( let reason) :
@@ -1921,6 +1941,24 @@ public enum TestRunPredicate : CustomStringConvertible {
19211941 return false
19221942 }
19231943
1944+ case . windowsAny:
1945+ switch _getRunningOSVersion ( ) {
1946+ case . windowsCygnus:
1947+ return true
1948+ case . windows:
1949+ return true
1950+ default :
1951+ return false
1952+ }
1953+
1954+ case . windowsCygnusAny:
1955+ switch _getRunningOSVersion ( ) {
1956+ case . windowsCygnus:
1957+ return true
1958+ default :
1959+ return false
1960+ }
1961+
19241962 case . objCRuntime:
19251963#if _runtime(_ObjC)
19261964 return true
0 commit comments