• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 *
3 * Copyright 2019 gRPC authors.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 */
18
19#import <GRPCClient/GRPCCall+Tests.h>
20#import <GRPCClient/GRPCTransport.h>
21#import <GRPCClient/internal_testing/GRPCCall+InternalTests.h>
22
23#import "PerfTests.h"
24// The server address is derived from preprocessor macro, which is
25// in turn derived from environment variable of the same name.
26#define NSStringize_helper(x) #x
27#define NSStringize(x) @NSStringize_helper(x)
28static NSString *const kLocalSSLHost = NSStringize(HOST_PORT_LOCALSSL);
29
30extern const char *kCFStreamVarName;
31
32// The Protocol Buffers encoding overhead of local interop server. Acquired
33// by experiment. Adjust this when server's proto file changes.
34static int32_t kLocalInteropServerOverhead = 10;
35
36/** Tests in PerfTests.m, sending the RPCs to a local SSL server. */
37@interface PerfTestsCFStreamSSL : PerfTests
38@end
39
40@implementation PerfTestsCFStreamSSL
41
42+ (NSString *)host {
43  return kLocalSSLHost;
44}
45
46+ (NSString *)PEMRootCertificates {
47  NSBundle *bundle = [NSBundle bundleForClass:[self class]];
48  NSString *certsPath = [bundle pathForResource:@"TestCertificates.bundle/test-certificates"
49                                         ofType:@"pem"];
50  NSError *error;
51  return [NSString stringWithContentsOfFile:certsPath encoding:NSUTF8StringEncoding error:&error];
52}
53
54+ (NSString *)hostNameOverride {
55  return @"foo.test.google.fr";
56}
57
58- (int32_t)encodingOverhead {
59  return kLocalInteropServerOverhead;  // bytes
60}
61
62+ (GRPCTransportID)transport {
63  return GRPCDefaultTransportImplList.core_secure;
64}
65
66+ (void)setUp {
67  setenv(kCFStreamVarName, "1", 1);
68}
69
70- (void)setUp {
71  [super setUp];
72
73  // Register test server certificates and name.
74  NSBundle *bundle = [NSBundle bundleForClass:[self class]];
75  NSString *certsPath = [bundle pathForResource:@"TestCertificates.bundle/test-certificates"
76                                         ofType:@"pem"];
77  [GRPCCall useTestCertsPath:certsPath testName:@"foo.test.google.fr" forHost:kLocalSSLHost];
78}
79
80@end
81