FBControlCore/Configuration/FBXCTraceConfiguration.h (42 lines of code) (raw):

/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN @class FBXCTestShimConfiguration; /** A Value object with the information required to run `xctrace record` */ @interface FBXCTraceRecordConfiguration : NSObject <NSCopying> #pragma mark Initializers /** Create and return a new `xctrace record` configuration with the provided parameters */ + (instancetype)RecordWithTemplateName:(NSString *)templateName timeLimit:(NSTimeInterval)timeLimit package:(nullable NSString *)package allProcesses:(BOOL)allProcesses processToAttach:(nullable NSString *)processToAttach processToLaunch:(nullable NSString *)processToLaunch launchArgs:(nullable NSArray<NSString *> *)launchArgs targetStdin:(nullable NSString *)targetStdin targetStdout:(nullable NSString *)targetStdout processEnv:(nullable NSDictionary<NSString *, NSString *> *)processEnv shim:(nullable FBXCTestShimConfiguration *)shim; - (instancetype)initWithTemplateName:(NSString *)templateName timeLimit:(NSTimeInterval)timeLimit package:(nullable NSString *)package allProcesses:(BOOL)allProcesses processToAttach:(nullable NSString *)processToAttach processToLaunch:(nullable NSString *)processToLaunch launchArgs:(nullable NSArray<NSString *> *)launchArgs targetStdin:(nullable NSString *)targetStdin targetStdout:(nullable NSString *)targetStdout processEnv:(nullable NSDictionary<NSString *, NSString *> *)processEnv shim:(nullable FBXCTestShimConfiguration *)shim; /** Add shim to xctrace @param shim shim to be applied to xctrace @return new xctrace record config with shim added */ - (instancetype)withShim:(FBXCTestShimConfiguration *)shim; #pragma mark Properties /** Trace template name or path for recording */ @property (nonatomic, copy, readonly) NSString *templateName; /** Limit recording time to the specified value */ @property (nonatomic, assign, readonly) NSTimeInterval timeLimit; /** Load Instruments Package from given path for duration of the command */ @property (nullable, nonatomic, copy, readonly) NSString *package; /** Record all processes */ @property (nonatomic, assign, readonly) BOOL allProcesses; /** Attach and record process with the given name or pid */ @property (nullable, nonatomic, copy, readonly) NSString *processToAttach; /** Launch process with the given name or path */ @property (nullable, nonatomic, copy, readonly) NSString *processToLaunch; /** The arguments to the target application */ @property (nullable, nonatomic, copy, readonly) NSArray<NSString *> *launchArgs; /** Redirect standard input of the launched process */ @property (nullable, nonatomic, copy, readonly) NSString *targetStdin; /** Redirect standard output of the launched process */ @property (nullable, nonatomic, copy, readonly) NSString *targetStdout; /** Set specified environment variable for the launched process */ @property (nullable, nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *processEnv; /** Shim to be applied to xctrace */ @property (nonatomic, copy, readonly, nullable) FBXCTestShimConfiguration *shim; @end NS_ASSUME_NONNULL_END