Merge pull request #19855 from Tony1023/bazel_objc_tests
Added Bazel BUILD for ObjC Tests and Examplespull/19978/head
commit
eae902594b
53 changed files with 842 additions and 1300 deletions
@ -1,31 +0,0 @@ |
|||||||
platform :ios, '8.0' |
|
||||||
|
|
||||||
install! 'cocoapods', :deterministic_uuids => false |
|
||||||
|
|
||||||
ROOT_DIR = '../../../../..' |
|
||||||
|
|
||||||
target 'ios-sample' do |
|
||||||
pod 'gRPC-ProtoRPC', :path => ROOT_DIR |
|
||||||
pod 'gRPC', :path => ROOT_DIR |
|
||||||
pod 'gRPC-Core', :path => ROOT_DIR |
|
||||||
pod 'gRPC-RxLibrary', :path => ROOT_DIR |
|
||||||
pod 'RemoteTest', :path => "../../RemoteTestClient" |
|
||||||
pod '!ProtoCompiler-gRPCPlugin', :path => "#{ROOT_DIR}/src/objective-c" |
|
||||||
end |
|
||||||
|
|
||||||
pre_install do |installer| |
|
||||||
grpc_core_spec = installer.pod_targets.find{|t| t.name.start_with?('gRPC-Core')}.root_spec |
|
||||||
|
|
||||||
src_root = "$(PODS_TARGET_SRCROOT)" |
|
||||||
grpc_core_spec.pod_target_xcconfig = { |
|
||||||
'GRPC_SRC_ROOT' => src_root, |
|
||||||
'HEADER_SEARCH_PATHS' => '"$(inherited)" "$(GRPC_SRC_ROOT)/include"', |
|
||||||
'USER_HEADER_SEARCH_PATHS' => '"$(GRPC_SRC_ROOT)"', |
|
||||||
# If we don't set these two settings, `include/grpc/support/time.h` and |
|
||||||
# `src/core/lib/gpr/string.h` shadow the system `<time.h>` and `<string.h>`, breaking the |
|
||||||
# build. |
|
||||||
'USE_HEADERMAP' => 'NO', |
|
||||||
'ALWAYS_SEARCH_USER_PATHS' => 'NO', |
|
||||||
} |
|
||||||
end |
|
||||||
|
|
@ -1,413 +0,0 @@ |
|||||||
// !$*UTF8*$! |
|
||||||
{ |
|
||||||
archiveVersion = 1; |
|
||||||
classes = { |
|
||||||
}; |
|
||||||
objectVersion = 50; |
|
||||||
objects = { |
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */ |
|
||||||
AB433CC922D7E38000D579CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AB433CC822D7E38000D579CC /* AppDelegate.m */; }; |
|
||||||
AB433CCC22D7E38000D579CC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AB433CCB22D7E38000D579CC /* ViewController.m */; }; |
|
||||||
AB433CCF22D7E38000D579CC /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB433CCD22D7E38000D579CC /* Main.storyboard */; }; |
|
||||||
AB433CD122D7E38100D579CC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AB433CD022D7E38100D579CC /* Assets.xcassets */; }; |
|
||||||
AB433CD422D7E38100D579CC /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB433CD222D7E38100D579CC /* LaunchScreen.storyboard */; }; |
|
||||||
AB433CD722D7E38100D579CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AB433CD622D7E38100D579CC /* main.m */; }; |
|
||||||
ED11F6CDF54788FC7CFD87B1 /* libPods-ios-sample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5AF80A181E30BD84FA56BE33 /* libPods-ios-sample.a */; }; |
|
||||||
/* End PBXBuildFile section */ |
|
||||||
|
|
||||||
/* Begin PBXFileReference section */ |
|
||||||
112D4595FA3E81552DA9E877 /* Pods-ios-sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-sample.release.xcconfig"; path = "Target Support Files/Pods-ios-sample/Pods-ios-sample.release.xcconfig"; sourceTree = "<group>"; }; |
|
||||||
5AF80A181E30BD84FA56BE33 /* libPods-ios-sample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ios-sample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |
|
||||||
72599BE4AC5785D3368D40DD /* Pods-ios-sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-sample.debug.xcconfig"; path = "Target Support Files/Pods-ios-sample/Pods-ios-sample.debug.xcconfig"; sourceTree = "<group>"; }; |
|
||||||
AB433CC422D7E38000D579CC /* ios-sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ios-sample.app"; sourceTree = BUILT_PRODUCTS_DIR; }; |
|
||||||
AB433CC722D7E38000D579CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; |
|
||||||
AB433CC822D7E38000D579CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; |
|
||||||
AB433CCA22D7E38000D579CC /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; |
|
||||||
AB433CCB22D7E38000D579CC /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; }; |
|
||||||
AB433CCE22D7E38000D579CC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; |
|
||||||
AB433CD022D7E38100D579CC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; |
|
||||||
AB433CD322D7E38100D579CC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; |
|
||||||
AB433CD522D7E38100D579CC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
|
||||||
AB433CD622D7E38100D579CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; |
|
||||||
/* End PBXFileReference section */ |
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */ |
|
||||||
AB433CC122D7E38000D579CC /* Frameworks */ = { |
|
||||||
isa = PBXFrameworksBuildPhase; |
|
||||||
buildActionMask = 2147483647; |
|
||||||
files = ( |
|
||||||
ED11F6CDF54788FC7CFD87B1 /* libPods-ios-sample.a in Frameworks */, |
|
||||||
); |
|
||||||
runOnlyForDeploymentPostprocessing = 0; |
|
||||||
}; |
|
||||||
/* End PBXFrameworksBuildPhase section */ |
|
||||||
|
|
||||||
/* Begin PBXGroup section */ |
|
||||||
2A170580B60E92B1A65525D4 /* Pods */ = { |
|
||||||
isa = PBXGroup; |
|
||||||
children = ( |
|
||||||
72599BE4AC5785D3368D40DD /* Pods-ios-sample.debug.xcconfig */, |
|
||||||
112D4595FA3E81552DA9E877 /* Pods-ios-sample.release.xcconfig */, |
|
||||||
); |
|
||||||
name = Pods; |
|
||||||
path = Pods; |
|
||||||
sourceTree = "<group>"; |
|
||||||
}; |
|
||||||
AB433CBB22D7E38000D579CC = { |
|
||||||
isa = PBXGroup; |
|
||||||
children = ( |
|
||||||
AB433CC622D7E38000D579CC /* ios-sample */, |
|
||||||
AB433CC522D7E38000D579CC /* Products */, |
|
||||||
2A170580B60E92B1A65525D4 /* Pods */, |
|
||||||
FD148AE940967C50DB2C12CB /* Frameworks */, |
|
||||||
); |
|
||||||
sourceTree = "<group>"; |
|
||||||
}; |
|
||||||
AB433CC522D7E38000D579CC /* Products */ = { |
|
||||||
isa = PBXGroup; |
|
||||||
children = ( |
|
||||||
AB433CC422D7E38000D579CC /* ios-sample.app */, |
|
||||||
); |
|
||||||
name = Products; |
|
||||||
sourceTree = "<group>"; |
|
||||||
}; |
|
||||||
AB433CC622D7E38000D579CC /* ios-sample */ = { |
|
||||||
isa = PBXGroup; |
|
||||||
children = ( |
|
||||||
AB433CC722D7E38000D579CC /* AppDelegate.h */, |
|
||||||
AB433CC822D7E38000D579CC /* AppDelegate.m */, |
|
||||||
AB433CCA22D7E38000D579CC /* ViewController.h */, |
|
||||||
AB433CCB22D7E38000D579CC /* ViewController.m */, |
|
||||||
AB433CCD22D7E38000D579CC /* Main.storyboard */, |
|
||||||
AB433CD022D7E38100D579CC /* Assets.xcassets */, |
|
||||||
AB433CD222D7E38100D579CC /* LaunchScreen.storyboard */, |
|
||||||
AB433CD522D7E38100D579CC /* Info.plist */, |
|
||||||
AB433CD622D7E38100D579CC /* main.m */, |
|
||||||
); |
|
||||||
path = "ios-sample"; |
|
||||||
sourceTree = "<group>"; |
|
||||||
}; |
|
||||||
FD148AE940967C50DB2C12CB /* Frameworks */ = { |
|
||||||
isa = PBXGroup; |
|
||||||
children = ( |
|
||||||
5AF80A181E30BD84FA56BE33 /* libPods-ios-sample.a */, |
|
||||||
); |
|
||||||
name = Frameworks; |
|
||||||
sourceTree = "<group>"; |
|
||||||
}; |
|
||||||
/* End PBXGroup section */ |
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */ |
|
||||||
AB433CC322D7E38000D579CC /* ios-sample */ = { |
|
||||||
isa = PBXNativeTarget; |
|
||||||
buildConfigurationList = AB433CDA22D7E38100D579CC /* Build configuration list for PBXNativeTarget "ios-sample" */; |
|
||||||
buildPhases = ( |
|
||||||
9DD34A50D448CD3F464D4A3C /* [CP] Check Pods Manifest.lock */, |
|
||||||
AB433CC022D7E38000D579CC /* Sources */, |
|
||||||
AB433CC122D7E38000D579CC /* Frameworks */, |
|
||||||
AB433CC222D7E38000D579CC /* Resources */, |
|
||||||
630985F7228D41528084692C /* [CP] Copy Pods Resources */, |
|
||||||
); |
|
||||||
buildRules = ( |
|
||||||
); |
|
||||||
dependencies = ( |
|
||||||
); |
|
||||||
name = "ios-sample"; |
|
||||||
productName = "ios-sample"; |
|
||||||
productReference = AB433CC422D7E38000D579CC /* ios-sample.app */; |
|
||||||
productType = "com.apple.product-type.application"; |
|
||||||
}; |
|
||||||
/* End PBXNativeTarget section */ |
|
||||||
|
|
||||||
/* Begin PBXProject section */ |
|
||||||
AB433CBC22D7E38000D579CC /* Project object */ = { |
|
||||||
isa = PBXProject; |
|
||||||
attributes = { |
|
||||||
LastUpgradeCheck = 1010; |
|
||||||
ORGANIZATIONNAME = "Tony Lu"; |
|
||||||
TargetAttributes = { |
|
||||||
AB433CC322D7E38000D579CC = { |
|
||||||
CreatedOnToolsVersion = 10.1; |
|
||||||
}; |
|
||||||
}; |
|
||||||
}; |
|
||||||
buildConfigurationList = AB433CBF22D7E38000D579CC /* Build configuration list for PBXProject "ios-sample" */; |
|
||||||
compatibilityVersion = "Xcode 9.3"; |
|
||||||
developmentRegion = en; |
|
||||||
hasScannedForEncodings = 0; |
|
||||||
knownRegions = ( |
|
||||||
en, |
|
||||||
Base, |
|
||||||
); |
|
||||||
mainGroup = AB433CBB22D7E38000D579CC; |
|
||||||
productRefGroup = AB433CC522D7E38000D579CC /* Products */; |
|
||||||
projectDirPath = ""; |
|
||||||
projectRoot = ""; |
|
||||||
targets = ( |
|
||||||
AB433CC322D7E38000D579CC /* ios-sample */, |
|
||||||
); |
|
||||||
}; |
|
||||||
/* End PBXProject section */ |
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */ |
|
||||||
AB433CC222D7E38000D579CC /* Resources */ = { |
|
||||||
isa = PBXResourcesBuildPhase; |
|
||||||
buildActionMask = 2147483647; |
|
||||||
files = ( |
|
||||||
AB433CD422D7E38100D579CC /* LaunchScreen.storyboard in Resources */, |
|
||||||
AB433CD122D7E38100D579CC /* Assets.xcassets in Resources */, |
|
||||||
AB433CCF22D7E38000D579CC /* Main.storyboard in Resources */, |
|
||||||
); |
|
||||||
runOnlyForDeploymentPostprocessing = 0; |
|
||||||
}; |
|
||||||
/* End PBXResourcesBuildPhase section */ |
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */ |
|
||||||
630985F7228D41528084692C /* [CP] Copy Pods Resources */ = { |
|
||||||
isa = PBXShellScriptBuildPhase; |
|
||||||
buildActionMask = 2147483647; |
|
||||||
files = ( |
|
||||||
); |
|
||||||
inputFileListPaths = ( |
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-ios-sample/Pods-ios-sample-resources-${CONFIGURATION}-input-files.xcfilelist", |
|
||||||
); |
|
||||||
name = "[CP] Copy Pods Resources"; |
|
||||||
outputFileListPaths = ( |
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-ios-sample/Pods-ios-sample-resources-${CONFIGURATION}-output-files.xcfilelist", |
|
||||||
); |
|
||||||
runOnlyForDeploymentPostprocessing = 0; |
|
||||||
shellPath = /bin/sh; |
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ios-sample/Pods-ios-sample-resources.sh\"\n"; |
|
||||||
showEnvVarsInLog = 0; |
|
||||||
}; |
|
||||||
9DD34A50D448CD3F464D4A3C /* [CP] Check Pods Manifest.lock */ = { |
|
||||||
isa = PBXShellScriptBuildPhase; |
|
||||||
buildActionMask = 2147483647; |
|
||||||
files = ( |
|
||||||
); |
|
||||||
inputFileListPaths = ( |
|
||||||
); |
|
||||||
inputPaths = ( |
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock", |
|
||||||
"${PODS_ROOT}/Manifest.lock", |
|
||||||
); |
|
||||||
name = "[CP] Check Pods Manifest.lock"; |
|
||||||
outputFileListPaths = ( |
|
||||||
); |
|
||||||
outputPaths = ( |
|
||||||
"$(DERIVED_FILE_DIR)/Pods-ios-sample-checkManifestLockResult.txt", |
|
||||||
); |
|
||||||
runOnlyForDeploymentPostprocessing = 0; |
|
||||||
shellPath = /bin/sh; |
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
|
||||||
showEnvVarsInLog = 0; |
|
||||||
}; |
|
||||||
/* End PBXShellScriptBuildPhase section */ |
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */ |
|
||||||
AB433CC022D7E38000D579CC /* Sources */ = { |
|
||||||
isa = PBXSourcesBuildPhase; |
|
||||||
buildActionMask = 2147483647; |
|
||||||
files = ( |
|
||||||
AB433CCC22D7E38000D579CC /* ViewController.m in Sources */, |
|
||||||
AB433CD722D7E38100D579CC /* main.m in Sources */, |
|
||||||
AB433CC922D7E38000D579CC /* AppDelegate.m in Sources */, |
|
||||||
); |
|
||||||
runOnlyForDeploymentPostprocessing = 0; |
|
||||||
}; |
|
||||||
/* End PBXSourcesBuildPhase section */ |
|
||||||
|
|
||||||
/* Begin PBXVariantGroup section */ |
|
||||||
AB433CCD22D7E38000D579CC /* Main.storyboard */ = { |
|
||||||
isa = PBXVariantGroup; |
|
||||||
children = ( |
|
||||||
AB433CCE22D7E38000D579CC /* Base */, |
|
||||||
); |
|
||||||
name = Main.storyboard; |
|
||||||
sourceTree = "<group>"; |
|
||||||
}; |
|
||||||
AB433CD222D7E38100D579CC /* LaunchScreen.storyboard */ = { |
|
||||||
isa = PBXVariantGroup; |
|
||||||
children = ( |
|
||||||
AB433CD322D7E38100D579CC /* Base */, |
|
||||||
); |
|
||||||
name = LaunchScreen.storyboard; |
|
||||||
sourceTree = "<group>"; |
|
||||||
}; |
|
||||||
/* End PBXVariantGroup section */ |
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */ |
|
||||||
AB433CD822D7E38100D579CC /* Debug */ = { |
|
||||||
isa = XCBuildConfiguration; |
|
||||||
buildSettings = { |
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO; |
|
||||||
CLANG_ANALYZER_NONNULL = YES; |
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; |
|
||||||
CLANG_CXX_LIBRARY = "libc++"; |
|
||||||
CLANG_ENABLE_MODULES = YES; |
|
||||||
CLANG_ENABLE_OBJC_ARC = YES; |
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES; |
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES; |
|
||||||
CLANG_WARN_COMMA = YES; |
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES; |
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; |
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
|
||||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
|
||||||
CLANG_WARN_EMPTY_BODY = YES; |
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES; |
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES; |
|
||||||
CLANG_WARN_INT_CONVERSION = YES; |
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES; |
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES; |
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES; |
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
||||||
COPY_PHASE_STRIP = NO; |
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf; |
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES; |
|
||||||
ENABLE_TESTABILITY = YES; |
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11; |
|
||||||
GCC_DYNAMIC_NO_PIC = NO; |
|
||||||
GCC_NO_COMMON_BLOCKS = YES; |
|
||||||
GCC_OPTIMIZATION_LEVEL = 0; |
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = ( |
|
||||||
"DEBUG=1", |
|
||||||
"$(inherited)", |
|
||||||
); |
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES; |
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES; |
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES; |
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.1; |
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; |
|
||||||
MTL_FAST_MATH = YES; |
|
||||||
ONLY_ACTIVE_ARCH = YES; |
|
||||||
SDKROOT = iphoneos; |
|
||||||
}; |
|
||||||
name = Debug; |
|
||||||
}; |
|
||||||
AB433CD922D7E38100D579CC /* Release */ = { |
|
||||||
isa = XCBuildConfiguration; |
|
||||||
buildSettings = { |
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO; |
|
||||||
CLANG_ANALYZER_NONNULL = YES; |
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; |
|
||||||
CLANG_CXX_LIBRARY = "libc++"; |
|
||||||
CLANG_ENABLE_MODULES = YES; |
|
||||||
CLANG_ENABLE_OBJC_ARC = YES; |
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES; |
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES; |
|
||||||
CLANG_WARN_COMMA = YES; |
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES; |
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; |
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
|
||||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
|
||||||
CLANG_WARN_EMPTY_BODY = YES; |
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES; |
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES; |
|
||||||
CLANG_WARN_INT_CONVERSION = YES; |
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES; |
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES; |
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES; |
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer"; |
|
||||||
COPY_PHASE_STRIP = NO; |
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |
|
||||||
ENABLE_NS_ASSERTIONS = NO; |
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES; |
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11; |
|
||||||
GCC_NO_COMMON_BLOCKS = YES; |
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES; |
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES; |
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES; |
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.1; |
|
||||||
MTL_ENABLE_DEBUG_INFO = NO; |
|
||||||
MTL_FAST_MATH = YES; |
|
||||||
SDKROOT = iphoneos; |
|
||||||
VALIDATE_PRODUCT = YES; |
|
||||||
}; |
|
||||||
name = Release; |
|
||||||
}; |
|
||||||
AB433CDB22D7E38100D579CC /* Debug */ = { |
|
||||||
isa = XCBuildConfiguration; |
|
||||||
baseConfigurationReference = 72599BE4AC5785D3368D40DD /* Pods-ios-sample.debug.xcconfig */; |
|
||||||
buildSettings = { |
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
|
||||||
CODE_SIGN_STYLE = Automatic; |
|
||||||
DEVELOPMENT_TEAM = 6T98ZJNPG5; |
|
||||||
INFOPLIST_FILE = "ios-sample/Info.plist"; |
|
||||||
LD_RUNPATH_SEARCH_PATHS = ( |
|
||||||
"$(inherited)", |
|
||||||
"@executable_path/Frameworks", |
|
||||||
); |
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.ios-sample-objc-bazel"; |
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
|
||||||
TARGETED_DEVICE_FAMILY = "1,2"; |
|
||||||
}; |
|
||||||
name = Debug; |
|
||||||
}; |
|
||||||
AB433CDC22D7E38100D579CC /* Release */ = { |
|
||||||
isa = XCBuildConfiguration; |
|
||||||
baseConfigurationReference = 112D4595FA3E81552DA9E877 /* Pods-ios-sample.release.xcconfig */; |
|
||||||
buildSettings = { |
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
|
||||||
CODE_SIGN_STYLE = Automatic; |
|
||||||
DEVELOPMENT_TEAM = 6T98ZJNPG5; |
|
||||||
INFOPLIST_FILE = "ios-sample/Info.plist"; |
|
||||||
LD_RUNPATH_SEARCH_PATHS = ( |
|
||||||
"$(inherited)", |
|
||||||
"@executable_path/Frameworks", |
|
||||||
); |
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.ios-sample-objc-bazel"; |
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
|
||||||
TARGETED_DEVICE_FAMILY = "1,2"; |
|
||||||
}; |
|
||||||
name = Release; |
|
||||||
}; |
|
||||||
/* End XCBuildConfiguration section */ |
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */ |
|
||||||
AB433CBF22D7E38000D579CC /* Build configuration list for PBXProject "ios-sample" */ = { |
|
||||||
isa = XCConfigurationList; |
|
||||||
buildConfigurations = ( |
|
||||||
AB433CD822D7E38100D579CC /* Debug */, |
|
||||||
AB433CD922D7E38100D579CC /* Release */, |
|
||||||
); |
|
||||||
defaultConfigurationIsVisible = 0; |
|
||||||
defaultConfigurationName = Release; |
|
||||||
}; |
|
||||||
AB433CDA22D7E38100D579CC /* Build configuration list for PBXNativeTarget "ios-sample" */ = { |
|
||||||
isa = XCConfigurationList; |
|
||||||
buildConfigurations = ( |
|
||||||
AB433CDB22D7E38100D579CC /* Debug */, |
|
||||||
AB433CDC22D7E38100D579CC /* Release */, |
|
||||||
); |
|
||||||
defaultConfigurationIsVisible = 0; |
|
||||||
defaultConfigurationName = Release; |
|
||||||
}; |
|
||||||
/* End XCConfigurationList section */ |
|
||||||
}; |
|
||||||
rootObject = AB433CBC22D7E38000D579CC /* Project object */; |
|
||||||
} |
|
@ -1,63 +0,0 @@ |
|||||||
/* |
|
||||||
* |
|
||||||
* Copyright 2019 gRPC authors. |
|
||||||
* |
|
||||||
* 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. |
|
||||||
* |
|
||||||
*/ |
|
||||||
|
|
||||||
#import "AppDelegate.h" |
|
||||||
|
|
||||||
@interface AppDelegate () |
|
||||||
|
|
||||||
@end |
|
||||||
|
|
||||||
@implementation AppDelegate |
|
||||||
|
|
||||||
- (BOOL)application:(UIApplication *)application |
|
||||||
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
|
||||||
// Override point for customization after application launch. |
|
||||||
return YES; |
|
||||||
} |
|
||||||
|
|
||||||
- (void)applicationWillResignActive:(UIApplication *)application { |
|
||||||
// Sent when the application is about to move from active to inactive state. This can occur for |
|
||||||
// certain types of temporary interruptions (such as an incoming phone call or SMS message) or |
|
||||||
// when the user quits the application and it begins the transition to the background state. Use |
|
||||||
// this method to pause ongoing tasks, disable timers, and invalidate graphics rendering |
|
||||||
// callbacks. Games should use this method to pause the game. |
|
||||||
} |
|
||||||
|
|
||||||
- (void)applicationDidEnterBackground:(UIApplication *)application { |
|
||||||
// Use this method to release shared resources, save user data, invalidate timers, and store |
|
||||||
// enough application state information to restore your application to its current state in case |
|
||||||
// it is terminated later. If your application supports background execution, this method is |
|
||||||
// called instead of applicationWillTerminate: when the user quits. |
|
||||||
} |
|
||||||
|
|
||||||
- (void)applicationWillEnterForeground:(UIApplication *)application { |
|
||||||
// Called as part of the transition from the background to the active state; here you can undo |
|
||||||
// many of the changes made on entering the background. |
|
||||||
} |
|
||||||
|
|
||||||
- (void)applicationDidBecomeActive:(UIApplication *)application { |
|
||||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If |
|
||||||
// the application was previously in the background, optionally refresh the user interface. |
|
||||||
} |
|
||||||
|
|
||||||
- (void)applicationWillTerminate:(UIApplication *)application { |
|
||||||
// Called when the application is about to terminate. Save data if appropriate. See also |
|
||||||
// applicationDidEnterBackground:. |
|
||||||
} |
|
||||||
|
|
||||||
@end |
|
@ -1,98 +0,0 @@ |
|||||||
{ |
|
||||||
"images" : [ |
|
||||||
{ |
|
||||||
"idiom" : "iphone", |
|
||||||
"size" : "20x20", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "iphone", |
|
||||||
"size" : "20x20", |
|
||||||
"scale" : "3x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "iphone", |
|
||||||
"size" : "29x29", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "iphone", |
|
||||||
"size" : "29x29", |
|
||||||
"scale" : "3x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "iphone", |
|
||||||
"size" : "40x40", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "iphone", |
|
||||||
"size" : "40x40", |
|
||||||
"scale" : "3x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "iphone", |
|
||||||
"size" : "60x60", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "iphone", |
|
||||||
"size" : "60x60", |
|
||||||
"scale" : "3x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "20x20", |
|
||||||
"scale" : "1x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "20x20", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "29x29", |
|
||||||
"scale" : "1x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "29x29", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "40x40", |
|
||||||
"scale" : "1x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "40x40", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "76x76", |
|
||||||
"scale" : "1x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "76x76", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ipad", |
|
||||||
"size" : "83.5x83.5", |
|
||||||
"scale" : "2x" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"idiom" : "ios-marketing", |
|
||||||
"size" : "1024x1024", |
|
||||||
"scale" : "1x" |
|
||||||
} |
|
||||||
], |
|
||||||
"info" : { |
|
||||||
"version" : 1, |
|
||||||
"author" : "xcode" |
|
||||||
} |
|
||||||
} |
|
@ -1,6 +0,0 @@ |
|||||||
{ |
|
||||||
"info" : { |
|
||||||
"version" : 1, |
|
||||||
"author" : "xcode" |
|
||||||
} |
|
||||||
} |
|
@ -1,25 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> |
|
||||||
<dependencies> |
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/> |
|
||||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/> |
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
|
||||||
</dependencies> |
|
||||||
<scenes> |
|
||||||
<!--View Controller--> |
|
||||||
<scene sceneID="EHf-IW-A2E"> |
|
||||||
<objects> |
|
||||||
<viewController id="01J-lp-oVM" sceneMemberID="viewController"> |
|
||||||
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> |
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
|
||||||
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> |
|
||||||
</view> |
|
||||||
</viewController> |
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> |
|
||||||
</objects> |
|
||||||
<point key="canvasLocation" x="53" y="375"/> |
|
||||||
</scene> |
|
||||||
</scenes> |
|
||||||
</document> |
|
@ -1,38 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r"> |
|
||||||
<device id="retina4_7" orientation="portrait"> |
|
||||||
<adaptation id="fullscreen"/> |
|
||||||
</device> |
|
||||||
<dependencies> |
|
||||||
<deployment identifier="iOS"/> |
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/> |
|
||||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/> |
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
|
||||||
</dependencies> |
|
||||||
<scenes> |
|
||||||
<!--View Controller--> |
|
||||||
<scene sceneID="tne-QT-ifu"> |
|
||||||
<objects> |
|
||||||
<viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController"> |
|
||||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> |
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
|
||||||
<subviews> |
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="iTL-zv-YSZ"> |
|
||||||
<rect key="frame" x="164" y="318" width="46" height="30"/> |
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
|
||||||
<state key="normal" title="Button"/> |
|
||||||
<connections> |
|
||||||
<action selector="tapCall:" destination="BYZ-38-t0r" eventType="touchUpInside" id="c5c-m5-SGC"/> |
|
||||||
</connections> |
|
||||||
</button> |
|
||||||
</subviews> |
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
|
||||||
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> |
|
||||||
</view> |
|
||||||
</viewController> |
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> |
|
||||||
</objects> |
|
||||||
</scene> |
|
||||||
</scenes> |
|
||||||
</document> |
|
@ -1,86 +0,0 @@ |
|||||||
/* |
|
||||||
* |
|
||||||
* Copyright 2019 gRPC authors. |
|
||||||
* |
|
||||||
* 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. |
|
||||||
* |
|
||||||
*/ |
|
||||||
|
|
||||||
#import "ViewController.h" |
|
||||||
|
|
||||||
#import <GRPCClient/GRPCCall.h> |
|
||||||
#if COCOAPODS |
|
||||||
#import <RemoteTest/Messages.pbobjc.h> |
|
||||||
#import <RemoteTest/Test.pbrpc.h> |
|
||||||
#else |
|
||||||
#import "src/objective-c/examples/BazelBuildSamples/Messages.pbobjc.h" |
|
||||||
#import "src/objective-c/examples/BazelBuildSamples/rmt/Test.pbrpc.h" |
|
||||||
#endif |
|
||||||
|
|
||||||
static NSString *const kPackage = @"grpc.testing"; |
|
||||||
static NSString *const kService = @"TestService"; |
|
||||||
|
|
||||||
@interface ViewController ()<GRPCResponseHandler> |
|
||||||
|
|
||||||
@end |
|
||||||
|
|
||||||
@implementation ViewController { |
|
||||||
GRPCCallOptions *_options; |
|
||||||
} |
|
||||||
|
|
||||||
- (void)viewDidLoad { |
|
||||||
[super viewDidLoad]; |
|
||||||
|
|
||||||
GRPCMutableCallOptions *options = [[GRPCMutableCallOptions alloc] init]; |
|
||||||
// optionally modify options |
|
||||||
_options = options; |
|
||||||
} |
|
||||||
|
|
||||||
- (IBAction)tapCall:(id)sender { |
|
||||||
GRPCProtoMethod *kUnaryCallMethod = |
|
||||||
[[GRPCProtoMethod alloc] initWithPackage:kPackage service:kService method:@"UnaryCall"]; |
|
||||||
|
|
||||||
GRPCRequestOptions *requestOptions = |
|
||||||
[[GRPCRequestOptions alloc] initWithHost:@"grpc-test.sandbox.googleapis.com" |
|
||||||
path:kUnaryCallMethod.HTTPPath |
|
||||||
safety:GRPCCallSafetyCacheableRequest]; |
|
||||||
|
|
||||||
GRPCCall2 *call = [[GRPCCall2 alloc] initWithRequestOptions:requestOptions |
|
||||||
responseHandler:self |
|
||||||
callOptions:_options]; |
|
||||||
|
|
||||||
RMTSimpleRequest *request = [RMTSimpleRequest message]; |
|
||||||
request.responseSize = 100; |
|
||||||
|
|
||||||
[call start]; |
|
||||||
[call writeData:[request data]]; |
|
||||||
[call finish]; |
|
||||||
} |
|
||||||
|
|
||||||
- (dispatch_queue_t)dispatchQueue { |
|
||||||
return dispatch_get_main_queue(); |
|
||||||
} |
|
||||||
|
|
||||||
- (void)didReceiveInitialMetadata:(NSDictionary *)initialMetadata { |
|
||||||
NSLog(@"Header: %@", initialMetadata); |
|
||||||
} |
|
||||||
|
|
||||||
- (void)didReceiveData:(id)data { |
|
||||||
NSLog(@"Message: %@", data); |
|
||||||
} |
|
||||||
|
|
||||||
- (void)didCloseWithTrailingMetadata:(NSDictionary *)trailingMetadata error:(NSError *)error { |
|
||||||
NSLog(@"Trailer: %@\nError: %@", trailingMetadata, error); |
|
||||||
} |
|
||||||
|
|
||||||
@end |
|
@ -1,118 +0,0 @@ |
|||||||
// Copyright 2015 gRPC authors. |
|
||||||
// |
|
||||||
// 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. |
|
||||||
|
|
||||||
// Message definitions to be used by integration test service definitions. |
|
||||||
|
|
||||||
syntax = "proto3"; |
|
||||||
|
|
||||||
package grpc.testing; |
|
||||||
|
|
||||||
option objc_class_prefix = "RMT"; |
|
||||||
|
|
||||||
// The type of payload that should be returned. |
|
||||||
enum PayloadType { |
|
||||||
// Compressable text format. |
|
||||||
COMPRESSABLE = 0; |
|
||||||
|
|
||||||
// Uncompressable binary format. |
|
||||||
UNCOMPRESSABLE = 1; |
|
||||||
|
|
||||||
// Randomly chosen from all other formats defined in this enum. |
|
||||||
RANDOM = 2; |
|
||||||
} |
|
||||||
|
|
||||||
// A block of data, to simply increase gRPC message size. |
|
||||||
message Payload { |
|
||||||
// The type of data in body. |
|
||||||
PayloadType type = 1; |
|
||||||
// Primary contents of payload. |
|
||||||
bytes body = 2; |
|
||||||
} |
|
||||||
|
|
||||||
// Unary request. |
|
||||||
message SimpleRequest { |
|
||||||
// Desired payload type in the response from the server. |
|
||||||
// If response_type is RANDOM, server randomly chooses one from other formats. |
|
||||||
PayloadType response_type = 1; |
|
||||||
|
|
||||||
// Desired payload size in the response from the server. |
|
||||||
// If response_type is COMPRESSABLE, this denotes the size before compression. |
|
||||||
int32 response_size = 2; |
|
||||||
|
|
||||||
// Optional input payload sent along with the request. |
|
||||||
Payload payload = 3; |
|
||||||
|
|
||||||
// Whether SimpleResponse should include username. |
|
||||||
bool fill_username = 4; |
|
||||||
|
|
||||||
// Whether SimpleResponse should include OAuth scope. |
|
||||||
bool fill_oauth_scope = 5; |
|
||||||
} |
|
||||||
|
|
||||||
// Unary response, as configured by the request. |
|
||||||
message SimpleResponse { |
|
||||||
// Payload to increase message size. |
|
||||||
Payload payload = 1; |
|
||||||
// The user the request came from, for verifying authentication was |
|
||||||
// successful when the client expected it. |
|
||||||
string username = 2; |
|
||||||
// OAuth scope. |
|
||||||
string oauth_scope = 3; |
|
||||||
} |
|
||||||
|
|
||||||
// Client-streaming request. |
|
||||||
message StreamingInputCallRequest { |
|
||||||
// Optional input payload sent along with the request. |
|
||||||
Payload payload = 1; |
|
||||||
|
|
||||||
// Not expecting any payload from the response. |
|
||||||
} |
|
||||||
|
|
||||||
// Client-streaming response. |
|
||||||
message StreamingInputCallResponse { |
|
||||||
// Aggregated size of payloads received from the client. |
|
||||||
int32 aggregated_payload_size = 1; |
|
||||||
} |
|
||||||
|
|
||||||
// Configuration for a particular response. |
|
||||||
message ResponseParameters { |
|
||||||
// Desired payload sizes in responses from the server. |
|
||||||
// If response_type is COMPRESSABLE, this denotes the size before compression. |
|
||||||
int32 size = 1; |
|
||||||
|
|
||||||
// Desired interval between consecutive responses in the response stream in |
|
||||||
// microseconds. |
|
||||||
int32 interval_us = 2; |
|
||||||
} |
|
||||||
|
|
||||||
// Server-streaming request. |
|
||||||
message StreamingOutputCallRequest { |
|
||||||
// Desired payload type in the response from the server. |
|
||||||
// If response_type is RANDOM, the payload from each response in the stream |
|
||||||
// might be of different types. This is to simulate a mixed type of payload |
|
||||||
// stream. |
|
||||||
PayloadType response_type = 1; |
|
||||||
|
|
||||||
// Configuration for each expected response message. |
|
||||||
repeated ResponseParameters response_parameters = 2; |
|
||||||
|
|
||||||
// Optional input payload sent along with the request. |
|
||||||
Payload payload = 3; |
|
||||||
} |
|
||||||
|
|
||||||
// Server-streaming response, as configured by the request and parameters. |
|
||||||
message StreamingOutputCallResponse { |
|
||||||
// Payload to increase response size. |
|
||||||
Payload payload = 1; |
|
||||||
} |
|
@ -1,57 +0,0 @@ |
|||||||
// Copyright 2015 gRPC authors. |
|
||||||
// |
|
||||||
// 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. |
|
||||||
|
|
||||||
// An integration test service that covers all the method signature permutations |
|
||||||
// of unary/streaming requests/responses. |
|
||||||
syntax = "proto3"; |
|
||||||
|
|
||||||
import "google/protobuf/empty.proto"; |
|
||||||
import "src/objective-c/examples/BazelBuildSamples/messages.proto"; |
|
||||||
|
|
||||||
package grpc.testing; |
|
||||||
|
|
||||||
option objc_class_prefix = "RMT"; |
|
||||||
|
|
||||||
// A simple service to test the various types of RPCs and experiment with |
|
||||||
// performance with various types of payload. |
|
||||||
service TestService { |
|
||||||
// One empty request followed by one empty response. |
|
||||||
rpc EmptyCall(google.protobuf.Empty) returns (google.protobuf.Empty); |
|
||||||
|
|
||||||
// One request followed by one response. |
|
||||||
rpc UnaryCall(SimpleRequest) returns (SimpleResponse); |
|
||||||
|
|
||||||
// One request followed by a sequence of responses (streamed download). |
|
||||||
// The server returns the payload with client desired type and sizes. |
|
||||||
rpc StreamingOutputCall(StreamingOutputCallRequest) |
|
||||||
returns (stream StreamingOutputCallResponse); |
|
||||||
|
|
||||||
// A sequence of requests followed by one response (streamed upload). |
|
||||||
// The server returns the aggregated size of client payload as the result. |
|
||||||
rpc StreamingInputCall(stream StreamingInputCallRequest) |
|
||||||
returns (StreamingInputCallResponse); |
|
||||||
|
|
||||||
// A sequence of requests with each request served by the server immediately. |
|
||||||
// As one request could lead to multiple responses, this interface |
|
||||||
// demonstrates the idea of full duplexing. |
|
||||||
rpc FullDuplexCall(stream StreamingOutputCallRequest) |
|
||||||
returns (stream StreamingOutputCallResponse); |
|
||||||
|
|
||||||
// A sequence of requests followed by a sequence of responses. |
|
||||||
// The server buffers all the client requests and then serves them in order. A |
|
||||||
// stream of responses are returned to the client when the server starts with |
|
||||||
// first request. |
|
||||||
rpc HalfDuplexCall(stream StreamingOutputCallRequest) |
|
||||||
returns (stream StreamingOutputCallResponse); |
|
||||||
} |
|
@ -0,0 +1,172 @@ |
|||||||
|
# Copyright 2019 gRPC authors. |
||||||
|
# |
||||||
|
# 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. |
||||||
|
|
||||||
|
# |
||||||
|
# This is for the gRPC build system. This isn't intended to be used outsite of |
||||||
|
# the BUILD file for gRPC. It contains the mapping for the template system we |
||||||
|
# use to generate other platform's build system files. |
||||||
|
# |
||||||
|
# Please consider that there should be a high bar for additions and changes to |
||||||
|
# this file. |
||||||
|
# Each rule listed must be re-written for Google's internal build system, and |
||||||
|
# each change must be ported from one to the other. |
||||||
|
# |
||||||
|
|
||||||
|
load( |
||||||
|
"//bazel:generate_objc.bzl", |
||||||
|
"generate_objc", |
||||||
|
"generate_objc_hdrs", |
||||||
|
"generate_objc_srcs", |
||||||
|
"generate_objc_non_arc_srcs" |
||||||
|
) |
||||||
|
|
||||||
|
def proto_library_objc_wrapper( |
||||||
|
name, |
||||||
|
srcs, |
||||||
|
deps = [], |
||||||
|
use_well_known_protos = False): |
||||||
|
"""proto_library for adding dependencies to google/protobuf protos |
||||||
|
use_well_known_protos - ignored in open source version |
||||||
|
""" |
||||||
|
native.proto_library( |
||||||
|
name = name, |
||||||
|
srcs = srcs, |
||||||
|
deps = deps, |
||||||
|
) |
||||||
|
|
||||||
|
def grpc_objc_examples_library( |
||||||
|
name, |
||||||
|
srcs = [], |
||||||
|
hdrs = [], |
||||||
|
textual_hdrs = [], |
||||||
|
data = [], |
||||||
|
deps = [], |
||||||
|
defines = [], |
||||||
|
sdk_frameworks = [], |
||||||
|
includes = []): |
||||||
|
"""objc_library for testing, only works in //src/objective-c/exmaples |
||||||
|
|
||||||
|
Args: |
||||||
|
name: name of target |
||||||
|
hdrs: public headers |
||||||
|
srcs: all source files (.m) |
||||||
|
textual_hdrs: private headers |
||||||
|
data: any other bundle resources |
||||||
|
defines: preprocessors |
||||||
|
sdk_frameworks: sdks |
||||||
|
includes: added to search path, always [the path to objc directory] |
||||||
|
deps: dependencies |
||||||
|
""" |
||||||
|
native.objc_library( |
||||||
|
name = name, |
||||||
|
srcs = srcs, |
||||||
|
hdrs = hdrs, |
||||||
|
textual_hdrs = textual_hdrs, |
||||||
|
data = data, |
||||||
|
defines = defines, |
||||||
|
includes = includes, |
||||||
|
sdk_frameworks = sdk_frameworks, |
||||||
|
deps = deps + [":RemoteTest"], |
||||||
|
) |
||||||
|
|
||||||
|
def grpc_objc_testing_library( |
||||||
|
name, |
||||||
|
srcs = [], |
||||||
|
hdrs = [], |
||||||
|
textual_hdrs = [], |
||||||
|
data = [], |
||||||
|
deps = [], |
||||||
|
defines = [], |
||||||
|
includes = []): |
||||||
|
"""objc_library for testing, only works in //src/objective-c/tests |
||||||
|
|
||||||
|
Args: |
||||||
|
name: name of target |
||||||
|
hdrs: public headers |
||||||
|
srcs: all source files (.m) |
||||||
|
textual_hdrs: private headers |
||||||
|
data: any other bundle resources |
||||||
|
defines: preprocessors |
||||||
|
includes: added to search path, always [the path to objc directory] |
||||||
|
deps: dependencies |
||||||
|
""" |
||||||
|
|
||||||
|
additional_deps = [ |
||||||
|
":RemoteTest", |
||||||
|
"//src/objective-c:grpc_objc_client_internal_testing", |
||||||
|
] |
||||||
|
|
||||||
|
if not name == "TestConfigs": |
||||||
|
additional_deps += [":TestConfigs"] |
||||||
|
|
||||||
|
native.objc_library( |
||||||
|
name = name, |
||||||
|
hdrs = hdrs, |
||||||
|
srcs = srcs, |
||||||
|
textual_hdrs = textual_hdrs, |
||||||
|
data = data, |
||||||
|
defines = defines, |
||||||
|
includes = includes, |
||||||
|
deps = deps + additional_deps, |
||||||
|
) |
||||||
|
|
||||||
|
def local_objc_grpc_library(name, deps, testing = True, srcs = [], use_well_known_protos = False, **kwargs): |
||||||
|
"""!!For local targets within the gRPC repository only!! Will not work outside of the repo |
||||||
|
""" |
||||||
|
objc_grpc_library_name = "_" + name + "_objc_grpc_library" |
||||||
|
|
||||||
|
generate_objc( |
||||||
|
name = objc_grpc_library_name, |
||||||
|
srcs = srcs, |
||||||
|
deps = deps, |
||||||
|
use_well_known_protos = use_well_known_protos, |
||||||
|
**kwargs |
||||||
|
) |
||||||
|
|
||||||
|
generate_objc_hdrs( |
||||||
|
name = objc_grpc_library_name + "_hdrs", |
||||||
|
src = ":" + objc_grpc_library_name, |
||||||
|
) |
||||||
|
|
||||||
|
generate_objc_non_arc_srcs( |
||||||
|
name = objc_grpc_library_name + "_non_arc_srcs", |
||||||
|
src = ":" + objc_grpc_library_name, |
||||||
|
) |
||||||
|
|
||||||
|
arc_srcs = None |
||||||
|
if len(srcs) > 0: |
||||||
|
generate_objc_srcs( |
||||||
|
name = objc_grpc_library_name + "_srcs", |
||||||
|
src = ":" + objc_grpc_library_name, |
||||||
|
) |
||||||
|
arc_srcs = [":" + objc_grpc_library_name + "_srcs"] |
||||||
|
|
||||||
|
library_deps = ["@com_google_protobuf//:protobuf_objc"] |
||||||
|
if testing: |
||||||
|
library_deps += ["//src/objective-c:grpc_objc_client_internal_testing"] |
||||||
|
else: |
||||||
|
library_deps += ["//src/objective-c:proto_objc_rpc"] |
||||||
|
|
||||||
|
native.objc_library( |
||||||
|
name = name, |
||||||
|
hdrs = [":" + objc_grpc_library_name + "_hdrs"], |
||||||
|
non_arc_srcs = [":" + objc_grpc_library_name + "_non_arc_srcs"], |
||||||
|
srcs = arc_srcs, |
||||||
|
defines = [ |
||||||
|
"GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=0", |
||||||
|
"GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO=0", |
||||||
|
], |
||||||
|
includes = ["_generated_protos"], |
||||||
|
deps = library_deps, |
||||||
|
) |
@ -0,0 +1,238 @@ |
|||||||
|
# gRPC Bazel BUILD file. |
||||||
|
# |
||||||
|
# Copyright 2019 gRPC authors. |
||||||
|
# |
||||||
|
# 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. |
||||||
|
|
||||||
|
licenses(["notice"]) # Apache v2 |
||||||
|
|
||||||
|
package(default_visibility = ["//visibility:public"]) |
||||||
|
|
||||||
|
load( |
||||||
|
"//src/objective-c:grpc_objc_internal_library.bzl", |
||||||
|
"grpc_objc_testing_library", |
||||||
|
"local_objc_grpc_library", |
||||||
|
"proto_library_objc_wrapper", |
||||||
|
) |
||||||
|
load("@build_bazel_rules_apple//apple:resources.bzl", "apple_resource_bundle") |
||||||
|
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application", "ios_unit_test") |
||||||
|
load("@build_bazel_rules_apple//apple:macos.bzl", "macos_unit_test") |
||||||
|
load("@build_bazel_rules_apple//apple:tvos.bzl", "tvos_application", "tvos_unit_test") |
||||||
|
|
||||||
|
exports_files(["LICENSE"]) |
||||||
|
|
||||||
|
proto_library_objc_wrapper( |
||||||
|
name = "messages_proto", |
||||||
|
srcs = ["RemoteTestClient/messages.proto"], |
||||||
|
) |
||||||
|
|
||||||
|
proto_library_objc_wrapper( |
||||||
|
name = "test_proto", |
||||||
|
srcs = ["RemoteTestClient/test.proto"], |
||||||
|
deps = [":messages_proto"], |
||||||
|
use_well_known_protos = True, |
||||||
|
) |
||||||
|
|
||||||
|
local_objc_grpc_library( |
||||||
|
name = "RemoteTest", |
||||||
|
srcs = ["RemoteTestClient/test.proto"], |
||||||
|
use_well_known_protos = True, |
||||||
|
testing = True, |
||||||
|
deps = [":test_proto"], |
||||||
|
) |
||||||
|
|
||||||
|
apple_resource_bundle( |
||||||
|
name = "TestCertificates", |
||||||
|
resources = ["TestCertificates.bundle/test-certificates.pem"], |
||||||
|
) |
||||||
|
|
||||||
|
# TestConfigs is added to each grpc_objc_testing_library's deps |
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "TestConfigs", |
||||||
|
hdrs = ["version.h"], |
||||||
|
data = [":TestCertificates"], |
||||||
|
defines = [ |
||||||
|
"DEBUG=1", |
||||||
|
"PB_FIELD_32BIT=1", |
||||||
|
"PB_NO_PACKED_STRUCTS=1", |
||||||
|
"PB_ENABLE_MALLOC=1", |
||||||
|
"HOST_PORT_LOCALSSL=localhost:5051", |
||||||
|
"HOST_PORT_LOCAL=localhost:5050", |
||||||
|
"HOST_PORT_REMOTE=grpc-test.sandbox.googleapis.com", |
||||||
|
], |
||||||
|
) |
||||||
|
|
||||||
|
objc_library( |
||||||
|
name = "host-lib", |
||||||
|
srcs = glob(["Hosts/ios-host/*.m"]), |
||||||
|
hdrs = glob(["Hosts/ios-host/*.h"]), |
||||||
|
) |
||||||
|
|
||||||
|
ios_application( |
||||||
|
name = "ios-host", |
||||||
|
bundle_id = "grpc.objc.tests.ios-host", |
||||||
|
infoplists = ["Hosts/ios-host/Info.plist"], |
||||||
|
minimum_os_version = "9.0", |
||||||
|
families = [ |
||||||
|
"iphone", |
||||||
|
"ipad", |
||||||
|
], |
||||||
|
deps = ["host-lib"], |
||||||
|
) |
||||||
|
|
||||||
|
tvos_application( |
||||||
|
name = "tvos-host", |
||||||
|
bundle_id = "grpc.objc.tests.tvos-host", |
||||||
|
infoplists = ["Hosts/ios-host/Info.plist"], |
||||||
|
minimum_os_version = "10.0", |
||||||
|
deps = ["host-lib"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "CronetConfig", |
||||||
|
srcs = ["ConfigureCronet.m"], |
||||||
|
hdrs = ["ConfigureCronet.h"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "InteropTests-lib", |
||||||
|
hdrs = ["InteropTests/InteropTests.h"], |
||||||
|
srcs = ["InteropTests/InteropTests.m"], |
||||||
|
deps = [ |
||||||
|
":InteropTestsBlockCallbacks-lib", |
||||||
|
":CronetConfig", |
||||||
|
], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "InteropTestsRemote-lib", |
||||||
|
srcs = ["InteropTests/InteropTestsRemote.m"], |
||||||
|
deps = [":InteropTests-lib"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "InteropTestsBlockCallbacks-lib", |
||||||
|
hdrs = ["InteropTests/InteropTestsBlockCallbacks.h"], |
||||||
|
srcs = ["InteropTests/InteropTestsBlockCallbacks.m"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "InteropTestsLocalSSL-lib", |
||||||
|
srcs = ["InteropTests/InteropTestsLocalSSL.m"], |
||||||
|
deps = [":InteropTests-lib"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "InteropTestsLocalCleartext-lib", |
||||||
|
srcs = ["InteropTests/InteropTestsLocalCleartext.m"], |
||||||
|
deps = [":InteropTests-lib"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "InteropTestsMultipleChannels-lib", |
||||||
|
srcs = ["InteropTests/InteropTestsMultipleChannels.m"], |
||||||
|
deps = [":InteropTests-lib"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "RxLibraryUnitTests-lib", |
||||||
|
srcs = ["UnitTests/RxLibraryUnitTests.m"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "GRPCClientTests-lib", |
||||||
|
srcs = ["UnitTests/GRPCClientTests.m"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "APIv2Tests-lib", |
||||||
|
srcs = ["UnitTests/APIv2Tests.m"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "ChannelPoolTest-lib", |
||||||
|
srcs = ["UnitTests/ChannelPoolTest.m"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "ChannelTests-lib", |
||||||
|
srcs = ["UnitTests/ChannelTests.m"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "NSErrorUnitTests-lib", |
||||||
|
srcs = ["UnitTests/NSErrorUnitTests.m"], |
||||||
|
) |
||||||
|
|
||||||
|
grpc_objc_testing_library( |
||||||
|
name = "MacStressTests-lib", |
||||||
|
srcs = glob([ |
||||||
|
"MacTests/*.m", |
||||||
|
]), |
||||||
|
hdrs = ["MacTests/StressTests.h"], |
||||||
|
) |
||||||
|
|
||||||
|
ios_unit_test( |
||||||
|
name = "UnitTests", |
||||||
|
minimum_os_version = "8.0", |
||||||
|
deps = [ |
||||||
|
":RxLibraryUnitTests-lib", |
||||||
|
":GRPCClientTests-lib", |
||||||
|
":APIv2Tests-lib", |
||||||
|
":ChannelPoolTest-lib", |
||||||
|
":ChannelTests-lib", |
||||||
|
":NSErrorUnitTests-lib", |
||||||
|
], |
||||||
|
test_host = ":ios-host", |
||||||
|
) |
||||||
|
|
||||||
|
ios_unit_test( |
||||||
|
name = "InteropTests", |
||||||
|
minimum_os_version = "8.0", |
||||||
|
deps = [ |
||||||
|
":InteropTestsRemote-lib", |
||||||
|
":InteropTestsLocalSSL-lib", |
||||||
|
":InteropTestsLocalCleartext-lib", |
||||||
|
# ":InteropTestsMulitpleChannels-lib", # needs Cronet |
||||||
|
], |
||||||
|
test_host = ":ios-host", |
||||||
|
) |
||||||
|
|
||||||
|
macos_unit_test( |
||||||
|
name = "MacTests", |
||||||
|
minimum_os_version = "10.9", |
||||||
|
deps = [ |
||||||
|
":APIv2Tests-lib", |
||||||
|
":RxLibraryUnitTests-lib", |
||||||
|
":NSErrorUnitTests-lib", |
||||||
|
":InteropTestsRemote-lib", |
||||||
|
":InteropTestsLocalSSL-lib", |
||||||
|
":InteropTestsLocalCleartext-lib", |
||||||
|
":MacStressTests-lib", |
||||||
|
] |
||||||
|
) |
||||||
|
|
||||||
|
# bazel run tvos_unit_test is not yet supported by xctestrunner |
||||||
|
tvos_unit_test( |
||||||
|
name = "TvTests", |
||||||
|
minimum_os_version = "10.0", |
||||||
|
deps = [ |
||||||
|
":APIv2Tests-lib", |
||||||
|
":RxLibraryUnitTests-lib", |
||||||
|
":NSErrorUnitTests-lib", |
||||||
|
":InteropTestsRemote-lib", |
||||||
|
":InteropTestsLocalSSL-lib", |
||||||
|
":InteropTestsLocalCleartext-lib", |
||||||
|
], |
||||||
|
test_host = ":tvos-host", |
||||||
|
) |
@ -0,0 +1,51 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2019 gRPC authors. |
||||||
|
# |
||||||
|
# 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. |
||||||
|
|
||||||
|
# Don't run this script standalone. Instead, run from the repository root: |
||||||
|
# ./tools/run_tests/run_tests.py -l objc |
||||||
|
|
||||||
|
# TODO(tonyzhehaolu): |
||||||
|
# For future use when Xcode is upgraded and tvos_unit_test is fully functional |
||||||
|
|
||||||
|
set -ev |
||||||
|
|
||||||
|
cd $(dirname $0) |
||||||
|
|
||||||
|
BAZEL=../../../tools/bazel |
||||||
|
|
||||||
|
INTEROP=../../../bazel-out/darwin-fastbuild/bin/test/cpp/interop/interop_server |
||||||
|
|
||||||
|
[ -d Tests.xcworkspace ] || { |
||||||
|
./build_tests.sh |
||||||
|
} |
||||||
|
|
||||||
|
[ -f $INTEROP ] || { |
||||||
|
BAZEL build //test/cpp/interop:interop_server |
||||||
|
} |
||||||
|
|
||||||
|
[ -z "$(ps aux |egrep 'port_server\.py.*-p\s32766')" ] && { |
||||||
|
echo >&2 "Can't find the port server. Start port server with tools/run_tests/start_port_server.py." |
||||||
|
exit 1 |
||||||
|
} |
||||||
|
|
||||||
|
PLAIN_PORT=$(curl localhost:32766/get) |
||||||
|
TLS_PORT=$(curl localhost:32766/get) |
||||||
|
|
||||||
|
$INTEROP --port=$PLAIN_PORT --max_send_message_size=8388608 & |
||||||
|
$INTEROP --port=$TLS_PORT --max_send_message_size=8388608 --use_tls & |
||||||
|
|
||||||
|
trap 'kill -9 `jobs -p` ; echo "EXIT TIME: $(date)"' EXIT |
||||||
|
|
||||||
|
../../../tools/bazel run $SCHEME |
@ -1,97 +0,0 @@ |
|||||||
#!/bin/bash |
|
||||||
# Copyright 2015 gRPC authors. |
|
||||||
# |
|
||||||
# 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. |
|
||||||
|
|
||||||
# Don't run this script standalone. Instead, run from the repository root: |
|
||||||
# ./tools/run_tests/run_tests.py -l objc |
|
||||||
|
|
||||||
set -ev |
|
||||||
|
|
||||||
cd $(dirname $0) |
|
||||||
|
|
||||||
# Run the tests server. |
|
||||||
|
|
||||||
BINDIR=../../../bins/$CONFIG |
|
||||||
|
|
||||||
[ -f $BINDIR/interop_server ] || { |
|
||||||
echo >&2 "Can't find the test server. Make sure run_tests.py is making" \ |
|
||||||
"interop_server before calling this script." |
|
||||||
exit 1 |
|
||||||
} |
|
||||||
$BINDIR/interop_server --port=5050 --max_send_message_size=8388608 & |
|
||||||
$BINDIR/interop_server --port=5051 --max_send_message_size=8388608 --use_tls & |
|
||||||
# Kill them when this script exits. |
|
||||||
trap 'kill -9 `jobs -p` ; echo "EXIT TIME: $(date)"' EXIT |
|
||||||
|
|
||||||
set -o pipefail |
|
||||||
|
|
||||||
# xcodebuild is very verbose. We filter its output and tell Bash to fail if any |
|
||||||
# element of the pipe fails. |
|
||||||
# TODO(jcanizales): Use xctool instead? Issue #2540. |
|
||||||
XCODEBUILD_FILTER='(^CompileC |^Ld |^ *[^ ]*clang |^ *cd |^ *export |^Libtool |^ *[^ ]*libtool |^CpHeader |^ *builtin-copy )' |
|
||||||
|
|
||||||
echo "TIME: $(date)" |
|
||||||
|
|
||||||
xcodebuild \ |
|
||||||
-workspace Tests.xcworkspace \ |
|
||||||
-scheme InteropTests \ |
|
||||||
-destination name="iPhone 8" \ |
|
||||||
HOST_PORT_LOCALSSL=localhost:5051 \ |
|
||||||
HOST_PORT_LOCAL=localhost:5050 \ |
|
||||||
HOST_PORT_REMOTE=grpc-test.sandbox.googleapis.com \ |
|
||||||
test \ |
|
||||||
| egrep -v "$XCODEBUILD_FILTER" \ |
|
||||||
| egrep -v '^$' \ |
|
||||||
| egrep -v "(GPBDictionary|GPBArray)" - |
|
||||||
|
|
||||||
echo "TIME: $(date)" |
|
||||||
xcodebuild \ |
|
||||||
-workspace Tests.xcworkspace \ |
|
||||||
-scheme UnitTests \ |
|
||||||
-destination name="iPhone 8" \ |
|
||||||
HOST_PORT_LOCALSSL=localhost:5051 \ |
|
||||||
HOST_PORT_LOCAL=localhost:5050 \ |
|
||||||
HOST_PORT_REMOTE=grpc-test.sandbox.googleapis.com \ |
|
||||||
test \ |
|
||||||
| egrep -v "$XCODEBUILD_FILTER" \ |
|
||||||
| egrep -v '^$' \ |
|
||||||
| egrep -v "(GPBDictionary|GPBArray)" - |
|
||||||
|
|
||||||
echo "TIME: $(date)" |
|
||||||
xcodebuild \ |
|
||||||
-workspace Tests.xcworkspace \ |
|
||||||
-scheme CronetTests \ |
|
||||||
-destination name="iPhone 8" \ |
|
||||||
HOST_PORT_LOCALSSL=localhost:5051 \ |
|
||||||
HOST_PORT_LOCAL=localhost:5050 \ |
|
||||||
HOST_PORT_REMOTE=grpc-test.sandbox.googleapis.com \ |
|
||||||
test \ |
|
||||||
| egrep -v "$XCODEBUILD_FILTER" \ |
|
||||||
| egrep -v '^$' \ |
|
||||||
| egrep -v "(GPBDictionary|GPBArray)" - |
|
||||||
|
|
||||||
echo "TIME: $(date)" |
|
||||||
xcodebuild \ |
|
||||||
-workspace Tests.xcworkspace \ |
|
||||||
-scheme MacTests \ |
|
||||||
-destination platform=macOS \ |
|
||||||
HOST_PORT_LOCALSSL=localhost:5051 \ |
|
||||||
HOST_PORT_LOCAL=localhost:5050 \ |
|
||||||
HOST_PORT_REMOTE=grpc-test.sandbox.googleapis.com \ |
|
||||||
test \ |
|
||||||
| egrep -v "$XCODEBUILD_FILTER" \ |
|
||||||
| egrep -v '^$' \ |
|
||||||
| egrep -v "(GPBDictionary|GPBArray)" - |
|
||||||
|
|
||||||
exit 0 |
|
Loading…
Reference in new issue