@@ -36,7 +36,7 @@ @implementation MTRTestServerAppRunner {
36
36
#endif
37
37
}
38
38
39
- - (instancetype )initInternalWithAppName : (NSString *)name arguments : (NSArray <NSString *> *)arguments payload : (NSString *)payload testcase : (MTRTestCase *) testcase isCrossTest : ( BOOL ) isCrossTest
39
+ - (instancetype )initInternalWithAppName : (NSString *)name arguments : (NSArray <NSString *> *)arguments payload : (NSString *)payload
40
40
{
41
41
#if !HAVE_NSTASK
42
42
XCTFail (" Unable to start server app when we do not have NSTask" );
@@ -61,7 +61,7 @@ - (instancetype)initInternalWithAppName:(NSString *)name arguments:(NSArray<NSSt
61
61
NSNumber * passcode = parsedPayload.setupPasscode ;
62
62
63
63
__auto_type * executable = [NSString stringWithFormat: @" out/debug/%@ -app/chip-%@ -app" , name, name];
64
- _appTask = [testcase createTaskForPath: executable];
64
+ _appTask = [MTRTestCase createTaskForPath: executable];
65
65
66
66
__auto_type * forcedArguments = @[
67
67
// Make sure we only advertise on the local interface.
@@ -92,12 +92,6 @@ - (instancetype)initInternalWithAppName:(NSString *)name arguments:(NSArray<NSSt
92
92
_appTask.standardOutput = [NSFileHandle fileHandleForWritingAtPath: outFile];
93
93
_appTask.standardError = [NSFileHandle fileHandleForWritingAtPath: errorFile];
94
94
95
- if (isCrossTest) {
96
- [testcase launchCrossTestTask: _appTask];
97
- } else {
98
- [testcase launchTask: _appTask];
99
- }
100
-
101
95
NSLog (@" Started chip-%@ -app (%@ ) with arguments %@ stdout=%@ and stderr=%@ " , name, _appTask, allArguments, outFile, errorFile);
102
96
103
97
return self;
@@ -106,12 +100,29 @@ - (instancetype)initInternalWithAppName:(NSString *)name arguments:(NSArray<NSSt
106
100
107
101
- (instancetype )initWithAppName : (NSString *)name arguments : (NSArray <NSString *> *)arguments payload : (NSString *)payload testcase : (MTRTestCase *)testcase
108
102
{
109
- return [self initInternalWithAppName: name arguments: arguments payload: payload testcase: testcase isCrossTest: NO ];
103
+ if (!(self = [self initInternalWithAppName: name arguments: arguments payload: payload])) {
104
+ return nil ;
105
+ }
106
+
107
+ [testcase launchTask: _appTask];
108
+
109
+ return self;
110
110
}
111
111
112
- - (instancetype )initCrossTestWithAppName : (NSString *)name arguments : (NSArray <NSString *> *)arguments payload : (NSString *)payload testcase : (MTRTestCase *) testcase
112
+ - (instancetype )initCrossTestWithAppName : (NSString *)name arguments : (NSArray <NSString *> *)arguments payload : (NSString *)payload testsuite : ( Class ) testsuite
113
113
{
114
- return [self initInternalWithAppName: name arguments: arguments payload: payload testcase: testcase isCrossTest: YES ];
114
+ if (![testsuite isSubclassOfClass: MTRTestCase.class]) {
115
+ NSLog (@" %@ is not a subclass of MTRTestCase" , testsuite);
116
+ return nil ;
117
+ }
118
+
119
+ if (!(self = [self initInternalWithAppName: name arguments: arguments payload: payload])) {
120
+ return nil ;
121
+ }
122
+
123
+ [MTRTestCase launchCrossTestTask: _appTask];
124
+
125
+ return self;
115
126
}
116
127
117
128
+ (unsigned )nextUniqueIndex
0 commit comments