Skip to content

Commit 1de3729

Browse files
FranzBuschJoannis
andauthored
Enable 6.2 CI and enable Windows CI (#215)
Co-authored-by: Joannis Orlandos <[email protected]>
1 parent 64d09c1 commit 1de3729

File tree

7 files changed

+54
-10
lines changed

7 files changed

+54
-10
lines changed

.github/workflows/main.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,16 @@ jobs:
1414
name: Unit tests
1515
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
1616
with:
17-
linux_5_9_arguments_override: "--explicit-target-dependency-import-check error"
18-
linux_5_10_arguments_override: "--explicit-target-dependency-import-check error"
1917
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
2018
linux_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
21-
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
19+
linux_6_2_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
20+
linux_nightly_next_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
2221
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
22+
windows_6_0_enabled: true
23+
windows_6_1_enabled: true
24+
windows_6_2_enabled: true
25+
windows_nightly_next_enabled: true
26+
windows_nightly_main_enabled: true
2327

2428
cxx-interop:
2529
name: Cxx interop

.github/workflows/pull_request.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,16 @@ jobs:
1818
name: Unit tests
1919
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
2020
with:
21-
linux_5_9_arguments_override: "--explicit-target-dependency-import-check error"
22-
linux_5_10_arguments_override: "--explicit-target-dependency-import-check error"
2321
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
2422
linux_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
25-
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
23+
linux_6_2_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
24+
linux_nightly_next_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
2625
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
26+
windows_6_0_enabled: true
27+
windows_6_1_enabled: true
28+
windows_6_2_enabled: true
29+
windows_nightly_next_enabled: true
30+
windows_nightly_main_enabled: true
2731

2832
cxx-interop:
2933
name: Cxx interop

Sources/UnixSignals/UnixSignal.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import Dispatch
2626
/// A struct representing a Unix signal.
2727
///
2828
/// Signals are standardized messages sent to a running program to trigger specific behavior, such as quitting or error handling
29+
///
30+
/// - Important: Unix signals are only functional on platforms supporting signals.
2931
public struct UnixSignal: Hashable, Sendable, CustomStringConvertible {
3032
internal enum Wrapped {
3133
case sigabrt
@@ -118,6 +120,9 @@ extension UnixSignal.Wrapped: CustomStringConvertible {
118120

119121
extension UnixSignal.Wrapped {
120122
var rawValue: Int32 {
123+
#if os(Windows)
124+
return -1
125+
#else
121126
switch self {
122127
case .sigabrt:
123128
return SIGABRT
@@ -146,5 +151,6 @@ extension UnixSignal.Wrapped {
146151
case .sigpipe:
147152
return SIGPIPE
148153
}
154+
#endif
149155
}
150156
}

Sources/UnixSignals/UnixSignalsSequence.swift

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515
#if canImport(Darwin)
1616
import Darwin
1717
import Dispatch
18-
#elseif canImport(Glibc)
18+
#else
1919
@preconcurrency import Dispatch
20+
#endif
21+
22+
#if canImport(Glibc)
2023
import Glibc
2124
#elseif canImport(Musl)
22-
@preconcurrency import Dispatch
2325
import Musl
2426
#elseif canImport(Android)
25-
@preconcurrency import Dispatch
2627
import Android
2728
#endif
2829
import ConcurrencyHelpers
@@ -81,7 +82,8 @@ extension UnixSignalsSequence {
8182
private let stateMachine: LockedValueBox<StateMachine>
8283

8384
init(signals: Set<UnixSignal>) async {
84-
let sources: [Source] = signals.map { sig in
85+
#if !os(Windows)
86+
let sources: [Source] = signals.compactMap { sig -> Source? in
8587
#if canImport(Darwin)
8688
// On Darwin platforms Dispatch's signal source uses kqueue and EVFILT_SIGNAL for
8789
// delivering signals. This exists alongside but with lower precedence than signal and
@@ -163,6 +165,10 @@ extension UnixSignalsSequence {
163165
}
164166
}
165167
}
168+
#else
169+
let stream = AsyncStream<UnixSignal> { _ in }
170+
self.stateMachine = .init(.init(sources: [], stream: stream))
171+
#endif
166172
}
167173

168174
func makeAsyncIterator() -> AsyncStream<UnixSignal>.AsyncIterator {

Tests/ServiceLifecycleTests/ServiceGroupAddServiceTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ final class ServiceGroupAddServiceTests: XCTestCase {
239239
}
240240
}
241241

242+
#if !os(Windows)
242243
func testGracefulShutdownOrdering_withAddedServices() async throws {
243244
let service1 = MockService(description: "Service1")
244245
let service2 = MockService(description: "Service2")
@@ -369,6 +370,7 @@ final class ServiceGroupAddServiceTests: XCTestCase {
369370
await service2.resumeRunContinuation(with: .success(()))
370371
}
371372
}
373+
#endif
372374

373375
// MARK: - Helpers
374376

Tests/ServiceLifecycleTests/ServiceGroupTests.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ final class ServiceGroupTests: XCTestCase {
8181
}
8282
}
8383

84+
#if !os(Windows)
8485
func test_whenRun_ShutdownGracefully() async throws {
8586
let mockService = MockService(description: "Service1")
8687
let serviceGroup = self.makeServiceGroup(
@@ -103,6 +104,7 @@ final class ServiceGroupTests: XCTestCase {
103104
await mockService.resumeRunContinuation(with: .success(()))
104105
}
105106
}
107+
#endif
106108

107109
func testRun_whenServiceExitsEarly() async throws {
108110
let mockService = MockService(description: "Service1")
@@ -475,6 +477,7 @@ final class ServiceGroupTests: XCTestCase {
475477
}
476478
}
477479

480+
#if !os(Windows)
478481
func testCancellationSignal() async throws {
479482
let service1 = MockService(description: "Service1")
480483
let service2 = MockService(description: "Service2")
@@ -513,7 +516,9 @@ final class ServiceGroupTests: XCTestCase {
513516
await XCTAsyncAssertNoThrow(try await group.next())
514517
}
515518
}
519+
#endif
516520

521+
#if !os(Windows)
517522
func testCancellationSignal_afterGracefulShutdownSignal() async throws {
518523
let service1 = MockService(description: "Service1")
519524
let service2 = MockService(description: "Service2")
@@ -566,7 +571,9 @@ final class ServiceGroupTests: XCTestCase {
566571
await XCTAsyncAssertNoThrow(try await group.next())
567572
}
568573
}
574+
#endif
569575

576+
#if !os(Windows)
570577
func testGracefulShutdownOrdering() async throws {
571578
let service1 = MockService(description: "Service1")
572579
let service2 = MockService(description: "Service2")
@@ -630,7 +637,9 @@ final class ServiceGroupTests: XCTestCase {
630637
await service1.resumeRunContinuation(with: .success(()))
631638
}
632639
}
640+
#endif
633641

642+
#if !os(Windows)
634643
func testGracefulShutdownOrdering_whenServiceThrows() async throws {
635644
let service1 = MockService(description: "Service1")
636645
let service2 = MockService(description: "Service2")
@@ -694,7 +703,9 @@ final class ServiceGroupTests: XCTestCase {
694703
}
695704
}
696705
}
706+
#endif
697707

708+
#if !os(Windows)
698709
func testGracefulShutdownOrdering_whenServiceThrows_andServiceGracefullyShutsdown() async throws {
699710
let service1 = MockService(description: "Service1")
700711
let service2 = MockService(description: "Service2")
@@ -762,7 +773,9 @@ final class ServiceGroupTests: XCTestCase {
762773
}
763774
}
764775
}
776+
#endif
765777

778+
#if !os(Windows)
766779
func testGracefulShutdownOrdering_whenServiceExits() async throws {
767780
let service1 = MockService(description: "Service1")
768781
let service2 = MockService(description: "Service2")
@@ -822,7 +835,9 @@ final class ServiceGroupTests: XCTestCase {
822835
await service2.resumeRunContinuation(with: .success(()))
823836
}
824837
}
838+
#endif
825839

840+
#if !os(Windows)
826841
func testGracefulShutdownOrdering_whenServiceExits_andIgnoringThrows() async throws {
827842
let service1 = MockService(description: "Service1")
828843
let service2 = MockService(description: "Service2")
@@ -892,7 +907,9 @@ final class ServiceGroupTests: XCTestCase {
892907
}
893908
}
894909
}
910+
#endif
895911

912+
#if !os(Windows)
896913
func testNestedServiceLifecycle() async throws {
897914
struct NestedGroupService: Service {
898915
let group: ServiceGroup
@@ -1013,6 +1030,7 @@ final class ServiceGroupTests: XCTestCase {
10131030
await service2.resumeRunContinuation(with: .success(()))
10141031
}
10151032
}
1033+
#endif
10161034

10171035
func testGracefulShutdownEscalation() async throws {
10181036
let mockService = MockService(description: "Service1")

Tests/UnixSignalsTests/UnixSignalTests.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
//
1313
//===----------------------------------------------------------------------===//
1414

15+
#if !os(Windows)
16+
1517
import UnixSignals
1618
import XCTest
1719
#if canImport(Darwin)
@@ -154,3 +156,5 @@ final class UnixSignalTests: XCTestCase {
154156
await task.value
155157
}
156158
}
159+
160+
#endif

0 commit comments

Comments
 (0)