
ARC is now enabled by default, so there’s no need to enforce it against files being put into non-ARC targets. Bug: 1468376 Change-Id: I37301595ee8b96525f491622cc272d062c76526e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4742578 Auto-Submit: Avi Drissman <avi@chromium.org> Reviewed-by: Adrian Taylor <adetaylor@chromium.org> Commit-Queue: John Chen <johnchen@chromium.org> Reviewed-by: John Chen <johnchen@chromium.org> Cr-Commit-Position: refs/heads/main@{#1179056}
50 lines
1.8 KiB
Plaintext
50 lines
1.8 KiB
Plaintext
// Copyright 2017 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "testing/gtest/ios_enable_coverage.h"
|
|
|
|
#if !defined(NDEBUG) && BUILDFLAG(IOS_ENABLE_COVERAGE) && \
|
|
TARGET_IPHONE_SIMULATOR
|
|
extern "C" void __llvm_profile_set_filename(const char* name);
|
|
#endif
|
|
|
|
namespace coverage_util {
|
|
|
|
void ConfigureCoverageReportPath() {
|
|
// Targets won't build on real devices with BUILDFLAG(IOS_ENABLE_COVERAGE)
|
|
// because of llvm library linking issue for arm64 architecture.
|
|
#if !defined(NDEBUG) && BUILDFLAG(IOS_ENABLE_COVERAGE) && \
|
|
TARGET_IPHONE_SIMULATOR
|
|
static dispatch_once_t once_token;
|
|
dispatch_once(&once_token, ^{
|
|
// Writes the profraw file to the simulator shared resources directory,
|
|
// where the app has write rights, and will be preserved after app is
|
|
// killed.
|
|
NSString* shared_resources_path =
|
|
NSProcessInfo.processInfo
|
|
.environment[@"SIMULATOR_SHARED_RESOURCES_DIRECTORY"];
|
|
// UUID ensures that there won't be a conflict when multiple apps are
|
|
// launched in one test suite in EG2. %m enables on-line profile merging.
|
|
// %c helps preserve coverage data at crash.
|
|
NSString* file_name = [NSString
|
|
stringWithFormat:@"%@-%%m-%%c.profraw", NSUUID.UUID.UUIDString];
|
|
NSString* file_path =
|
|
[shared_resources_path stringByAppendingPathComponent:file_name];
|
|
|
|
// For documentation, see:
|
|
// http://clang.llvm.org/docs/SourceBasedCodeCoverage.html
|
|
__llvm_profile_set_filename(
|
|
[file_path cStringUsingEncoding:NSUTF8StringEncoding]);
|
|
|
|
// Print the path for easier retrieval.
|
|
NSLog(@"Coverage data at %@.", file_path);
|
|
});
|
|
#endif // !defined(NDEBUG) && BUILDFLAG(IOS_ENABLE_COVERAGE) &&
|
|
// TARGET_IPHONE_SIMULATOR
|
|
}
|
|
|
|
} // namespace coverage_util
|