Skip to content

Commit

Permalink
Run ChannelCrashTests on Linux/CI (#379)
Browse files Browse the repository at this point in the history
When `ChannelCrashTests` was added, it was never configured to run on Linux/CI. This PR:

- Renames the test case to `ChannelConnectivityTests`
- Adds an entry to `LinuxMain` so this is run on CI
- Makes the class `final`
- Updates indentation to be consistent with the rest of the project (2 spaces)
  • Loading branch information
rebello95 authored Feb 25, 2019
1 parent 9dff24d commit b899a30
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 41 deletions.
1 change: 1 addition & 0 deletions Tests/LinuxMain.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ XCTMain([
// SwiftGRPC
testCase(gRPCTests.allTests),
testCase(ChannelArgumentTests.allTests),
testCase(ChannelConnectivityTests.allTests),
testCase(ClientCancellingTests.allTests),
testCase(ClientTestExample.allTests),
testCase(ClientTimeoutTests.allTests),
Expand Down
49 changes: 49 additions & 0 deletions Tests/SwiftGRPCTests/ChannelConnectivityTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
* Copyright 2018, gRPC Authors All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@testable import SwiftGRPC
import XCTest

final class ChannelConnectivityTests: BasicEchoTestCase {
override var defaultTimeout: TimeInterval { return 0.4 }

static var allTests: [(String, (ChannelConnectivityTests) -> () throws -> Void)] {
return [
("testDanglingConnectivityObserversDontCrash", testDanglingConnectivityObserversDontCrash)
]
}
}

extension ChannelConnectivityTests {
func testDanglingConnectivityObserversDontCrash() {
let completionHandlerExpectation = expectation(description: "completion handler called")

client?.channel.subscribe { connectivityState in
print("ConnectivityState: \(connectivityState)")
}

let request = Echo_EchoRequest(text: "foo bar baz foo bar baz")
_ = try! client!.expand(request) { callResult in
print("callResult.statusCode: \(callResult.statusCode)")
completionHandlerExpectation.fulfill()
}

DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(300)) {
self.client = nil // Deallocating the client
}

waitForExpectations(timeout: 0.5)
}
}
41 changes: 0 additions & 41 deletions Tests/SwiftGRPCTests/ChannelCrashTests.swift

This file was deleted.

0 comments on commit b899a30

Please sign in to comment.