summaryrefslogtreecommitdiff
path: root/swift/test/Ice/retry/Client.swift
blob: 8cad79667c7d2c25c51cc74892033847ca34d51a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//

import Ice
import TestCommon

class Client: TestHelperI {
    public override func run(args: [String]) throws {
        do {
            var properties = try createTestProperties(args)
            properties.setProperty(key: "Ice.RetryIntervals", value: "0 1 10 1")

            //
            // This test kills connections, so we don't want warnings.
            //
            properties.setProperty(key: "Ice.Warn.Connections", value: "0")
            let communicator = try initialize(properties)
            defer {
                communicator.destroy()
            }

            //
            // Configure a second communicator for the invocation timeout
            // + retry test, we need to configure a large retry interval
            // to avoid time-sensitive failures.
            //
            properties = communicator.getProperties().clone()
            properties.setProperty(key: "Ice.RetryIntervals", value: "0 1 10000")
            let communicator2 = try self.initialize(properties)
            defer {
                communicator2.destroy()
            }

            let r = try allTests(helper: self,
                                 communicator2: communicator2,
                                 ref: "retry:\(self.getTestEndpoint(num: 0))")
            try r.shutdown()
        }
    }
}