Adds plumbing for xcuitests with a placeholder test.

Also adds basic integration for EDO.

Change-Id: If3d193a4967a566b55d6d446585e2988dacad6e6
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2028183
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Justin Cohen 2020-01-30 22:11:26 -05:00 committed by Commit Bot
parent 915862984c
commit 75ea787a80
16 changed files with 697 additions and 29 deletions

1
.gitignore vendored
View File

@ -24,6 +24,7 @@
.gdbinit .gdbinit
/Makefile /Makefile
/out /out
/third_party/edo/edo
/third_party/fuchsia/.cipd /third_party/fuchsia/.cipd
/third_party/fuchsia/clang /third_party/fuchsia/clang
/third_party/fuchsia/qemu /third_party/fuchsia/qemu

View File

@ -121,7 +121,9 @@ if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) {
} }
package("crashpad_database_util") { package("crashpad_database_util") {
deps = [ "tools:crashpad_database_util" ] deps = [
"tools:crashpad_database_util",
]
binaries = [ binaries = [
{ {
@ -189,3 +191,12 @@ if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) {
} }
} }
} }
if (crashpad_is_ios) {
group("ios_xcuitests") {
testonly = true
deps = [
"test/ios:all_tests",
]
}
}

5
DEPS
View File

@ -26,6 +26,11 @@ deps = {
'buildtools': 'buildtools':
Var('chromium_git') + '/chromium/src/buildtools.git@' + Var('chromium_git') + '/chromium/src/buildtools.git@' +
'3e50219fc4503f461b2176a9976891b28d80f9ab', '3e50219fc4503f461b2176a9976891b28d80f9ab',
'crashpad/third_party/edo/edo': {
'url': Var('chromium_git') + '/external/github.com/google/eDistantObject.git@' +
'243fc89ae95b24717d41f3786f6a9abeeef87c92',
'condition': 'checkout_ios',
},
'crashpad/third_party/gtest/gtest': 'crashpad/third_party/gtest/gtest':
Var('chromium_git') + '/external/github.com/google/googletest@' + Var('chromium_git') + '/external/github.com/google/googletest@' +
'eb78ee170ac9eb21487f4d127720c060351fa8a2', 'eb78ee170ac9eb21487f4d127720c060351fa8a2',

50
test/ios/BUILD.gn Normal file
View File

@ -0,0 +1,50 @@
# Copyright 2020 The Crashpad 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.
import("../../build/crashpad_buildconfig.gni")
if (crashpad_is_in_chromium) {
import("//build/config/ios/rules.gni")
} else if (crashpad_is_standalone) {
import("//third_party/mini_chromium/mini_chromium/build/ios/rules.gni")
}
group("all_tests") {
testonly = true
deps = [
":ios_crash_xcuitests_module",
"host:ios_crash_xcuitests",
]
}
source_set("xcuitests") {
testonly = true
sources = [
"crash_type_xctest.mm",
]
configs += [ "../..:crashpad_config" ]
deps = [
"../../build:ios_enable_arc",
"../../build:ios_xctest",
"../../test/ios/host:app_shared_sources",
"../../third_party/edo",
]
}
ios_xcuitest_test("ios_crash_xcuitests_module") {
xcode_test_application_name = "ios_crash_xcuitests"
deps = [
":xcuitests",
]
}

View File

@ -0,0 +1,39 @@
// Copyright 2020 The Crashpad 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.
#import <XCTest/XCTest.h>
#import "Service/Sources/EDOClientService.h"
#import "test/ios/host/edo_placeholder.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@interface CPTestTestCase : XCTestCase
@end
@implementation CPTestTestCase
- (void)setUp {
[[[XCUIApplication alloc] init] launch];
}
- (void)testEDO {
EDOPlaceholder* rootObject = [EDOClientService rootObjectWithPort:12345];
NSString* result = [rootObject testEDO];
XCTAssertEqualObjects(result, @"crashpad");
}
@end

62
test/ios/host/BUILD.gn Normal file
View File

@ -0,0 +1,62 @@
# Copyright 2020 The Crashpad 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.
import("../../../build/crashpad_buildconfig.gni")
if (crashpad_is_in_chromium) {
import("//build/config/ios/rules.gni")
} else if (crashpad_is_standalone) {
import("//third_party/mini_chromium/mini_chromium/build/ios/rules.gni")
}
source_set("app_shared_sources") {
testonly = true
sources = [
"edo_placeholder.h",
]
configs += [ "../../..:crashpad_config" ]
deps = [
"../../../build:ios_enable_arc",
]
libs = [ "UIKit.framework" ]
}
static_library("app_host_sources") {
testonly = true
sources = [
"application_delegate.h",
"application_delegate.mm",
"crash_view_controller.h",
"crash_view_controller.mm",
"main.mm",
]
configs += [ "../../..:crashpad_config" ]
deps = [
":app_shared_sources",
"../../../build:ios_enable_arc",
"../../../third_party/edo",
]
libs = [
"Foundation.framework",
"UIKit.framework",
]
}
ios_app_bundle("ios_crash_xcuitests") {
info_plist = "Info.plist"
testonly = true
deps = [
":app_host_sources",
]
}

112
test/ios/host/Info.plist Normal file
View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${IOS_BUNDLE_ID_PREFIX}.gtest.${EXECUTABLE_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{320, 480}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{320, 568}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{375, 667}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{414, 736}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{375, 812}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{414, 896}</string>
</dict>
</array>
<key>UILaunchImages~ipad</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{768, 1024}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{1024, 1366}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageSize</key>
<string>{832, 1114}</string>
</dict>
</array>
<key>UISupportedInterfaceOrientation</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

View File

@ -0,0 +1,23 @@
// Copyright 2020 The Crashpad 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.
#ifndef CRASHPAD_TEST_IOS_HOST_APPLICATION_DELEGATE_H_
#define CRASHPAD_TEST_IOS_HOST_APPLICATION_DELEGATE_H_
#import <UIKit/UIKit.h>
@interface ApplicationDelegate : UIResponder <UIApplicationDelegate>
@end
#endif // CRASHPAD_TEST_IOS_HOST_APPLICATION_DELEGATE_H_

View File

@ -0,0 +1,53 @@
// Copyright 2020 The Crashpad 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.
#import "test/ios/host/application_delegate.h"
#import "Service/Sources/EDOHostNamingService.h"
#import "Service/Sources/EDOHostService.h"
#import "test/ios/host/crash_view_controller.h"
#import "test/ios/host/edo_placeholder.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@implementation ApplicationDelegate
@synthesize window = _window;
- (BOOL)application:(UIApplication*)application
didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window makeKeyAndVisible];
self.window.backgroundColor = UIColor.greenColor;
CrashViewController* controller = [[CrashViewController alloc] init];
self.window.rootViewController = controller;
// Start up EDO.
[EDOHostService serviceWithPort:12345
rootObject:[[EDOPlaceholder alloc] init]
queue:dispatch_get_main_queue()];
[EDOHostNamingService.sharedService start];
return YES;
}
@end
@implementation EDOPlaceholder
- (NSString*)testEDO {
return @"crashpad";
}
@end

View File

@ -0,0 +1,23 @@
// Copyright 2020 The Crashpad 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.
#ifndef CRASHPAD_TEST_IOS_HOST_CRASH_VIEW_CONTROLLER_H_
#define CRASHPAD_TEST_IOS_HOST_CRASH_VIEW_CONTROLLER_H_
#import <UIKit/UIKit.h>
@interface CrashViewController : UIViewController
@end
#endif // CRASHPAD_TEST_IOS_HOST_CRASH_VIEW_CONTROLLER_H_

View File

@ -0,0 +1,33 @@
// Copyright 2020 The Crashpad 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.
#import "test/ios/host/crash_view_controller.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@implementation CrashViewController
- (void)loadView {
self.view = [[UIView alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = UIColor.redColor;
}
@end

View File

@ -0,0 +1,24 @@
// Copyright 2020 The Crashpad 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.
#ifndef CRASHPAD_TEST_IOS_HOST_EDO_PLACEHOLDER_H_
#define CRASHPAD_TEST_IOS_HOST_EDO_PLACEHOLDER_H_
#import <UIKit/UIKit.h>
@interface EDOPlaceholder : NSObject
- (NSString*)testEDO;
@end
#endif // CRASHPAD_TEST_IOS_HOST_EDO_PLACEHOLDER_H_

30
test/ios/host/main.mm Normal file
View File

@ -0,0 +1,30 @@
// Copyright 2020 The Crashpad 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.
#import <UIKit/UIKit.h>
#import "test/ios/host/application_delegate.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
int main(int argc, char* argv[]) {
NSString* appDelegateClassName;
@autoreleasepool {
// Setup code that might create autoreleased objects goes here.
appDelegateClassName = NSStringFromClass([ApplicationDelegate class]);
}
return UIApplicationMain(argc, argv, nil, appDelegateClassName);
}

142
third_party/edo/BUILD.gn vendored Normal file
View File

@ -0,0 +1,142 @@
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("../../build/crashpad_buildconfig.gni")
if (crashpad_is_in_chromium) {
group("edo") {
testonly = true
public_deps = [
"//ios/third_party/edo",
]
}
} else {
config("config") {
include_dirs = [ "../../third_party/edo/edo" ]
}
source_set("edo") {
testonly = true
sources = [
"edo/Channel/Sources/EDOBlockingQueue.h",
"edo/Channel/Sources/EDOBlockingQueue.m",
"edo/Channel/Sources/EDOChannel.h",
"edo/Channel/Sources/EDOChannelErrors.h",
"edo/Channel/Sources/EDOChannelErrors.m",
"edo/Channel/Sources/EDOChannelForwarder.h",
"edo/Channel/Sources/EDOChannelForwarder.m",
"edo/Channel/Sources/EDOChannelMultiplexer.h",
"edo/Channel/Sources/EDOChannelMultiplexer.m",
"edo/Channel/Sources/EDOChannelPool.h",
"edo/Channel/Sources/EDOChannelPool.m",
"edo/Channel/Sources/EDOChannelUtil.h",
"edo/Channel/Sources/EDOChannelUtil.m",
"edo/Channel/Sources/EDOHostPort.h",
"edo/Channel/Sources/EDOHostPort.m",
"edo/Channel/Sources/EDOListenSocket.h",
"edo/Channel/Sources/EDOListenSocket.m",
"edo/Channel/Sources/EDOSocket.h",
"edo/Channel/Sources/EDOSocket.m",
"edo/Channel/Sources/EDOSocketChannel.h",
"edo/Channel/Sources/EDOSocketChannel.m",
"edo/Channel/Sources/EDOSocketPort.h",
"edo/Channel/Sources/EDOSocketPort.m",
"edo/Device/Sources/EDODeviceChannel.h",
"edo/Device/Sources/EDODeviceChannel.m",
"edo/Device/Sources/EDODeviceConnector.h",
"edo/Device/Sources/EDODeviceConnector.m",
"edo/Device/Sources/EDODeviceDetector.h",
"edo/Device/Sources/EDODeviceDetector.m",
"edo/Device/Sources/EDOUSBMuxUtil.h",
"edo/Device/Sources/EDOUSBMuxUtil.m",
"edo/DeviceForwarder/Sources/EDODeviceForwardersManager.h",
"edo/DeviceForwarder/Sources/EDODeviceForwardersManager.m",
"edo/Measure/Sources/EDONumericMeasure.h",
"edo/Measure/Sources/EDONumericMeasure.m",
"edo/Service/Sources/EDOBlockObject.h",
"edo/Service/Sources/EDOBlockObject.m",
"edo/Service/Sources/EDOClassMessage.h",
"edo/Service/Sources/EDOClassMessage.m",
"edo/Service/Sources/EDOClientService+Private.h",
"edo/Service/Sources/EDOClientService.h",
"edo/Service/Sources/EDOClientService.m",
"edo/Service/Sources/EDOClientServiceStatsCollector.h",
"edo/Service/Sources/EDOClientServiceStatsCollector.m",
"edo/Service/Sources/EDODeallocationTracker.h",
"edo/Service/Sources/EDODeallocationTracker.m",
"edo/Service/Sources/EDOExecutor.h",
"edo/Service/Sources/EDOExecutor.m",
"edo/Service/Sources/EDOExecutorMessage.h",
"edo/Service/Sources/EDOExecutorMessage.m",
"edo/Service/Sources/EDOHostNamingService+Private.h",
"edo/Service/Sources/EDOHostNamingService.h",
"edo/Service/Sources/EDOHostNamingService.m",
"edo/Service/Sources/EDOHostService+Handlers.h",
"edo/Service/Sources/EDOHostService+Handlers.m",
"edo/Service/Sources/EDOHostService+Private.h",
"edo/Service/Sources/EDOHostService.h",
"edo/Service/Sources/EDOHostService.m",
"edo/Service/Sources/EDOInvocationMessage.h",
"edo/Service/Sources/EDOInvocationMessage.m",
"edo/Service/Sources/EDOMessage.h",
"edo/Service/Sources/EDOMessage.m",
"edo/Service/Sources/EDOMethodSignatureMessage.h",
"edo/Service/Sources/EDOMethodSignatureMessage.m",
"edo/Service/Sources/EDOObject+EDOParameter.m",
"edo/Service/Sources/EDOObject+Invocation.m",
"edo/Service/Sources/EDOObject+Private.h",
"edo/Service/Sources/EDOObject.h",
"edo/Service/Sources/EDOObject.m",
"edo/Service/Sources/EDOObjectAliveMessage.h",
"edo/Service/Sources/EDOObjectAliveMessage.m",
"edo/Service/Sources/EDOObjectMessage.h",
"edo/Service/Sources/EDOObjectMessage.m",
"edo/Service/Sources/EDOObjectReleaseMessage.h",
"edo/Service/Sources/EDOObjectReleaseMessage.m",
"edo/Service/Sources/EDOParameter.h",
"edo/Service/Sources/EDOParameter.m",
"edo/Service/Sources/EDOProtocolObject.h",
"edo/Service/Sources/EDOProtocolObject.m",
"edo/Service/Sources/EDORemoteVariable.h",
"edo/Service/Sources/EDORemoteVariable.m",
"edo/Service/Sources/EDOServiceError.h",
"edo/Service/Sources/EDOServiceError.m",
"edo/Service/Sources/EDOServiceException.h",
"edo/Service/Sources/EDOServiceException.m",
"edo/Service/Sources/EDOServicePort.h",
"edo/Service/Sources/EDOServicePort.m",
"edo/Service/Sources/EDOServiceRequest.h",
"edo/Service/Sources/EDOServiceRequest.m",
"edo/Service/Sources/EDOTimingFunctions.h",
"edo/Service/Sources/EDOTimingFunctions.m",
"edo/Service/Sources/EDOValueObject+EDOParameter.m",
"edo/Service/Sources/EDOValueObject.h",
"edo/Service/Sources/EDOValueObject.m",
"edo/Service/Sources/EDOValueType.m",
"edo/Service/Sources/EDOWeakObject.h",
"edo/Service/Sources/EDOWeakObject.m",
"edo/Service/Sources/NSBlock+EDOInvocation.m",
"edo/Service/Sources/NSKeyedArchiver+EDOAdditions.h",
"edo/Service/Sources/NSKeyedArchiver+EDOAdditions.m",
"edo/Service/Sources/NSKeyedUnarchiver+EDOAdditions.h",
"edo/Service/Sources/NSKeyedUnarchiver+EDOAdditions.m",
"edo/Service/Sources/NSObject+EDOParameter.h",
"edo/Service/Sources/NSObject+EDOParameter.m",
"edo/Service/Sources/NSObject+EDOValue.h",
"edo/Service/Sources/NSObject+EDOValue.m",
"edo/Service/Sources/NSObject+EDOValueObject.h",
"edo/Service/Sources/NSObject+EDOValueObject.m",
"edo/Service/Sources/NSObject+EDOWeakObject.h",
"edo/Service/Sources/NSObject+EDOWeakObject.m",
"edo/Service/Sources/NSProxy+EDOParameter.h",
"edo/Service/Sources/NSProxy+EDOParameter.m",
]
public_configs = [ ":config" ]
deps = [
"../../build:ios_enable_arc",
]
}
}

10
third_party/edo/README.crashpad vendored Normal file
View File

@ -0,0 +1,10 @@
Name: eDistantObject
Short Name: EDO
URL: https://github.com/google/eDistantObject
Revision: See DEPS
License: Apache 2.0
License File: edo/LICENSE
Security Critical: no
Description:
iOS remote method invocations (distant object) over Inter-process communication layer.

View File

@ -18,20 +18,28 @@ import("../../build/test.gni")
if (crashpad_is_in_chromium) { if (crashpad_is_in_chromium) {
group("gtest") { group("gtest") {
testonly = true testonly = true
public_deps = [ "//testing/gtest" ] public_deps = [
"//testing/gtest",
]
} }
group("gmock") { group("gmock") {
testonly = true testonly = true
public_deps = [ "//testing/gmock" ] public_deps = [
"//testing/gmock",
]
} }
} else if (crashpad_is_in_dart || crashpad_is_in_fuchsia) { } else if (crashpad_is_in_dart || crashpad_is_in_fuchsia) {
group("gtest") { group("gtest") {
testonly = true testonly = true
public_deps = [ "//third_party/googletest:gtest" ] public_deps = [
"//third_party/googletest:gtest",
]
} }
group("gmock") { group("gmock") {
testonly = true testonly = true
public_deps = [ "//third_party/googletest:gmock" ] public_deps = [
"//third_party/googletest:gmock",
]
} }
} else if (crashpad_is_standalone) { } else if (crashpad_is_standalone) {
config("gtest_private_config") { config("gtest_private_config") {
@ -64,7 +72,6 @@ if (crashpad_is_in_chromium) {
"gtest/googletest/include/gtest/internal/gtest-death-test-internal.h", "gtest/googletest/include/gtest/internal/gtest-death-test-internal.h",
"gtest/googletest/include/gtest/internal/gtest-filepath.h", "gtest/googletest/include/gtest/internal/gtest-filepath.h",
"gtest/googletest/include/gtest/internal/gtest-internal.h", "gtest/googletest/include/gtest/internal/gtest-internal.h",
"gtest/googletest/include/gtest/internal/gtest-param-util-generated.h",
"gtest/googletest/include/gtest/internal/gtest-param-util.h", "gtest/googletest/include/gtest/internal/gtest-param-util.h",
"gtest/googletest/include/gtest/internal/gtest-port-arch.h", "gtest/googletest/include/gtest/internal/gtest-port-arch.h",
"gtest/googletest/include/gtest/internal/gtest-port.h", "gtest/googletest/include/gtest/internal/gtest-port.h",
@ -88,7 +95,9 @@ if (crashpad_is_in_chromium) {
] ]
configs += [ ":gtest_private_config" ] configs += [ ":gtest_private_config" ]
if (crashpad_is_fuchsia) { if (crashpad_is_fuchsia) {
deps = [ "../fuchsia" ] deps = [
"../fuchsia",
]
} }
} }
@ -97,8 +106,12 @@ if (crashpad_is_in_chromium) {
visibility = [ ":*" ] visibility = [ ":*" ]
testonly = true testonly = true
sources = [ "gtest/googletest/src/gtest_main.cc" ] sources = [
deps = [ ":gtest" ] "gtest/googletest/src/gtest_main.cc",
]
deps = [
":gtest",
]
} }
test("gtest_all_test") { test("gtest_all_test") {
@ -136,19 +149,31 @@ if (crashpad_is_in_chromium) {
} }
test("gtest_environment_test") { test("gtest_environment_test") {
sources = [ "gtest/googletest/test/gtest_environment_test.cc" ] sources = [
"gtest/googletest/test/gtest_environment_test.cc",
]
configs += [ ":gtest_private_config" ] configs += [ ":gtest_private_config" ]
deps = [ ":gtest" ] deps = [
":gtest",
]
} }
test("gtest_listener_test") { test("gtest_listener_test") {
sources = [ "gtest/googletest/test/googletest-listener-test.cc" ] sources = [
deps = [ ":gtest" ] "gtest/googletest/test/googletest-listener-test.cc",
]
deps = [
":gtest",
]
} }
test("gtest_no_test") { test("gtest_no_test") {
sources = [ "gtest/googletest/test/gtest_no_test_unittest.cc" ] sources = [
deps = [ ":gtest" ] "gtest/googletest/test/gtest_no_test_unittest.cc",
]
deps = [
":gtest",
]
} }
test("gtest_param_test") { test("gtest_param_test") {
@ -161,7 +186,9 @@ if (crashpad_is_in_chromium) {
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors", "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
] ]
configs += [ ":gtest_private_config" ] configs += [ ":gtest_private_config" ]
deps = [ ":gtest" ] deps = [
":gtest",
]
if (crashpad_is_clang) { if (crashpad_is_clang) {
cflags_cc = [ cflags_cc = [
@ -173,18 +200,28 @@ if (crashpad_is_in_chromium) {
} }
test("gtest_premature_exit_test") { test("gtest_premature_exit_test") {
sources = [ "gtest/googletest/test/gtest_premature_exit_test.cc" ] sources = [
deps = [ ":gtest" ] "gtest/googletest/test/gtest_premature_exit_test.cc",
]
deps = [
":gtest",
]
} }
test("gtest_repeat_test") { test("gtest_repeat_test") {
sources = [ "gtest/googletest/test/gtest_repeat_test.cc" ] sources = [
"gtest/googletest/test/gtest_repeat_test.cc",
]
configs += [ ":gtest_private_config" ] configs += [ ":gtest_private_config" ]
deps = [ ":gtest" ] deps = [
":gtest",
]
} }
test("gtest_sole_header_test") { test("gtest_sole_header_test") {
sources = [ "gtest/googletest/test/gtest_sole_header_test.cc" ] sources = [
"gtest/googletest/test/gtest_sole_header_test.cc",
]
deps = [ deps = [
":gtest", ":gtest",
":gtest_main", ":gtest_main",
@ -192,14 +229,22 @@ if (crashpad_is_in_chromium) {
} }
test("gtest_stress_test") { test("gtest_stress_test") {
sources = [ "gtest/googletest/test/gtest_stress_test.cc" ] sources = [
"gtest/googletest/test/gtest_stress_test.cc",
]
configs += [ ":gtest_private_config" ] configs += [ ":gtest_private_config" ]
deps = [ ":gtest" ] deps = [
":gtest",
]
} }
test("gtest_unittest_api_test") { test("gtest_unittest_api_test") {
sources = [ "gtest/googletest/test/gtest-unittest-api_test.cc" ] sources = [
deps = [ ":gtest" ] "gtest/googletest/test/gtest-unittest-api_test.cc",
]
deps = [
":gtest",
]
} }
group("gtest_all_tests") { group("gtest_all_tests") {
@ -256,7 +301,6 @@ if (crashpad_is_in_chromium) {
"gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h", "gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h",
"gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h", "gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h",
"gtest/googlemock/include/gmock/internal/custom/gmock-port.h", "gtest/googlemock/include/gmock/internal/custom/gmock-port.h",
"gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h",
"gtest/googlemock/include/gmock/internal/gmock-internal-utils.h", "gtest/googlemock/include/gmock/internal/gmock-internal-utils.h",
"gtest/googlemock/include/gmock/internal/gmock-port.h", "gtest/googlemock/include/gmock/internal/gmock-port.h",
"gtest/googlemock/include/gmock/internal/gmock-pp.h", "gtest/googlemock/include/gmock/internal/gmock-pp.h",
@ -273,14 +317,18 @@ if (crashpad_is_in_chromium) {
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors", "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
] ]
configs += [ ":gmock_private_config" ] configs += [ ":gmock_private_config" ]
deps = [ ":gtest" ] deps = [
":gtest",
]
} }
static_library("gmock_main") { static_library("gmock_main") {
# Tests outside of this file should use ../../test:gmock_main instead. # Tests outside of this file should use ../../test:gmock_main instead.
visibility = [ ":*" ] visibility = [ ":*" ]
testonly = true testonly = true
sources = [ "gtest/googlemock/src/gmock_main.cc" ] sources = [
"gtest/googlemock/src/gmock_main.cc",
]
deps = [ deps = [
":gmock", ":gmock",
":gtest", ":gtest",
@ -339,7 +387,9 @@ if (crashpad_is_in_chromium) {
} }
test("gmock_stress_test") { test("gmock_stress_test") {
sources = [ "gtest/googlemock/test/gmock_stress_test.cc" ] sources = [
"gtest/googlemock/test/gmock_stress_test.cc",
]
configs -= [ configs -= [
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors", "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
] ]