appium-webdriveragent 16.12.11 → 16.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/WebDriverAgentLib/Categories/XCUIApplication+FBTouchAction.h +53 -0
- package/WebDriverAgentLib/Categories/XCUIApplication+FBTouchAction.m +124 -0
- package/WebDriverAgentLib/Commands/FBElementCommands.m +20 -5
- package/WebDriverAgentLib/Info.plist +2 -2
- package/WebDriverAgentLib/Routing/FBHTTPServer.m +14 -1
- package/WebDriverAgentLib/Routing/FBTCPSocket.h +5 -1
- package/WebDriverAgentLib/Routing/FBTCPSocket.m +10 -1
- package/WebDriverAgentLib/Utilities/FBConfiguration.h +6 -0
- package/WebDriverAgentLib/Utilities/FBConfiguration.m +1 -0
- package/WebDriverAgentLib/Utilities/FBImageProcessor.m +3 -1
- package/WebDriverAgentLib/Utilities/FBMjpegServer.m +2 -0
- package/WebDriverAgentLib/Utilities/FBScreen.h +17 -0
- package/WebDriverAgentLib/Utilities/FBScreen.m +32 -0
- package/WebDriverAgentLib/Utilities/FBScreenshot.h +2 -2
- package/WebDriverAgentLib/Utilities/FBScreenshot.m +6 -2
- package/WebDriverAgentLib/Utilities/FBSettings.h +1 -0
- package/WebDriverAgentLib/Utilities/FBSettings.m +1 -0
- package/WebDriverAgentLib/Utilities/FBSettingsHandler.m +24 -0
- package/WebDriverAgentLib/Utilities/LRUCache/LRUCache.m +8 -5
- package/WebDriverAgentLib/Utilities/LRUCache/LRUCacheNode.h +1 -1
- package/WebDriverAgentTests/IntegrationTests/FBElementSwipingTests.m +95 -0
- package/WebDriverAgentTests/IntegrationTests/FBImageProcessorTests.m +34 -0
- package/WebDriverAgentTests/IntegrationTests/FBScreenTests.m +67 -0
- package/WebDriverAgentTests/UnitTests/FBHTTPServerTests.m +149 -5
- package/WebDriverAgentTests/UnitTests/FBLRUCacheTests.m +34 -0
- package/build/lib/xcodebuild.d.ts +0 -1
- package/build/lib/xcodebuild.d.ts.map +1 -1
- package/build/lib/xcodebuild.js +7 -7
- package/build/lib/xcodebuild.js.map +1 -1
- package/lib/xcodebuild.ts +7 -7
- package/package.json +1 -1
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
#import "XCUIElement+FBWebDriverAttributes.h"
|
|
14
14
|
#import "FBXCodeCompatibility.h"
|
|
15
15
|
#import "XCUIElement+FBSwiping.h"
|
|
16
|
+
#import "FBExceptions.h"
|
|
17
|
+
#import "XCUIApplication+FBTouchAction.h"
|
|
18
|
+
#import "XCSynthesizedEventRecord.h"
|
|
19
|
+
#import "XCUICoordinate.h"
|
|
16
20
|
|
|
17
21
|
@interface FBElementSwipingTests : FBIntegrationTestCase
|
|
18
22
|
@property (nonatomic, strong) XCUIElement *scrollView;
|
|
@@ -125,3 +129,94 @@
|
|
|
125
129
|
}
|
|
126
130
|
|
|
127
131
|
@end
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
Stands in for a coordinate whose application did not deliver a usable snapshot (as happens for a
|
|
135
|
+
busy application right after an app switch), which XCTest resolves to an infinite screen point.
|
|
136
|
+
*/
|
|
137
|
+
@interface FBUnresolvableCoordinate : XCUICoordinate
|
|
138
|
+
@end
|
|
139
|
+
|
|
140
|
+
@implementation FBUnresolvableCoordinate
|
|
141
|
+
|
|
142
|
+
- (CGPoint)screenPoint
|
|
143
|
+
{
|
|
144
|
+
return CGPointMake(INFINITY, INFINITY);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@end
|
|
148
|
+
|
|
149
|
+
@interface FBPressAndDragTests : FBIntegrationTestCase
|
|
150
|
+
@end
|
|
151
|
+
|
|
152
|
+
@implementation FBPressAndDragTests
|
|
153
|
+
|
|
154
|
+
- (void)setUp
|
|
155
|
+
{
|
|
156
|
+
[super setUp];
|
|
157
|
+
[self resetOrientation];
|
|
158
|
+
[self launchApplication];
|
|
159
|
+
[self goToScrollPageWithCells:YES];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
- (void)testPressAndDragBetweenApplicationCoordinates
|
|
163
|
+
{
|
|
164
|
+
XCUICoordinate *start = [self.testedApplication coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.7)];
|
|
165
|
+
XCUICoordinate *end = [self.testedApplication coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.3)];
|
|
166
|
+
NSError *error;
|
|
167
|
+
XCTAssertTrue([self.testedApplication fb_pressAtCoordinate:start
|
|
168
|
+
forDuration:0.3
|
|
169
|
+
thenDragToCoordinate:end
|
|
170
|
+
withVelocity:XCUIGestureVelocityDefault
|
|
171
|
+
thenHoldForDuration:0
|
|
172
|
+
error:&error]);
|
|
173
|
+
XCTAssertNil(error);
|
|
174
|
+
FBAssertInvisibleCell(@"0");
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// https://github.com/appium/WebDriverAgent/issues/1056
|
|
178
|
+
- (void)testPressAndDragFailsCleanlyForUnresolvableCoordinates
|
|
179
|
+
{
|
|
180
|
+
XCUICoordinate *start = [[FBUnresolvableCoordinate alloc] initWithElement:self.testedApplication
|
|
181
|
+
normalizedOffset:CGVectorMake(0.5, 0.7)];
|
|
182
|
+
XCUICoordinate *end = [self.testedApplication coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.3)];
|
|
183
|
+
NSError *error;
|
|
184
|
+
XCTAssertFalse([self.testedApplication fb_pressAtCoordinate:start
|
|
185
|
+
forDuration:0.3
|
|
186
|
+
thenDragToCoordinate:end
|
|
187
|
+
withVelocity:XCUIGestureVelocityDefault
|
|
188
|
+
thenHoldForDuration:0
|
|
189
|
+
error:&error]);
|
|
190
|
+
XCTAssertTrue([error.localizedDescription containsString:@"Cannot resolve the on-screen position"]);
|
|
191
|
+
FBAssertVisibleCell(@"0");
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
- (void)testPressDragEventKeepsDisplayIDAndTiming
|
|
195
|
+
{
|
|
196
|
+
XCSynthesizedEventRecord *event = [XCUIApplication fb_pressDragEventFromPoint:CGPointMake(100, 500)
|
|
197
|
+
forDuration:0.3
|
|
198
|
+
toPoint:CGPointMake(100, 100)
|
|
199
|
+
pointsPerSecond:500
|
|
200
|
+
thenHoldForDuration:0.1
|
|
201
|
+
displayID:42
|
|
202
|
+
interfaceOrientation:UIInterfaceOrientationPortrait];
|
|
203
|
+
XCTAssertEqual(event.displayID, 42ULL);
|
|
204
|
+
XCTAssertEqual(event.eventPaths.count, 1U);
|
|
205
|
+
// 0.3 s press + 400 pt / 500 pt per s drag + 0.1 s hold
|
|
206
|
+
XCTAssertEqualWithAccuracy(event.maximumOffset, 1.2, 0.0001);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
- (void)testPressAndDragRejectsInvalidVelocity
|
|
210
|
+
{
|
|
211
|
+
XCUICoordinate *start = [self.testedApplication coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.7)];
|
|
212
|
+
XCUICoordinate *end = [self.testedApplication coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.3)];
|
|
213
|
+
XCTAssertThrowsSpecificNamed([self.testedApplication fb_pressAtCoordinate:start
|
|
214
|
+
forDuration:0
|
|
215
|
+
thenDragToCoordinate:end
|
|
216
|
+
withVelocity:0
|
|
217
|
+
thenHoldForDuration:0
|
|
218
|
+
error:nil],
|
|
219
|
+
NSException, FBInvalidArgumentException);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
@end
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#import <XCTest/XCTest.h>
|
|
10
10
|
|
|
11
11
|
#import "FBImageProcessor.h"
|
|
12
|
+
@import UniformTypeIdentifiers;
|
|
12
13
|
#import "FBIntegrationTestCase.h"
|
|
13
14
|
|
|
14
15
|
|
|
@@ -80,3 +81,36 @@
|
|
|
80
81
|
|
|
81
82
|
@end
|
|
82
83
|
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
// Synthetic images keep these renderer regressions independent of the app's screen.
|
|
87
|
+
@interface FBImageRendererScalingTests : XCTestCase
|
|
88
|
+
@end
|
|
89
|
+
|
|
90
|
+
@implementation FBImageRendererScalingTests
|
|
91
|
+
|
|
92
|
+
- (void)testOrientationFixDoesNotApplyScalingTwice
|
|
93
|
+
{
|
|
94
|
+
for (NSNumber *sourceScale in @[@1, @2, @3]) {
|
|
95
|
+
UIGraphicsImageRendererFormat *format = [UIGraphicsImageRendererFormat new];
|
|
96
|
+
format.scale = sourceScale.doubleValue;
|
|
97
|
+
UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc]
|
|
98
|
+
initWithSize:CGSizeMake(120, 80) format:format];
|
|
99
|
+
NSData *data = [renderer PNGDataWithActions:^(UIGraphicsImageRendererContext *context) {
|
|
100
|
+
[UIColor.redColor setFill];
|
|
101
|
+
[context fillRect:CGRectMake(0, 0, 120, 80)];
|
|
102
|
+
}];
|
|
103
|
+
FBImageProcessor *processor = [FBImageProcessor new];
|
|
104
|
+
NSData *scaled = [processor scaledImageWithData:data
|
|
105
|
+
uti:UTTypePNG
|
|
106
|
+
scalingFactor:0.5
|
|
107
|
+
compressionQuality:1.0
|
|
108
|
+
error:nil];
|
|
109
|
+
UIImage *image = [UIImage imageWithData:scaled];
|
|
110
|
+
XCTAssertNotNil(image);
|
|
111
|
+
XCTAssertEqual(CGImageGetWidth(image.CGImage), (size_t)(60 * sourceScale.integerValue));
|
|
112
|
+
XCTAssertEqual(CGImageGetHeight(image.CGImage), (size_t)(40 * sourceScale.integerValue));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@end
|
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
#import <XCTest/XCTest.h>
|
|
10
10
|
|
|
11
11
|
#import "FBIntegrationTestCase.h"
|
|
12
|
+
#import "FBConfiguration.h"
|
|
12
13
|
#import "FBScreen.h"
|
|
14
|
+
#import "FBScreenshot.h"
|
|
15
|
+
#import "XCUIScreen.h"
|
|
13
16
|
|
|
14
17
|
@interface FBScreenTests : FBIntegrationTestCase
|
|
15
18
|
@end
|
|
@@ -22,6 +25,12 @@
|
|
|
22
25
|
[self launchApplication];
|
|
23
26
|
}
|
|
24
27
|
|
|
28
|
+
- (void)tearDown
|
|
29
|
+
{
|
|
30
|
+
FBConfiguration.sharedInstance.currentDisplayId = nil;
|
|
31
|
+
[super tearDown];
|
|
32
|
+
}
|
|
33
|
+
|
|
25
34
|
- (void)testDisplayID
|
|
26
35
|
{
|
|
27
36
|
XCTAssertGreaterThanOrEqual([FBScreen displayID], 0LL);
|
|
@@ -50,6 +59,64 @@
|
|
|
50
59
|
XCTAssertNotNil(mainScreen[@"traits"]);
|
|
51
60
|
}
|
|
52
61
|
|
|
62
|
+
- (void)testScreenWithDisplayID
|
|
63
|
+
{
|
|
64
|
+
NSError *error = nil;
|
|
65
|
+
XCUIScreen *screen = [FBScreen screenWithDisplayID:[FBScreen displayID] error:&error];
|
|
66
|
+
XCTAssertNil(error);
|
|
67
|
+
XCTAssertEqual(screen.displayID, [FBScreen displayID]);
|
|
68
|
+
|
|
69
|
+
XCTAssertNil([FBScreen screenWithDisplayID:[self unknownDisplayID] error:&error]);
|
|
70
|
+
XCTAssertNotNil(error);
|
|
71
|
+
NSMutableArray<NSNumber *> *availableIDs = [NSMutableArray array];
|
|
72
|
+
for (NSDictionary<NSString *, id> *availableScreen in [FBScreen screensWithError:nil]) {
|
|
73
|
+
[availableIDs addObject:availableScreen[@"displayId"]];
|
|
74
|
+
}
|
|
75
|
+
NSString *availableDisplays = [NSString stringWithFormat:@"Available display ids: [%@]",
|
|
76
|
+
[availableIDs componentsJoinedByString:@", "]];
|
|
77
|
+
XCTAssertTrue([error.localizedDescription containsString:availableDisplays]);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
- (void)testCurrentScreenDefaultsToMainScreen
|
|
81
|
+
{
|
|
82
|
+
NSError *error = nil;
|
|
83
|
+
XCTAssertTrue([FBScreen currentScreenWithError:&error].isMainScreen);
|
|
84
|
+
XCTAssertNil(error);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
- (void)testCurrentScreenFollowsSetting
|
|
88
|
+
{
|
|
89
|
+
FBConfiguration.sharedInstance.currentDisplayId = @([FBScreen displayID]);
|
|
90
|
+
NSError *error = nil;
|
|
91
|
+
XCTAssertEqual([FBScreen currentScreenWithError:&error].displayID, [FBScreen displayID]);
|
|
92
|
+
XCTAssertNil(error);
|
|
93
|
+
XCTAssertNotNil([FBScreenshot takeInOriginalResolutionWithQuality:0 error:&error]);
|
|
94
|
+
XCTAssertNil(error);
|
|
95
|
+
|
|
96
|
+
FBConfiguration.sharedInstance.currentDisplayId = @([self unknownDisplayID]);
|
|
97
|
+
XCTAssertNil([FBScreen currentScreenWithError:&error]);
|
|
98
|
+
XCTAssertNotNil(error);
|
|
99
|
+
error = nil;
|
|
100
|
+
XCTAssertNil([FBScreenshot takeInOriginalResolutionWithQuality:0 error:&error]);
|
|
101
|
+
XCTAssertNotNil(error);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
- (void)testSessionResetClearsCurrentDisplay
|
|
105
|
+
{
|
|
106
|
+
FBConfiguration.sharedInstance.currentDisplayId = @([FBScreen displayID]);
|
|
107
|
+
[FBConfiguration.sharedInstance resetSessionSettings];
|
|
108
|
+
XCTAssertNil(FBConfiguration.sharedInstance.currentDisplayId);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
- (long long)unknownDisplayID
|
|
112
|
+
{
|
|
113
|
+
long long maxID = 0;
|
|
114
|
+
for (NSDictionary<NSString *, id> *screen in [FBScreen screensWithError:nil]) {
|
|
115
|
+
maxID = MAX(maxID, [screen[@"displayId"] longLongValue]);
|
|
116
|
+
}
|
|
117
|
+
return maxID + 1;
|
|
118
|
+
}
|
|
119
|
+
|
|
53
120
|
- (void)testScreenScale
|
|
54
121
|
{
|
|
55
122
|
XCTAssertTrue([FBScreen scale] >= 2);
|
|
@@ -17,11 +17,35 @@
|
|
|
17
17
|
|
|
18
18
|
static atomic_int gFramingProbeHits;
|
|
19
19
|
|
|
20
|
+
// The response in `data` once all of it has arrived - its header block and Content-Length body -
|
|
21
|
+
// or nil while more is due.
|
|
22
|
+
static NSString *FBCompleteResponse(NSData *data)
|
|
23
|
+
{
|
|
24
|
+
NSData *separator = (NSData * _Nonnull)[@"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding];
|
|
25
|
+
NSRange headerEnd = [data rangeOfData:separator options:(NSDataSearchOptions)0 range:NSMakeRange(0, data.length)];
|
|
26
|
+
if (NSNotFound == headerEnd.location) {
|
|
27
|
+
return nil;
|
|
28
|
+
}
|
|
29
|
+
NSString *headers = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, headerEnd.location)] encoding:NSUTF8StringEncoding];
|
|
30
|
+
NSUInteger contentLength = 0;
|
|
31
|
+
for (NSString *line in [headers componentsSeparatedByString:@"\r\n"]) {
|
|
32
|
+
NSArray<NSString *> *field = [line componentsSeparatedByString:@":"];
|
|
33
|
+
if (2 == field.count && NSOrderedSame == [field[0] caseInsensitiveCompare:@"Content-Length"]) {
|
|
34
|
+
contentLength = (NSUInteger)[field[1] stringByTrimmingCharactersInSet:NSCharacterSet.whitespaceCharacterSet].integerValue;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (data.length < NSMaxRange(headerEnd) + contentLength) {
|
|
38
|
+
return nil;
|
|
39
|
+
}
|
|
40
|
+
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
|
41
|
+
}
|
|
42
|
+
|
|
20
43
|
// Exercises FBHTTPServer's HTTP framing defenses with raw socket data that URL-loading APIs
|
|
21
44
|
// cannot produce: malformed Content-Length values and header blocks that never terminate.
|
|
22
45
|
@interface FBHTTPServerTests : XCTestCase
|
|
23
46
|
@property (nonatomic, strong) FBHTTPServer *server;
|
|
24
47
|
@property (nonatomic, assign) uint16_t port;
|
|
48
|
+
@property (nonatomic, strong) dispatch_semaphore_t slowRouteStarted;
|
|
25
49
|
@end
|
|
26
50
|
|
|
27
51
|
@implementation FBHTTPServerTests
|
|
@@ -38,6 +62,13 @@ static atomic_int gFramingProbeHits;
|
|
|
38
62
|
[self.server get:@"/framing/ping" withBlock:^(RouteRequest *request, RouteResponse *response) {
|
|
39
63
|
[response respondWithString:@"pong"];
|
|
40
64
|
}];
|
|
65
|
+
dispatch_semaphore_t slowRouteStarted = dispatch_semaphore_create(0);
|
|
66
|
+
self.slowRouteStarted = slowRouteStarted;
|
|
67
|
+
[self.server get:@"/framing/slow" withBlock:^(RouteRequest *request, RouteResponse *response) {
|
|
68
|
+
dispatch_semaphore_signal(slowRouteStarted);
|
|
69
|
+
[NSThread sleepForTimeInterval:0.5];
|
|
70
|
+
[response respondWithString:@"slow-ok"];
|
|
71
|
+
}];
|
|
41
72
|
self.server.port = 0;
|
|
42
73
|
NSError *error;
|
|
43
74
|
XCTAssertTrue([self.server start:&error], @"%@", error);
|
|
@@ -51,14 +82,12 @@ static atomic_int gFramingProbeHits;
|
|
|
51
82
|
[super tearDown];
|
|
52
83
|
}
|
|
53
84
|
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
- (NSString *)responseForRawPayload:(NSData *)payload timeout:(NSTimeInterval)timeout didClose:(BOOL *)didClose
|
|
85
|
+
// A socket connected to the server that gives up reading after `timeout`, or -1.
|
|
86
|
+
- (int)connectedSocketWithTimeout:(NSTimeInterval)timeout
|
|
57
87
|
{
|
|
58
|
-
*didClose = NO;
|
|
59
88
|
int fd = socket(AF_INET, SOCK_STREAM, 0);
|
|
60
89
|
if (fd < 0) {
|
|
61
|
-
return
|
|
90
|
+
return -1;
|
|
62
91
|
}
|
|
63
92
|
int noSigpipe = 1;
|
|
64
93
|
setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, &noSigpipe, sizeof(noSigpipe));
|
|
@@ -68,6 +97,84 @@ static atomic_int gFramingProbeHits;
|
|
|
68
97
|
addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
|
|
69
98
|
if (0 != connect(fd, (struct sockaddr *)&addr, sizeof(addr))) {
|
|
70
99
|
close(fd);
|
|
100
|
+
return -1;
|
|
101
|
+
}
|
|
102
|
+
return fd;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Descriptors in this process bound to the server's port: its listener plus one per server-side
|
|
106
|
+
// connection still open. Client sockets are bound to ephemeral ports, so they never count.
|
|
107
|
+
- (NSInteger)serverSocketCount
|
|
108
|
+
{
|
|
109
|
+
NSInteger count = 0;
|
|
110
|
+
int limit = getdtablesize();
|
|
111
|
+
for (int fd = 0; fd < limit; fd++) {
|
|
112
|
+
struct sockaddr_storage addr;
|
|
113
|
+
socklen_t length = sizeof(addr);
|
|
114
|
+
if (0 != getsockname(fd, (struct sockaddr *)&addr, &length)) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
in_port_t port = 0;
|
|
118
|
+
if (AF_INET == addr.ss_family) {
|
|
119
|
+
port = ((struct sockaddr_in *)&addr)->sin_port;
|
|
120
|
+
} else if (AF_INET6 == addr.ss_family) {
|
|
121
|
+
port = ((struct sockaddr_in6 *)&addr)->sin6_port;
|
|
122
|
+
}
|
|
123
|
+
if (ntohs(port) == self.port) {
|
|
124
|
+
count++;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return count;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// The server learns about hang-ups asynchronously: polls until it holds `expected` sockets or
|
|
131
|
+
// 5 seconds pass, and returns the last count.
|
|
132
|
+
- (NSInteger)serverSocketCountSettlingAt:(NSInteger)expected
|
|
133
|
+
{
|
|
134
|
+
NSInteger count = [self serverSocketCount];
|
|
135
|
+
NSDate *deadline = [NSDate dateWithTimeIntervalSinceNow:5.0];
|
|
136
|
+
while (count != expected && deadline.timeIntervalSinceNow > 0) {
|
|
137
|
+
[NSThread sleepForTimeInterval:0.05];
|
|
138
|
+
count = [self serverSocketCount];
|
|
139
|
+
}
|
|
140
|
+
return count;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Sends `request` on a new connection, reads its complete response and then hangs up first, the
|
|
144
|
+
// way curl or iproxy end a keep-alive exchange. Returns nil unless the server answered and still
|
|
145
|
+
// held its side open when the client hung up.
|
|
146
|
+
- (NSString *)responseClosingFirstForRequest:(NSString *)request
|
|
147
|
+
{
|
|
148
|
+
int fd = [self connectedSocketWithTimeout:5.0];
|
|
149
|
+
if (fd < 0) {
|
|
150
|
+
return nil;
|
|
151
|
+
}
|
|
152
|
+
NSData *payload = (NSData * _Nonnull)[request dataUsingEncoding:NSUTF8StringEncoding];
|
|
153
|
+
send(fd, payload.bytes, payload.length, 0);
|
|
154
|
+
NSMutableData *received = [NSMutableData data];
|
|
155
|
+
NSString *response = nil;
|
|
156
|
+
char chunk[4096];
|
|
157
|
+
while (nil == response) {
|
|
158
|
+
ssize_t n = recv(fd, chunk, sizeof(chunk), 0);
|
|
159
|
+
if (n <= 0) {
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
[received appendBytes:chunk length:(NSUInteger)n];
|
|
163
|
+
response = FBCompleteResponse(received);
|
|
164
|
+
}
|
|
165
|
+
char probe;
|
|
166
|
+
BOOL isStillOpen = -1 == recv(fd, &probe, 1, MSG_PEEK | MSG_DONTWAIT) && EAGAIN == errno;
|
|
167
|
+
close(fd);
|
|
168
|
+
return isStillOpen ? response : nil;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Sends `payload` as-is and reads until the server closes the connection or `timeout` elapses.
|
|
172
|
+
// Returns everything received (nil on connect failure); *didClose reports whether EOF was seen.
|
|
173
|
+
- (NSString *)responseForRawPayload:(NSData *)payload timeout:(NSTimeInterval)timeout didClose:(BOOL *)didClose
|
|
174
|
+
{
|
|
175
|
+
*didClose = NO;
|
|
176
|
+
int fd = [self connectedSocketWithTimeout:timeout];
|
|
177
|
+
if (fd < 0) {
|
|
71
178
|
return nil;
|
|
72
179
|
}
|
|
73
180
|
// send(2) may write only part of the payload, which would truncate the multi-KiB flood
|
|
@@ -122,6 +229,43 @@ static atomic_int gFramingProbeHits;
|
|
|
122
229
|
XCTAssertTrue([response containsString:@"pong"], @"%@", response);
|
|
123
230
|
}
|
|
124
231
|
|
|
232
|
+
- (void)testConnectionsTheClientClosesReleaseTheirSockets
|
|
233
|
+
{
|
|
234
|
+
// The server keeps a connection open after answering, so the client is the one that hangs up.
|
|
235
|
+
// Each such connection must give its server-side socket back, or a long-running server
|
|
236
|
+
// eventually fails every request with EMFILE.
|
|
237
|
+
NSInteger baseline = [self serverSocketCount];
|
|
238
|
+
for (int i = 0; i < 50; i++) {
|
|
239
|
+
NSString *response = [self responseClosingFirstForRequest:@"GET /framing/ping HTTP/1.1\r\n\r\n"];
|
|
240
|
+
XCTAssertTrue([response containsString:@"pong"], @"%@", response);
|
|
241
|
+
}
|
|
242
|
+
XCTAssertEqual([self serverSocketCountSettlingAt:baseline], baseline);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
- (void)testHalfClosedClientGetsItsResponseAndIsThenClosed
|
|
246
|
+
{
|
|
247
|
+
// A client may shut down its sending side right after the request and wait for the response.
|
|
248
|
+
// Its end-of-stream must not cost it that response, and the server must close afterwards.
|
|
249
|
+
NSInteger baseline = [self serverSocketCount];
|
|
250
|
+
int fd = [self connectedSocketWithTimeout:5.0];
|
|
251
|
+
XCTAssertGreaterThanOrEqual(fd, 0);
|
|
252
|
+
NSData *payload = (NSData * _Nonnull)[@"GET /framing/slow HTTP/1.1\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding];
|
|
253
|
+
XCTAssertEqual(send(fd, payload.bytes, payload.length, 0), (ssize_t)payload.length);
|
|
254
|
+
XCTAssertEqual(dispatch_semaphore_wait(self.slowRouteStarted, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC))), 0L);
|
|
255
|
+
XCTAssertEqual(shutdown(fd, SHUT_WR), 0);
|
|
256
|
+
NSMutableData *received = [NSMutableData data];
|
|
257
|
+
char chunk[4096];
|
|
258
|
+
ssize_t n;
|
|
259
|
+
while ((n = recv(fd, chunk, sizeof(chunk), 0)) > 0) {
|
|
260
|
+
[received appendBytes:chunk length:(NSUInteger)n];
|
|
261
|
+
}
|
|
262
|
+
close(fd);
|
|
263
|
+
NSString *response = [[NSString alloc] initWithData:received encoding:NSUTF8StringEncoding];
|
|
264
|
+
XCTAssertTrue([response containsString:@"slow-ok"], @"%@", response);
|
|
265
|
+
XCTAssertEqual(n, (ssize_t)0, @"the server must close the connection once it has answered");
|
|
266
|
+
XCTAssertEqual([self serverSocketCountSettlingAt:baseline], baseline);
|
|
267
|
+
}
|
|
268
|
+
|
|
125
269
|
- (void)testNonNumericContentLengthIsRejected
|
|
126
270
|
{
|
|
127
271
|
// Under -integerValue's lenient parsing "bogus" became 0: the probe route would run with an
|
|
@@ -15,6 +15,40 @@
|
|
|
15
15
|
|
|
16
16
|
@implementation FBLRUCacheTests
|
|
17
17
|
|
|
18
|
+
- (void)testDestroyingCacheReleasesAllValues
|
|
19
|
+
{
|
|
20
|
+
__weak NSObject *firstValue;
|
|
21
|
+
__weak NSObject *secondValue;
|
|
22
|
+
@autoreleasepool {
|
|
23
|
+
LRUCache *cache = [[LRUCache alloc] initWithCapacity:2];
|
|
24
|
+
NSObject *first = [NSObject new];
|
|
25
|
+
NSObject *second = [NSObject new];
|
|
26
|
+
firstValue = first;
|
|
27
|
+
secondValue = second;
|
|
28
|
+
[cache setObject:first forKey:@"first"];
|
|
29
|
+
[cache setObject:second forKey:@"second"];
|
|
30
|
+
XCTAssertNotNil([cache objectForKey:@"first"]);
|
|
31
|
+
}
|
|
32
|
+
XCTAssertNil(firstValue);
|
|
33
|
+
XCTAssertNil(secondValue);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
- (void)testRemovingValueReleasesItWhileCacheRemainsAlive
|
|
37
|
+
{
|
|
38
|
+
LRUCache *cache = [[LRUCache alloc] initWithCapacity:3];
|
|
39
|
+
__weak NSObject *removedValue;
|
|
40
|
+
@autoreleasepool {
|
|
41
|
+
NSObject *value = [NSObject new];
|
|
42
|
+
removedValue = value;
|
|
43
|
+
[cache setObject:@"oldest" forKey:@"oldest"];
|
|
44
|
+
[cache setObject:value forKey:@"removed"];
|
|
45
|
+
[cache setObject:@"newest" forKey:@"newest"];
|
|
46
|
+
[cache removeObjectForKey:@"removed"];
|
|
47
|
+
}
|
|
48
|
+
XCTAssertNil(removedValue);
|
|
49
|
+
XCTAssertEqualObjects(cache.allObjects, (@[@"newest", @"oldest"]));
|
|
50
|
+
}
|
|
51
|
+
|
|
18
52
|
- (void)assertArray:(NSArray *)array1 equalsTo:(NSArray *)array2
|
|
19
53
|
{
|
|
20
54
|
XCTAssertEqualObjects(array1, array2);
|
|
@@ -33,7 +33,6 @@ export declare class XcodeBuild {
|
|
|
33
33
|
private readonly resultBundlePath?;
|
|
34
34
|
private readonly resultBundleVersion?;
|
|
35
35
|
private _didBuildFail;
|
|
36
|
-
private _didProcessExit;
|
|
37
36
|
private readonly _buildSettingsPromises;
|
|
38
37
|
private noSessionProxy?;
|
|
39
38
|
private xctestrunFilePath?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcodebuild.d.ts","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAM9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,4BAA4B,EAC5B,cAAc,EACd,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AA4BpB,qBAAa,UAAU;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,uBAAuB,CAAC,CAAkB;IAClD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAU;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAS;IAC9C,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"xcodebuild.d.ts","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|
package/build/lib/xcodebuild.js
CHANGED
|
@@ -48,7 +48,6 @@ export class XcodeBuild {
|
|
|
48
48
|
resultBundlePath;
|
|
49
49
|
resultBundleVersion;
|
|
50
50
|
_didBuildFail;
|
|
51
|
-
_didProcessExit;
|
|
52
51
|
_buildSettingsPromises = new Map();
|
|
53
52
|
noSessionProxy;
|
|
54
53
|
xctestrunFilePath;
|
|
@@ -88,7 +87,6 @@ export class XcodeBuild {
|
|
|
88
87
|
this.resultBundlePath = args.resultBundlePath;
|
|
89
88
|
this.resultBundleVersion = args.resultBundleVersion;
|
|
90
89
|
this._didBuildFail = false;
|
|
91
|
-
this._didProcessExit = false;
|
|
92
90
|
}
|
|
93
91
|
/**
|
|
94
92
|
* Initializes the XcodeBuild instance with a no-session proxy.
|
|
@@ -194,11 +192,13 @@ export class XcodeBuild {
|
|
|
194
192
|
throw new Error('xcodebuild subprocess was not created');
|
|
195
193
|
}
|
|
196
194
|
const xcodebuild = this.xcodebuild;
|
|
195
|
+
// Exit state belongs to this invocation, including build-only invocations.
|
|
196
|
+
let didProcessExit = false;
|
|
197
197
|
return await new Promise((resolve, reject) => {
|
|
198
198
|
xcodebuild.once('exit', (code, signal) => {
|
|
199
199
|
xcodeLog.error(`xcodebuild exited with code '${code}' and signal '${signal}'`);
|
|
200
200
|
xcodebuild.removeAllListeners();
|
|
201
|
-
|
|
201
|
+
didProcessExit = true;
|
|
202
202
|
if (this._didBuildFail || (!signal && code !== 0)) {
|
|
203
203
|
let errorMessage = `xcodebuild failed with code ${code}.` +
|
|
204
204
|
` This usually indicates an issue with the local Xcode setup or WebDriverAgent` +
|
|
@@ -228,7 +228,7 @@ export class XcodeBuild {
|
|
|
228
228
|
}
|
|
229
229
|
await xcodebuild.start(true);
|
|
230
230
|
if (!buildOnly) {
|
|
231
|
-
const result = await this.waitForStart(timer);
|
|
231
|
+
const result = await this.waitForStart(timer, () => didProcessExit);
|
|
232
232
|
resolve(result ?? undefined);
|
|
233
233
|
}
|
|
234
234
|
}
|
|
@@ -469,7 +469,7 @@ export class XcodeBuild {
|
|
|
469
469
|
}
|
|
470
470
|
return xcodebuild;
|
|
471
471
|
}
|
|
472
|
-
async waitForStart(timer) {
|
|
472
|
+
async waitForStart(timer, didProcessExit) {
|
|
473
473
|
// try to connect once every 0.5 seconds, until `launchTimeout` is up
|
|
474
474
|
const timeout = this.launchTimeout || 60000; // Default to 60 seconds if not set
|
|
475
475
|
this.log.debug(`Waiting up to ${timeout}ms for WebDriverAgent to start`);
|
|
@@ -481,7 +481,7 @@ export class XcodeBuild {
|
|
|
481
481
|
}
|
|
482
482
|
const noSessionProxy = this.noSessionProxy;
|
|
483
483
|
await retryInterval(retries, 1000, async () => {
|
|
484
|
-
if (
|
|
484
|
+
if (didProcessExit()) {
|
|
485
485
|
// there has been an error elsewhere and we need to short-circuit
|
|
486
486
|
return currentStatus;
|
|
487
487
|
}
|
|
@@ -501,7 +501,7 @@ export class XcodeBuild {
|
|
|
501
501
|
noSessionProxy.timeout = proxyTimeout;
|
|
502
502
|
}
|
|
503
503
|
});
|
|
504
|
-
if (
|
|
504
|
+
if (didProcessExit()) {
|
|
505
505
|
// there has been an error elsewhere and we need to short-circuit
|
|
506
506
|
return currentStatus;
|
|
507
507
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcodebuild.js","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xcodebuild.js","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|