Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

[build, ios] Add canary Xcode 10 CircleCI job #12911

Merged
merged 3 commits into from
Sep 20, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions circle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ workflows:
- linux-gcc4.9-debug
- linux-gcc5-debug-coverage
- ios-debug
- ios-debug-xcode10
- ios-release
- ios-release-tag:
filters:
Expand Down Expand Up @@ -947,6 +948,39 @@ jobs:
- *collect-xcode-build-logs
- *upload-xcode-build-logs

# ------------------------------------------------------------------------------
ios-debug-xcode10:
macos:
xcode: "10.0.0"
environment:
BUILDTYPE: Debug
HOMEBREW_NO_AUTO_UPDATE: 1
steps:
- checkout
- *restore-node_modules-cache
- *npm-install
- *prepare-environment
- *install-macos-dependencies
- *prepare-ccache
- *restore-mason_packages-cache
- *restore-ccache
- *reset-ccache-stats
- *build-ios-test
- *build-ios-integration-test
- *check-public-symbols
- run:
name: Lint plist files
command: make ios-lint
- run:
name: Nitpick Darwin code generation
command: scripts/nitpick/generated-code.js darwin
- *show-ccache-stats
- *save-node_modules-cache
- *save-mason_packages-cache
- *save-ccache
- *collect-xcode-build-logs
- *upload-xcode-build-logs

# ------------------------------------------------------------------------------
ios-sanitize:
macos:
Expand Down
2 changes: 1 addition & 1 deletion platform/darwin/test/MGLDocumentationExampleTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class MGLDocumentationExampleTests: XCTestCase, MGLMapViewDelegate {
mapView = MGLMapView(frame: CGRect(x: 0, y: 0, width: 256, height: 256), styleURL: MGLDocumentationExampleTests.styleURL)
mapView.delegate = self
styleLoadingExpectation = expectation(description: "Map view should finish loading style")
waitForExpectations(timeout: 1, handler: nil)
waitForExpectations(timeout: 5, handler: nil)
}

override func tearDown() {
Expand Down
2 changes: 1 addition & 1 deletion platform/darwin/test/MGLDocumentationGuideTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class MGLDocumentationGuideTests: XCTestCase, MGLMapViewDelegate {
mapView = MGLMapView(frame: CGRect(x: 0, y: 0, width: 256, height: 256), styleURL: styleURL)
mapView.delegate = self
styleLoadingExpectation = expectation(description: "Map view should finish loading style")
waitForExpectations(timeout: 1, handler: nil)
waitForExpectations(timeout: 5, handler: nil)
}

override func tearDown() {
Expand Down
20 changes: 10 additions & 10 deletions platform/darwin/test/MGLOfflineStorageTests.mm
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ - (void)setUp {
[expectation fulfill];
[self waitForExpectationsWithTimeout:0 handler:nil];
} else {
[self waitForExpectationsWithTimeout:2 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];
}

XCTAssertNotNil([MGLOfflineStorage sharedOfflineStorage].packs, @"Shared offline storage object should have a non-nil collection of packs by this point.");
Expand Down Expand Up @@ -86,7 +86,7 @@ - (void)testAddPackForBounds {
pack = completionHandlerPack;
[additionCompletionHandlerExpectation fulfill];
}];
[self waitForExpectationsWithTimeout:2 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];

XCTAssertEqual([MGLOfflineStorage sharedOfflineStorage].packs.count, countOfPacks + 1, @"Added pack should have been added to the canonical collection of packs owned by the shared offline storage object. This assertion can fail if this test is run before -testAAALoadPacks.");

Expand Down Expand Up @@ -124,7 +124,7 @@ - (void)testAddPackForBounds {
return notificationPack == pack && pack.state == MGLOfflinePackStateInactive;
}];
[pack requestProgress];
[self waitForExpectationsWithTimeout:1 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];
}

- (void)testAddPackForGeometry {
Expand Down Expand Up @@ -157,7 +157,7 @@ - (void)testAddPackForGeometry {
pack = completionHandlerPack;
[additionCompletionHandlerExpectation fulfill];
}];
[self waitForExpectationsWithTimeout:2 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];

XCTAssertEqual([MGLOfflineStorage sharedOfflineStorage].packs.count, countOfPacks + 1, @"Added pack should have been added to the canonical collection of packs owned by the shared offline storage object. This assertion can fail if this test is run before -testAAALoadPacks.");

Expand Down Expand Up @@ -195,7 +195,7 @@ - (void)testAddPackForGeometry {
return notificationPack == pack && pack.state == MGLOfflinePackStateInactive;
}];
[pack requestProgress];
[self waitForExpectationsWithTimeout:1 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];
pack = nil;
}

Expand Down Expand Up @@ -239,7 +239,7 @@ - (void)testRemovePack {
XCTAssertEqual(pack.state, MGLOfflinePackStateInvalid, @"Removed pack should be invalid in the completion handler.");
[completionHandlerExpectation fulfill];
}];
[self waitForExpectationsWithTimeout:1 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];

XCTAssertEqual(pack.state, MGLOfflinePackStateInvalid, @"Removed pack should have been invalidated synchronously.");

Expand Down Expand Up @@ -314,9 +314,9 @@ - (void)testAddFileContent {

NSNumber *fileSizeNumber = [fileAttributes objectForKey:NSFileSize];
long long fileSize = [fileSizeNumber longLongValue];
long long dabaseFileSize = 32391168;
long long databaseFileSize = 32391168;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😂thank you for catching this.

// Merging databases creates an empty file if the file does not exist at the given path.
XCTAssertEqual(fileSize, dabaseFileSize, @"The dabase file size must be:%lld actual size:%lld", dabaseFileSize, fileSize);
XCTAssertEqual(fileSize, databaseFileSize, @"The database file size must be:%lld actual size:%lld", databaseFileSize, fileSize);

NSUInteger countOfPacks = [MGLOfflineStorage sharedOfflineStorage].packs.count;

Expand All @@ -337,7 +337,7 @@ - (void)testAddFileContent {
}
[fileAdditionCompletionHandlerExpectation fulfill];
}];
[self waitForExpectationsWithTimeout:2 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];
// Depending on the database it may update or add a pack. For this case specifically the offline database adds one pack.
XCTAssertEqual([MGLOfflineStorage sharedOfflineStorage].packs.count, countOfPacks + 1, @"Adding contents of barcelona.db should add one pack.");
}
Expand All @@ -364,7 +364,7 @@ - (void)testAddFileContent {
XCTAssertNil(packs, @"Passing an invalid offline database file should not add packs to the offline database.");
[invalidFileCompletionHandlerExpectation fulfill];
}];
[self waitForExpectationsWithTimeout:2 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];
}
// File non existent
{
Expand Down
7 changes: 7 additions & 0 deletions platform/darwin/test/MGLStyleLayerTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ - (void)testPropertyName:(NSString *)name isBoolean:(BOOL)isBoolean {
if (isBoolean) {
if ([components.firstObject isEqualToString:@"is"]) {
[components removeObjectAtIndex:0];

// Xcode 10 incorrectly classifies "optional" as a verb, so return early to avoid the verb checks.
// https://openradar.appspot.com/44149950
if ([components.lastObject isEqualToString:@"optional"] && NSFoundationVersionNumber >= 1548) {
return;
}

if (![components.lastObject.lexicalClasses containsObject:NSLinguisticTagAdjective]) {
XCTAssertTrue([components.lastObject.lexicalClasses containsObject:NSLinguisticTagVerb],
@"Boolean getter %@ that starts with “is” should contain an adjective, past participle, or verb.", name);
Expand Down
2 changes: 1 addition & 1 deletion platform/darwin/test/MGLStyleTests.mm
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ - (void)setUp {
self.mapView.delegate = self;
if (!self.mapView.style) {
_styleLoadingExpectation = [self expectationWithDescription:@"Map view should finish loading style."];
[self waitForExpectationsWithTimeout:1 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ - (void)waitForCollisionDetectionToRun {
[timerExpired fulfill];
});

[self waitForExpectations:@[timerExpired, self.renderFinishedExpectation] timeout:1.0];
[self waitForExpectations:@[timerExpired, self.renderFinishedExpectation] timeout:5];
}

@end
2 changes: 1 addition & 1 deletion platform/ios/Integration Tests/MBGLIntegrationTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ - (void)testOpenGLLayerDoesNotLeakWhenMapViewDeallocs {
XCTAssertNil(mapView2.style);

self.styleLoadingExpectation = [self expectationWithDescription:@"Map view should finish loading style."];
[self waitForExpectationsWithTimeout:1 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];

MGLOpenGLStyleLayer *layer = [[MGLOpenGLStyleLayer alloc] initWithIdentifier:@"gl-layer"];
weakLayer = layer;
Expand Down
14 changes: 7 additions & 7 deletions platform/ios/Integration Tests/MGLCameraTransitionTests.mm
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ - (void)testSetAndResetNorthWithDispatchAsyncInDelegateMethod {
[self.mapView setDirection:90 animated:YES];

// loop, render, and wait
[self waitForExpectations:@[expectation] timeout:1.5];
[self waitForExpectations:@[expectation] timeout:5];
}


Expand Down Expand Up @@ -62,7 +62,7 @@ - (void)testSetAndResetNorthInDelegateMethod {
};

[self.mapView setDirection:90 animated:YES];
[self waitForExpectations:@[expectation] timeout:1.5];
[self waitForExpectations:@[expectation] timeout:5];
}

- (void)testInterruptingAndResetNorthOnlyOnceInIsChanging {
Expand Down Expand Up @@ -106,7 +106,7 @@ - (void)testInterruptingAndResetNorthOnlyOnceInIsChanging {
};

[self.mapView setDirection:90 animated:YES];
[self waitForExpectations:@[expectation] timeout:1.5];
[self waitForExpectations:@[expectation] timeout:5];

XCTAssertEqualWithAccuracy(self.mapView.direction, 0.0, 0.001, @"Camera should have reset to north. %0.3f", self.mapView.direction);
}
Expand Down Expand Up @@ -222,7 +222,7 @@ - (void)testSetCenterCoordinateInDelegateMethod {

// Should take MGLAnimationDuration seconds (0.3)
[self.mapView setCenterCoordinate:target zoomLevel:15.0 animated:YES];
[self waitForExpectations:@[expectation] timeout:1.5];
[self waitForExpectations:@[expectation] timeout:5];
}

- (void)testFlyToCameraInDelegateMethod {
Expand Down Expand Up @@ -323,7 +323,7 @@ - (void)testFlyToCameraInDelegateMethod {
// Should take MGLAnimationDuration
[self.mapView setCenterCoordinate:target zoomLevel:zoomLevel animated:YES];

[self waitForExpectations:@[expectation] timeout:2.0];
[self waitForExpectations:@[expectation] timeout:5];

NSLog(@"setCenterCoordinate: %0.4fs", stop1 - stop0);
NSLog(@"flyToCamera: %0.4fs", stop2 - stop1);
Expand Down Expand Up @@ -362,7 +362,7 @@ - (void)testContinuallyResettingNorthInIsChangingPENDING {
};

[self.mapView setDirection:90 animated:YES];
[self waitForExpectations:@[expectation] timeout:1.5];
[self waitForExpectations:@[expectation] timeout:5];

XCTAssertEqualWithAccuracy(self.mapView.direction, 0.0, 0.001, @"Camera should have reset to north. %0.3f", self.mapView.direction);
}
Expand All @@ -389,7 +389,7 @@ - (void)testContinuallySettingCoordinateInIsChangingPENDING {
};

[self.mapView setCenterCoordinate:CLLocationCoordinate2DMake(40.0, 40.0) animated:YES];
[self waitForExpectations:@[expectation] timeout:1.5];
[self waitForExpectations:@[expectation] timeout:5];

XCTAssertEqualWithAccuracy(self.mapView.direction, 0.0, 0.001, @"Camera should have reset to north. %0.3f", self.mapView.direction);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ - (void)setUp {
[window makeKeyAndVisible];

if (!self.mapView.style) {
[self waitForMapViewToFinishLoadingStyleWithTimeout:1];
[self waitForMapViewToFinishLoadingStyleWithTimeout:5];
}
}

Expand Down
2 changes: 1 addition & 1 deletion platform/ios/test/MGLAnnotationViewTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ - (void)testAnnotationView
MGLTestAnnotation *annotation = [[MGLTestAnnotation alloc] init];
[_mapView addAnnotation:annotation];

[self waitForExpectationsWithTimeout:1 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];

XCTAssert(_mapView.annotations.count == 1, @"number of annotations should be 1");
XCTAssertNotNil(_annotationView.annotation, @"annotation property should not be nil");
Expand Down
2 changes: 1 addition & 1 deletion platform/ios/test/MGLMapViewLayoutTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ - (void)setUp {
[self.superView addConstraints:[verticalConstraints arrayByAddingObjectsFromArray:horizonatalConstraints]];

self.styleLoadingExpectation = [self expectationWithDescription:@"Map view should finish loading style."];
[self waitForExpectationsWithTimeout:1 handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];

self.mapView.showsScale = YES;

Expand Down