Skip to content

Commit 723679a

Browse files
authored
[Collections] Disable target trie in some of the tests (#3629)
Motivation: Some of the package collection tests don't require search and finish quickly, so when background thread tries to `populateTargetTrie` it results in signal 4. For [example](#3623 (comment)): ``` 10:23:08 Test Suite 'PackageCollectionsTests' started at 2021-07-20 10:21:53.935 10:23:08 Test Case '-[PackageCollectionsTests.PackageCollectionsTests testCollectionPendingTrustConfirmIsKeptOnAdd]' started. 10:23:08 Test Case '-[PackageCollectionsTests.PackageCollectionsTests testCollectionPendingTrustConfirmIsKeptOnAdd]' passed (0.105 seconds). 10:23:08 Exited with signal code 4 ``` Modifications: Set `initializeTargetTrie` to `false` for these tests such that `populateTargetTrie` is not called.
1 parent e6a7323 commit 723679a

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

Tests/PackageCollectionsTests/PackageCollectionsTests.swift

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ final class PackageCollectionsTests: XCTestCase {
2323
let authTokens = ThreadSafeKeyValueStore<AuthTokenType, String>()
2424
let configuration = PackageCollections.Configuration(authTokens: { authTokens.get() })
2525

26-
// This test doesn't use storage at all and finishes quickly so disable target trie to prevent race
26+
// This test doesn't use search at all and finishes quickly so disable target trie to prevent race
2727
let storageConfig = SQLitePackageCollectionsStorage.Configuration(initializeTargetTrie: false)
2828
let storage = makeMockStorage(storageConfig)
2929
defer { XCTAssertNoThrow(try storage.close()) }
@@ -156,7 +156,9 @@ final class PackageCollectionsTests: XCTestCase {
156156
try skipIfUnsupportedPlatform()
157157

158158
let configuration = PackageCollections.Configuration()
159-
let storage = makeMockStorage()
159+
// This test doesn't use search at all and finishes quickly so disable target trie to prevent race
160+
let storageConfig = SQLitePackageCollectionsStorage.Configuration(initializeTargetTrie: false)
161+
let storage = makeMockStorage(storageConfig)
160162
defer { XCTAssertNoThrow(try storage.close()) }
161163

162164
let mockCollection = makeMockCollections(count: 1).first!
@@ -174,7 +176,8 @@ final class PackageCollectionsTests: XCTestCase {
174176
}
175177

176178
// add fails because collection is not found
177-
guard case .failure = tsc_await({ callback in packageCollections.addCollection(mockCollection.source, order: nil, callback: callback) }) else {
179+
guard case .failure(let error) = tsc_await({ callback in packageCollections.addCollection(mockCollection.source, order: nil, callback: callback) }),
180+
error is NotFoundError else {
178181
return XCTFail("expected error")
179182
}
180183

@@ -191,7 +194,9 @@ final class PackageCollectionsTests: XCTestCase {
191194
try skipIfUnsupportedPlatform()
192195

193196
let configuration = PackageCollections.Configuration()
194-
let storage = makeMockStorage()
197+
// This test doesn't use search at all and finishes quickly so disable target trie to prevent race
198+
let storageConfig = SQLitePackageCollectionsStorage.Configuration(initializeTargetTrie: false)
199+
let storage = makeMockStorage(storageConfig)
195200
defer { XCTAssertNoThrow(try storage.close()) }
196201

197202
let mockCollection = makeMockCollections(count: 1, signed: false).first!
@@ -208,7 +213,9 @@ final class PackageCollectionsTests: XCTestCase {
208213
XCTAssertEqual(sources.count, 0, "sources should be empty")
209214
}
210215

211-
guard case .failure = tsc_await({ callback in packageCollections.addCollection(mockCollection.source, order: nil, callback: callback) }) else {
216+
// add fails because collection requires trust confirmation
217+
guard case .failure(let error) = tsc_await({ callback in packageCollections.addCollection(mockCollection.source, order: nil, callback: callback) }),
218+
case PackageCollectionError.trustConfirmationRequired = error else {
212219
return XCTFail("expected error")
213220
}
214221

@@ -225,7 +232,9 @@ final class PackageCollectionsTests: XCTestCase {
225232
try skipIfUnsupportedPlatform()
226233

227234
let configuration = PackageCollections.Configuration()
228-
let storage = makeMockStorage()
235+
// This test doesn't use search at all and finishes quickly so disable target trie to prevent race
236+
let storageConfig = SQLitePackageCollectionsStorage.Configuration(initializeTargetTrie: false)
237+
let storage = makeMockStorage(storageConfig)
229238
defer { XCTAssertNoThrow(try storage.close()) }
230239

231240
let mockCollection = makeMockCollections(count: 1).first!
@@ -244,7 +253,7 @@ final class PackageCollectionsTests: XCTestCase {
244253

245254
// add fails because collection's signature is invalid
246255
guard case .failure(let error) = tsc_await({ callback in packageCollections.addCollection(mockCollection.source, order: nil, callback: callback) }),
247-
PackageCollectionError.invalidSignature == error as? PackageCollectionError else {
256+
case PackageCollectionError.invalidSignature = error else {
248257
return XCTFail("expected PackageCollectionError.invalidSignature")
249258
}
250259

0 commit comments

Comments
 (0)