func testThreadSafetyShouldFailForNormalSet()

in AmazonChimeSDK/AmazonChimeSDKTests/internal/utils/ConcurrentMutableSetTests.swift [82:113]


    func testThreadSafetyShouldFailForNormalSet() {
        let normalSet = NSMutableSet()
        normalSet.add(1)
        normalSet.add(10)
        var count = 0
        var sum = 0
        let backgroundThreadEndedExpectation = XCTestExpectation(
            description: "The background thread was ended")
        let mainThreadEndedExpectation = XCTestExpectation(
            description: "The main thread was ended")

        DispatchQueue.global(qos: .background).async {
            normalSet.forEach { item in
                sleep(2)
                guard let value = item as? Int, normalSet.contains(item) else { return }
                count += 1
                sum += value
            }
            backgroundThreadEndedExpectation.fulfill()
        }
        DispatchQueue.main.async {
            sleep(1)
            normalSet.remove(10)
            mainThreadEndedExpectation.fulfill()
        }

        wait(for: [backgroundThreadEndedExpectation, mainThreadEndedExpectation], timeout: 7)
        XCTAssertEqual(count, 1)
        XCTAssertEqual(sum, 1)
        XCTAssertEqual(normalSet.count, 1)
        XCTAssert(normalSet.contains(1))
    }