Skip to content

Commit 491f8a2

Browse files
authored
SWIFT-1519 Test Swift 5.6 in Evergreen (#751)
1 parent 2d1f200 commit 491f8a2

File tree

4 files changed

+42
-25
lines changed

4 files changed

+42
-25
lines changed

.evergreen/config.yml

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1088,9 +1088,9 @@ axes:
10881088
PYTHON: "/opt/mongodbtoolchain/v3/bin/python3"
10891089
VENV_BIN_DIR: "bin"
10901090

1091-
- id: macos-10.15
1092-
display_name: "macOS 10.15"
1093-
run_on: macos-1015
1091+
- id: macos-11
1092+
display_name: "macOS 11"
1093+
run_on: macos-1100
10941094
variables:
10951095
PYTHON: "/opt/mongodbtoolchain/v3/bin/python3"
10961096
VENV_BIN_DIR: "bin"
@@ -1133,8 +1133,12 @@ axes:
11331133
display_name: "Swift 5.5"
11341134
variables:
11351135
SWIFT_MINOR_VERSION: "5.5"
1136-
- id: "5.6-dev"
1137-
display_name: "Swift 5.6-dev"
1136+
- id: "5.6"
1137+
display_name: "Swift 5.6"
1138+
variables:
1139+
SWIFT_MINOR_VERSION: "5.6"
1140+
- id: "5.7-dev"
1141+
display_name: "Swift 5.7-dev"
11381142
variables:
11391143
SWIFT_MINOR_VERSION: "main-snapshot"
11401144

@@ -1249,7 +1253,7 @@ buildvariants:
12491253
matrix_spec:
12501254
# Ubuntu 20.04 does not have Swift 5.1 toolchains.
12511255
os-fully-featured:
1252-
- "macos-10.15"
1256+
- "macos-11"
12531257
- "ubuntu-18.04"
12541258
swift-version: "5.1"
12551259
display_name: "Compile ${swift-version} ${os-fully-featured}"
@@ -1260,9 +1264,9 @@ buildvariants:
12601264
matrix_spec:
12611265
os-fully-featured: "*"
12621266
swift-version:
1263-
- "5.4"
12641267
- "5.5"
1265-
- "5.6-dev"
1268+
- "5.6"
1269+
- "5.7-dev"
12661270
ssl-auth: "*"
12671271
display_name: "${swift-version} ${os-fully-featured} ${ssl-auth}"
12681272
tasks:
@@ -1301,8 +1305,8 @@ buildvariants:
13011305
matrix_spec:
13021306
os-fully-featured: "*"
13031307
swift-version:
1304-
- "5.4"
13051308
- "5.5"
1309+
- "5.6"
13061310
display_name: "Atlas Connectivity ${swift-version} ${os-fully-featured}"
13071311
tasks:
13081312
- ".atlas-connect"
@@ -1314,8 +1318,8 @@ buildvariants:
13141318
- "ubuntu-20.04"
13151319
ssl-auth: "*"
13161320
swift-version:
1317-
- "5.4"
13181321
- "5.5"
1322+
- "5.6"
13191323
display_name: "Load Balancer ${swift-version} ${os-fully-featured} ${ssl-auth}"
13201324
tasks:
13211325
- ".load-balancer"
@@ -1325,7 +1329,7 @@ buildvariants:
13251329
os-fully-featured:
13261330
- "ubuntu-18.04"
13271331
swift-version:
1328-
- 5.4
1332+
- "5.6"
13291333
display_name: "Serverless ${swift-version} ${os-fully-featured}"
13301334
tasks:
13311335
- "serverless_task_group"
@@ -1339,7 +1343,7 @@ buildvariants:
13391343
- latest
13401344
- 5.0
13411345
- 4.4
1342-
swift-version: "5.5"
1346+
swift-version: "5.6"
13431347
display_name: "OCSP ${swift-version} ${os-fully-featured} ${versions}"
13441348
batchtime: 20160 # 14 days
13451349
tasks:
@@ -1356,8 +1360,8 @@ buildvariants:
13561360

13571361
- matrix_name: "ocsp-macos"
13581362
matrix_spec:
1359-
os-fully-featured: "macos-10.15"
1360-
swift-version: "5.5"
1363+
os-fully-featured: "macos-11"
1364+
swift-version: "5.6"
13611365
versions:
13621366
- latest
13631367
- 5.0
@@ -1372,7 +1376,7 @@ buildvariants:
13721376
- matrix_name: "versioned-api-tests"
13731377
matrix_spec:
13741378
os-fully-featured: ubuntu-18.04
1375-
swift-version: "5.5"
1379+
swift-version: "5.6"
13761380
versionedAPI: "*"
13771381
display_name: "Versioned API ${versionedAPI} ${swift-version} ${os-fully-featured}"
13781382
batchtime: 10080 # 7 days
@@ -1384,16 +1388,16 @@ buildvariants:
13841388
display_name: "Format and Lint"
13851389
matrix_spec:
13861390
os-fully-featured: "ubuntu-18.04"
1387-
swift-version: "5.5"
1391+
swift-version: "5.6"
13881392
tasks:
13891393
- name: "check-format"
13901394
- name: "check-lint"
13911395

13921396
- matrix_name: "check-sourcery"
13931397
display_name: "Check Sourcery"
13941398
matrix_spec:
1395-
os-fully-featured: "macos-10.15"
1396-
swift-version: "5.5"
1399+
os-fully-featured: "macos-11"
1400+
swift-version: "5.6"
13971401
tasks:
13981402
- name: "check-sourcery"
13991403

@@ -1410,8 +1414,8 @@ buildvariants:
14101414
- matrix_name: "leaks"
14111415
display_name: "Leak Checker ${os-fully-featured} ${ssl-auth}"
14121416
matrix_spec:
1413-
os-fully-featured: "macos-10.15"
1414-
swift-version: "5.5"
1417+
os-fully-featured: "macos-11"
1418+
swift-version: "5.6"
14151419
ssl-auth: "*"
14161420
check-leaks: "leaks"
14171421
tasks:

.evergreen/configure-swift.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ if [ "$SWIFT_VERSION" = "main-snapshot" ]; then
2222
fi
2323

2424
if [ "$OS" == "darwin" ]; then
25-
# 5.1, 5.2 require an older version of Xcode/Command Line Tools
26-
if [[ "$SWIFT_VERSION" == 5.1.* || "$SWIFT_VERSION" == 5.2.* ]]; then
27-
sudo xcode-select -s /Applications/Xcode11.3.app
25+
# latest snapshots require a newer version of Xcode/Command Line Tools
26+
if [[ "$SWIFT_VERSION" == DEVELOPMENT-SNAPSHOT* ]]; then
27+
sudo xcode-select -s /Applications/Xcode13.1.app
2828
else
2929
sudo xcode-select -s /Applications/Xcode12.app
3030
fi

.evergreen/run-tests.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,16 @@ if [ "$SANITIZE" != "false" ]; then
3939
SANITIZE_STATEMENT="--sanitize ${SANITIZE}"
4040
fi
4141

42+
# TODO SWIFT-1421: remove this, it is currently needed due to a bug in Xcode 13.0/13.1.
43+
# see: https://bugs.swift.org/browse/SR-14968
44+
if [ "$OS" == "darwin" ]; then
45+
if [[ "$SWIFT_VERSION" == DEVELOPMENT-SNAPSHOT* ]]; then
46+
EXTRA_FLAGS="-Xswiftc -Xfrontend -Xswiftc -validate-tbd-against-ir=none"
47+
fi
48+
fi
49+
4250
# build the driver
43-
swift build $SANITIZE_STATEMENT
51+
swift build $SANITIZE_STATEMENT $EXTRA_FLAGS
4452

4553
# test the driver
4654
set +o errexit # even if tests fail we want to parse the results, so disable errexit
@@ -54,7 +62,7 @@ fi
5462

5563
MONGODB_TOPOLOGY=${TOPOLOGY} MONGODB_URI=$MONGODB_URI SINGLE_MONGOS_LB_URI=$SINGLE_MONGOS_LB_URI \
5664
MULTI_MONGOS_LB_URI=$MULTI_MONGOS_LB_URI MONGODB_API_VERSION=$MONGODB_API_VERSION \
57-
swift test --enable-test-discovery $FILTER_STATEMENT $SANITIZE_STATEMENT 2>&1 | tee ${RAW_TEST_RESULTS}
65+
swift test --enable-test-discovery $EXTRA_FLAGS $FILTER_STATEMENT $SANITIZE_STATEMENT 2>&1 | tee ${RAW_TEST_RESULTS}
5866

5967
# save tests exit code
6068
EXIT_CODE=$?

Tests/MongoSwiftTests/AsyncAwaitTests.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,11 @@ final class MongoCursorAsyncAwaitTests: MongoSwiftTestCase {
224224

225225
// Test that a tailable cursor that is continually polling the server can be killed by cancelling the parent Task.
226226
func testTailableCursorHandlesTaskCancellation() throws {
227+
guard !MongoSwiftTestCase.serverless else {
228+
printSkipMessage(testName: self.name, reason: "Serverless does not support capped collections")
229+
return
230+
}
231+
227232
testAsync {
228233
let opts = CreateCollectionOptions(capped: true, size: 5)
229234
try await self.withTestNamespace(collectionOptions: opts) { _, _, coll in

0 commit comments

Comments
 (0)