diff --git a/Split.xcodeproj/project.pbxproj b/Split.xcodeproj/project.pbxproj index 7d6037447..04a276c72 100644 --- a/Split.xcodeproj/project.pbxproj +++ b/Split.xcodeproj/project.pbxproj @@ -353,6 +353,7 @@ 59FB7C35220329B900ECC96A /* SplitFactoryBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59FB7C34220329B900ECC96A /* SplitFactoryBuilderTests.swift */; }; 59FB7C3C2203795F00ECC96A /* LocalhostSplitsParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59FB7C3B2203795F00ECC96A /* LocalhostSplitsParser.swift */; }; 59FB7C3E22037B9400ECC96A /* SpaceDelimitedLocalhostSplitsParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59FB7C3D22037B9400ECC96A /* SpaceDelimitedLocalhostSplitsParser.swift */; }; + 5BF3C2E82DC12E3C00AD2186 /* SplitsSyncHelperTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BF3C2E72DC12E3200AD2186 /* SplitsSyncHelperTest.swift */; }; 9500D9922C56F9BA00383593 /* HostDomainFilterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9500D9912C56F9BA00383593 /* HostDomainFilterTests.swift */; }; 9500D9A92C59297400383593 /* HostDomainFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9500D9A82C59297400383593 /* HostDomainFilter.swift */; }; 9500D9AA2C59382000383593 /* HostDomainFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9500D9A82C59297400383593 /* HostDomainFilter.swift */; }; @@ -1529,6 +1530,7 @@ 59FB7C34220329B900ECC96A /* SplitFactoryBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitFactoryBuilderTests.swift; sourceTree = ""; }; 59FB7C3B2203795F00ECC96A /* LocalhostSplitsParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalhostSplitsParser.swift; sourceTree = ""; }; 59FB7C3D22037B9400ECC96A /* SpaceDelimitedLocalhostSplitsParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpaceDelimitedLocalhostSplitsParser.swift; sourceTree = ""; }; + 5BF3C2E72DC12E3200AD2186 /* SplitsSyncHelperTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitsSyncHelperTest.swift; sourceTree = ""; }; 9500D9912C56F9BA00383593 /* HostDomainFilterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HostDomainFilterTests.swift; sourceTree = ""; }; 9500D9A82C59297400383593 /* HostDomainFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HostDomainFilter.swift; sourceTree = ""; }; 9500D9AC2C5A918300383593 /* split_cache_v5.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = split_cache_v5.xcdatamodel; sourceTree = ""; }; @@ -2747,7 +2749,7 @@ path = Fake; sourceTree = ""; }; - 5912D150219A005400BC698C /* Helpers */ = { + 5912D150219A005400BC698C /* TestsHelpers */ = { isa = PBXGroup; children = ( 95ED4AA2264999BD00FD3569 /* IntegrationHelper.swift */, @@ -2766,7 +2768,7 @@ 952BF5FB278DF66700FF6181 /* TelemetryConfigHelperStub.swift */, 95F7BC282C46A4C800C5F2E4 /* SecurityHelper.swift */, ); - path = Helpers; + path = TestsHelpers; sourceTree = ""; }; 59163B11216396EF00C7AA57 /* Common */ = { @@ -2838,7 +2840,7 @@ 5919017924A273C4005BD12A /* HttpClient */, 595AD1F624D9CDE400A7B750 /* SplitFilter */, 599A6E3222FC67BF00D3D68C /* Integration */, - 5912D150219A005400BC698C /* Helpers */, + 5912D150219A005400BC698C /* TestsHelpers */, 590DF9CD213EB92D0082B94F /* Fake */, 592C6AF1211CBD63002D120C /* Supporting Files */, 592C6ADB211CBB86002D120C /* Resources */, @@ -3348,6 +3350,7 @@ 956A7E26297EC8130080D53C /* Splits */ = { isa = PBXGroup; children = ( + 5BF3C2E72DC12E3200AD2186 /* SplitsSyncHelperTest.swift */, 59F4AABC2513A2E800A1C69A /* SplitsUpdateWorkerTest.swift */, 956D17D0260D266E0037F575 /* SplitsChangesCheckerTest.swift */, 59F4AABE2513A97B00A1C69A /* PeriodicSplitsSyncWorkerTest.swift */, @@ -4664,6 +4667,7 @@ C5977C572BF53D60003E293A /* UnsupportedMatcherIntegrationTest.swift in Sources */, 95B1800527626C70002DC9DF /* TelemetryConfigRecorderWorkerTests.swift in Sources */, 95ABF4C6293522D6006ED016 /* EventsTrackerTest.swift in Sources */, + 5BF3C2E82DC12E3C00AD2186 /* SplitsSyncHelperTest.swift in Sources */, 95ABF4C829352425006ED016 /* EventValidatorStub.swift in Sources */, 59F4AAC42513EFF800A1C69A /* PeriodicMySegmentsSyncWorkerTest.swift in Sources */, 31AA21DE01A000A7C30630F2 /* SseClientTest.swift in Sources */, diff --git a/Split/Api/SplitDatabaseHelper.swift b/Split/Api/SplitDatabaseHelper.swift index a7a03e64a..acbcbc8c2 100644 --- a/Split/Api/SplitDatabaseHelper.swift +++ b/Split/Api/SplitDatabaseHelper.swift @@ -168,6 +168,10 @@ struct SplitDatabaseHelper { static func openPersistentSplitsStorage(database: SplitDatabase) -> PersistentSplitsStorage { return DefaultPersistentSplitsStorage(database: database) } + + static func openPersistentRuleBasedSegmentsStorage(database: SplitDatabase, storage: GeneralInfoStorage) -> PersistentRuleBasedSegmentsStorage { + return DefaultPersistentRuleBasedSegmentsStorage(database: database, generalInfoStorage: storage) + } static func openSplitsStorage(database: SplitDatabase, flagSetsCache: FlagSetsCache) -> SplitsStorage { diff --git a/Split/FetcherEngine/HttpSplitFetcher.swift b/Split/FetcherEngine/HttpSplitFetcher.swift index 1774ebf80..b5fdecfe5 100644 --- a/Split/FetcherEngine/HttpSplitFetcher.swift +++ b/Split/FetcherEngine/HttpSplitFetcher.swift @@ -7,8 +7,8 @@ import Foundation protocol HttpSplitFetcher { - func execute(since: Int64, till: Int64?, headers: HttpHeaders?) throws -> SplitChange - func executeForTargetingRules(since: Int64, till: Int64?, headers: HttpHeaders?) throws -> TargetingRulesChange + func execute(since: Int64, rbSince: Int64?, till: Int64?, headers: HttpHeaders?) throws -> SplitChange + func executeForTargetingRules(since: Int64, rbSince: Int64?, till: Int64?, headers: HttpHeaders?) throws -> TargetingRulesChange } class DefaultHttpSplitFetcher: HttpSplitFetcher { @@ -22,19 +22,19 @@ class DefaultHttpSplitFetcher: HttpSplitFetcher { self.syncHelper = syncHelper } - func execute(since: Int64, till: Int64?, headers: HttpHeaders? = nil) throws -> SplitChange { - let targetingRulesChange = try executeForTargetingRules(since: since, till: till, headers: headers) + func execute(since: Int64, rbSince: Int64? = nil, till: Int64?, headers: HttpHeaders? = nil) throws -> SplitChange { + let targetingRulesChange = try executeForTargetingRules(since: since, rbSince: rbSince, till: till, headers: headers) return targetingRulesChange.featureFlags } - func executeForTargetingRules(since: Int64, till: Int64?, headers: HttpHeaders? = nil) throws -> TargetingRulesChange { + func executeForTargetingRules(since: Int64, rbSince: Int64?, till: Int64?, headers: HttpHeaders? = nil) throws -> TargetingRulesChange { Logger.d("Fetching targeting rules definitions") try syncHelper.checkEndpointReachability(restClient: restClient, resource: resource) let semaphore = DispatchSemaphore(value: 0) var requestResult: DataResult? let startTime = Date.nowMillis() - restClient.getSplitChanges(since: since, till: till, headers: headers) { result in + restClient.getSplitChanges(since: since, rbSince: rbSince, till: till, headers: headers) { result in TimeChecker.logInterval("Time to fetch targeting rules", startTime: startTime) requestResult = result semaphore.signal() diff --git a/Split/FetcherEngine/Refresh/BackgroundSyncWorker.swift b/Split/FetcherEngine/Refresh/BackgroundSyncWorker.swift index a7c113963..4d061e567 100644 --- a/Split/FetcherEngine/Refresh/BackgroundSyncWorker.swift +++ b/Split/FetcherEngine/Refresh/BackgroundSyncWorker.swift @@ -47,23 +47,31 @@ class BackgroundSplitsSyncWorker: BackgroundSyncWorker { private let splitFetcher: HttpSplitFetcher private let splitsStorage: BackgroundSyncSplitsStorage private let persistenSplitsStorage: PersistentSplitsStorage + + private let ruleBasedSegmentsStorage: RuleBasedSegmentsStorage + private let persistentRuleBasedSegmentsStorage: PersistentRuleBasedSegmentsStorage + private let splitChangeProcessor: SplitChangeProcessor private let cacheExpiration: Int64 private let syncHelper: SplitsSyncHelper init(splitFetcher: HttpSplitFetcher, persistentSplitsStorage: PersistentSplitsStorage, + ruleBasedSementsStorage: PersistentRuleBasedSegmentsStorage, splitChangeProcessor: SplitChangeProcessor, cacheExpiration: Int64, splitConfig: SplitClientConfig) { self.persistenSplitsStorage = persistentSplitsStorage + self.persistentRuleBasedSegmentsStorage = ruleBasedSementsStorage self.splitFetcher = splitFetcher self.splitsStorage = BackgroundSyncSplitsStorage(persistentSplitsStorage: persistentSplitsStorage) + self.ruleBasedSegmentsStorage = DefaultRuleBasedSegmentsStorage(persistentStorage: persistentRuleBasedSegmentsStorage) self.splitChangeProcessor = splitChangeProcessor self.cacheExpiration = cacheExpiration self.syncHelper = SplitsSyncHelper(splitFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, splitConfig: splitConfig) } diff --git a/Split/FetcherEngine/Refresh/PeriodicSyncWorker.swift b/Split/FetcherEngine/Refresh/PeriodicSyncWorker.swift index 66065d934..cf1929e43 100644 --- a/Split/FetcherEngine/Refresh/PeriodicSyncWorker.swift +++ b/Split/FetcherEngine/Refresh/PeriodicSyncWorker.swift @@ -141,11 +141,13 @@ class PeriodicSplitsSyncWorker: BasePeriodicSyncWorker { private let splitFetcher: HttpSplitFetcher private let splitsStorage: SplitsStorage + private let ruleBasedSegmentsStorage: RuleBasedSegmentsStorage private let splitChangeProcessor: SplitChangeProcessor private let syncHelper: SplitsSyncHelper init(splitFetcher: HttpSplitFetcher, splitsStorage: SplitsStorage, + ruleBasedSegmentsStorage: RuleBasedSegmentsStorage, splitChangeProcessor: SplitChangeProcessor, timer: PeriodicTimer, eventsManager: SplitEventsManager, @@ -153,9 +155,11 @@ class PeriodicSplitsSyncWorker: BasePeriodicSyncWorker { self.splitFetcher = splitFetcher self.splitsStorage = splitsStorage + self.ruleBasedSegmentsStorage = ruleBasedSegmentsStorage self.splitChangeProcessor = splitChangeProcessor self.syncHelper = SplitsSyncHelper(splitFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, splitConfig: splitConfig) super.init(timer: timer, @@ -168,7 +172,7 @@ class PeriodicSplitsSyncWorker: BasePeriodicSyncWorker { return } - guard let result = try? syncHelper.sync(since: splitsStorage.changeNumber) else { + guard let result = try? syncHelper.sync(since: splitsStorage.changeNumber, rbSince: ruleBasedSegmentsStorage.changeNumber) else { return } if result.success, result.featureFlagsUpdated { diff --git a/Split/FetcherEngine/Refresh/RetryableSyncWorker.swift b/Split/FetcherEngine/Refresh/RetryableSyncWorker.swift index ce0c7b6e7..ee04ec285 100644 --- a/Split/FetcherEngine/Refresh/RetryableSyncWorker.swift +++ b/Split/FetcherEngine/Refresh/RetryableSyncWorker.swift @@ -104,11 +104,13 @@ class RetryableSplitsSyncWorker: BaseRetryableSyncWorker { private let splitFetcher: HttpSplitFetcher private let splitsStorage: SplitsStorage + private let ruleBasedSegmentsStorage: RuleBasedSegmentsStorage private let splitChangeProcessor: SplitChangeProcessor private let syncHelper: SplitsSyncHelper init(splitFetcher: HttpSplitFetcher, splitsStorage: SplitsStorage, + ruleBasedSegmentsStorage: RuleBasedSegmentsStorage, splitChangeProcessor: SplitChangeProcessor, eventsManager: SplitEventsManager, reconnectBackoffCounter: ReconnectBackoffCounter, @@ -116,9 +118,11 @@ class RetryableSplitsSyncWorker: BaseRetryableSyncWorker { self.splitFetcher = splitFetcher self.splitsStorage = splitsStorage + self.ruleBasedSegmentsStorage = ruleBasedSegmentsStorage self.splitChangeProcessor = splitChangeProcessor self.syncHelper = SplitsSyncHelper(splitFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, splitConfig: splitConfig) super.init(eventsManager: eventsManager, @@ -127,7 +131,7 @@ class RetryableSplitsSyncWorker: BaseRetryableSyncWorker { override func fetchFromRemote() throws -> Bool { do { - let result = try syncHelper.sync(since: splitsStorage.changeNumber, clearBeforeUpdate: false) + let result = try syncHelper.sync(since: splitsStorage.changeNumber, rbSince: ruleBasedSegmentsStorage.changeNumber, clearBeforeUpdate: false) if result.success { if !isSdkReadyTriggered() || result.featureFlagsUpdated { @@ -148,6 +152,7 @@ class RetryableSplitsUpdateWorker: BaseRetryableSyncWorker { private let splitsFetcher: HttpSplitFetcher private let splitsStorage: SplitsStorage + private let ruleBasedSegmentsStorage: RuleBasedSegmentsStorage private let splitChangeProcessor: SplitChangeProcessor private let changeNumber: Int64 private let syncHelper: SplitsSyncHelper @@ -155,6 +160,7 @@ class RetryableSplitsUpdateWorker: BaseRetryableSyncWorker { init(splitsFetcher: HttpSplitFetcher, splitsStorage: SplitsStorage, + ruleBasedSegmentsStorage: RuleBasedSegmentsStorage, splitChangeProcessor: SplitChangeProcessor, changeNumber: Int64, eventsManager: SplitEventsManager, @@ -163,12 +169,14 @@ class RetryableSplitsUpdateWorker: BaseRetryableSyncWorker { self.splitsFetcher = splitsFetcher self.splitsStorage = splitsStorage + self.ruleBasedSegmentsStorage = ruleBasedSegmentsStorage self.splitChangeProcessor = splitChangeProcessor self.changeNumber = changeNumber self.changeChecker = DefaultSplitsChangesChecker() self.syncHelper = SplitsSyncHelper(splitFetcher: splitsFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, splitConfig: splitConfig) super.init(eventsManager: eventsManager, @@ -176,13 +184,16 @@ class RetryableSplitsUpdateWorker: BaseRetryableSyncWorker { } override func fetchFromRemote() throws -> Bool { - let storedChangeNumber = splitsStorage.changeNumber - if changeNumber <= storedChangeNumber { + let splitsStoredChangedNumber = splitsStorage.changeNumber + let ruleBasedSegmentsStoredChangeNumber = ruleBasedSegmentsStorage.changeNumber + + if changeNumber <= splitsStoredChangedNumber { //} && rbsChangeNumber <= ruleBasedSegmentsStoredChangeNumber { // TODO: use real variable return true } do { - let result = try syncHelper.sync(since: storedChangeNumber, + let result = try syncHelper.sync(since: splitsStoredChangedNumber, + rbSince: changeNumber, till: changeNumber, clearBeforeUpdate: false, headers: ServiceConstants.controlNoCacheHeader) diff --git a/Split/FetcherEngine/Refresh/SplitBgSynchronizer.swift b/Split/FetcherEngine/Refresh/SplitBgSynchronizer.swift index 7617c2d30..59ff52542 100644 --- a/Split/FetcherEngine/Refresh/SplitBgSynchronizer.swift +++ b/Split/FetcherEngine/Refresh/SplitBgSynchronizer.swift @@ -163,8 +163,11 @@ struct BackgroundSyncExecutor { dbHelper: dbHelper) else { throw GenericError.couldNotCreateCache } + let splitsStorage = SplitDatabaseHelper.openPersistentSplitsStorage(database: splitDatabase) let generalInfoStorage = SplitDatabaseHelper.openGeneralInfoStorage(database: splitDatabase) + + let ruleBasedSegmentsStorage = SplitDatabaseHelper.openPersistentRuleBasedSegmentsStorage(database: splitDatabase, storage: generalInfoStorage) let endpoints = serviceEndpoints ?? ServiceEndpoints.builder().build() let endpointFactory = EndpointFactory(serviceEndpoints: endpoints, apiKey: apiKey, @@ -191,6 +194,7 @@ struct BackgroundSyncExecutor { let changeProcessor = DefaultSplitChangeProcessor(filterBySet: bySetsFilter) self.splitsSyncWorker = BackgroundSplitsSyncWorker(splitFetcher: splitsFetcher, persistentSplitsStorage: splitsStorage, + ruleBasedSementsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: changeProcessor, cacheExpiration: cacheExpiration, splitConfig: SplitClientConfig()) diff --git a/Split/FetcherEngine/Refresh/SplitsSyncHelper.swift b/Split/FetcherEngine/Refresh/SplitsSyncHelper.swift index dde8934d3..76fec448f 100644 --- a/Split/FetcherEngine/Refresh/SplitsSyncHelper.swift +++ b/Split/FetcherEngine/Refresh/SplitsSyncHelper.swift @@ -23,6 +23,7 @@ class SplitsSyncHelper { private let splitFetcher: HttpSplitFetcher private let splitsStorage: SyncSplitsStorage + private let ruleBasedSegmentsStorage: RuleBasedSegmentsStorage private let splitChangeProcessor: SplitChangeProcessor private let splitConfig: SplitClientConfig @@ -40,21 +41,26 @@ class SplitsSyncHelper { init(splitFetcher: HttpSplitFetcher, splitsStorage: SyncSplitsStorage, + ruleBasedSegmentsStorage: RuleBasedSegmentsStorage, splitChangeProcessor: SplitChangeProcessor, splitConfig: SplitClientConfig) { self.splitFetcher = splitFetcher self.splitsStorage = splitsStorage + self.ruleBasedSegmentsStorage = ruleBasedSegmentsStorage self.splitChangeProcessor = splitChangeProcessor self.splitConfig = splitConfig } + // This function is KEY, since it's called from all update contexts func sync(since: Int64, + rbSince: Int64? = nil, till: Int64? = nil, clearBeforeUpdate: Bool = false, headers: HttpHeaders? = nil) throws -> SyncResult { do { let res = try tryToSync(since: since, + rbSince: rbSince, till: till, clearBeforeUpdate: clearBeforeUpdate, headers: headers) @@ -64,6 +70,7 @@ class SplitsSyncHelper { } return try tryToSync(since: res.changeNumber, + rbSince: res.changeNumber, till: res.changeNumber, clearBeforeUpdate: clearBeforeUpdate && res.changeNumber == since, headers: headers, @@ -75,6 +82,7 @@ class SplitsSyncHelper { } func tryToSync(since: Int64, + rbSince: Int64? = nil, till: Int64? = nil, clearBeforeUpdate: Bool = false, headers: HttpHeaders? = nil, @@ -87,9 +95,10 @@ class SplitsSyncHelper { let goalTill = till ?? -10 while attemptCount < maxAttempts { let result = try fetchUntil(since: nextSince, - till: useTillParam ? till : nil, - clearBeforeUpdate: clearBeforeUpdate, - headers: headers) + rbSince: rbSince, + till: useTillParam ? till : nil, + clearBeforeUpdate: clearBeforeUpdate, + headers: headers) nextSince = result.till if nextSince >= goalTill { @@ -105,6 +114,7 @@ class SplitsSyncHelper { } func fetchUntil(since: Int64, + rbSince: Int64? = nil, till: Int64? = nil, clearBeforeUpdate: Bool = false, headers: HttpHeaders? = nil) throws -> FetchResult { @@ -112,10 +122,12 @@ class SplitsSyncHelper { var clearCache = clearBeforeUpdate var firstFetch = true var nextSince = since + // var nextRbSince = rbSince ?? nil //TODO: validate later var featureFlagsUpdated = false while true { clearCache = clearCache && firstFetch let splitChange = try self.splitFetcher.execute(since: nextSince, + rbSince: rbSince, till: till, headers: headers) let newSince = splitChange.since diff --git a/Split/Models/SplitModel/SplitChange.swift b/Split/Models/SplitModel/SplitChange.swift index 556ab1b08..79e20cb70 100644 --- a/Split/Models/SplitModel/SplitChange.swift +++ b/Split/Models/SplitModel/SplitChange.swift @@ -33,4 +33,4 @@ extension SplitChange { let splits = String(describing: self.splits) return "{\nsince: \(since),\ntill: \(String(describing: till)),\nsplits: \(String(describing: splits))\n}" } -} +} diff --git a/Split/Network/HttpClient/HttpDataRequest.swift b/Split/Network/HttpClient/HttpDataRequest.swift index 05e245b87..63ef5a9e5 100644 --- a/Split/Network/HttpClient/HttpDataRequest.swift +++ b/Split/Network/HttpClient/HttpDataRequest.swift @@ -27,8 +27,7 @@ class DefaultHttpDataRequest: BaseHttpRequest, HttpDataRequest { self.data?.append(data) } - func getResponse(completionHandler: @escaping RequestCompletionHandler, - errorHandler: @escaping RequestErrorHandler) -> Self { + func getResponse(completionHandler: @escaping RequestCompletionHandler, errorHandler: @escaping RequestErrorHandler) -> Self { requestQueue.sync { self.completionHandler = completionHandler self.errorHandler = errorHandler diff --git a/Split/Network/HttpClient/HttpParameters.swift b/Split/Network/HttpClient/HttpParameters.swift index b10b2b673..2e5d6edb9 100644 --- a/Split/Network/HttpClient/HttpParameters.swift +++ b/Split/Network/HttpClient/HttpParameters.swift @@ -7,7 +7,7 @@ import Foundation -class HttpParameters: ExpressibleByDictionaryLiteral { +class HttpParameters: ExpressibleByDictionaryLiteral { let order: [String]? let values: [String: Any] diff --git a/Split/Network/RestClient/RestClient+SplitChanges.swift b/Split/Network/RestClient/RestClient+SplitChanges.swift index 55f73df69..896461658 100644 --- a/Split/Network/RestClient/RestClient+SplitChanges.swift +++ b/Split/Network/RestClient/RestClient+SplitChanges.swift @@ -10,39 +10,36 @@ import Foundation protocol RestClientSplitChanges: RestClient { func getSplitChanges(since: Int64, + rbSince: Int64?, till: Int64?, headers: HttpHeaders?, completion: @escaping (DataResult) -> Void) } extension DefaultRestClient: RestClientSplitChanges { - func getSplitChanges(since: Int64, - till: Int64?, - headers: HttpHeaders?, - completion: @escaping (DataResult) -> Void) { - self.execute( - endpoint: endpointFactory.splitChangesEndpoint, - parameters: buildParameters(since: since, till: till), - headers: headers, - completion: completion) + + func getSplitChanges(since: Int64, rbSince: Int64?, till: Int64?, headers: HttpHeaders?, completion: @escaping (DataResult) -> Void) { + + execute(endpoint: endpointFactory.splitChangesEndpoint, + parameters: buildParameters(since: since, rbSince: rbSince, till: till), + headers: headers, + completion: completion) } - private func buildParameters(since: Int64, - till: Int64?) -> HttpParameters { + private func buildParameters(since: Int64, rbSince: Int64?, till: Int64?) -> HttpParameters { + var parameters: [HttpParameter] = [] - if !Spec.flagsSpec.isEmpty() { - parameters.append(HttpParameter(key: "s", value: Spec.flagsSpec)) - } + + if !Spec.flagsSpec.isEmpty() { parameters.append(HttpParameter(key: "s", value: Spec.flagsSpec)) } + // Parameters order is IMPORTANT (if the order is wrong, the CDN cache won't properly work) parameters.append(HttpParameter(key: "since", value: since)) + if rbSince != nil { parameters.append(HttpParameter(key: "rbSince", value: rbSince)) } parameters.append(HttpParameter(key: "sets")) parameters.append(HttpParameter(key: "names")) parameters.append(HttpParameter(key: "prefixes")) - - if let till = till { - parameters.append(HttpParameter(key: "till", value: till)) - } - + if till != nil { parameters.append(HttpParameter(key: "till", value: till)) } + return HttpParameters(parameters) } } diff --git a/Split/Network/RestClient/RestClient.swift b/Split/Network/RestClient/RestClient.swift index b194f8c00..e5465bc99 100644 --- a/Split/Network/RestClient/RestClient.swift +++ b/Split/Network/RestClient/RestClient.swift @@ -42,7 +42,7 @@ class DefaultRestClient: SplitApiRestClient { private let httpClient: HttpClient let endpointFactory: EndpointFactory private let reachabilityChecker: HostReachabilityChecker - + // MARK: - Designated Initializer init(httpClient: HttpClient = RestClientConfiguration.httpClient, endpointFactory: EndpointFactory, @@ -51,44 +51,44 @@ class DefaultRestClient: SplitApiRestClient { self.endpointFactory = endpointFactory self.reachabilityChecker = reachabilityChecker } - + func execute(endpoint: Endpoint, parameters: HttpParameters? = nil, body: Data? = nil, headers: HttpHeaders? = nil, completion: @escaping (DataResult) -> Void) where T: Decodable { - + do { - _ = try httpClient.sendRequest( - endpoint: endpoint, - parameters: parameters, - headers: headers, - body: body) + _ = try httpClient.sendRequest( + endpoint: endpoint, + parameters: parameters, + headers: headers, + body: body) .getResponse(completionHandler: { response in - switch response.result { - case .success(let json): - if json.isNull() { - completion(DataResult { return nil }) - return - } - - do { - let parsedObject = try json.decode(T.self) - completion(DataResult { return parsedObject }) - } catch { - completion(DataResult { throw error }) + switch response.result { + case .success(let json): + if json.isNull() { + completion(DataResult { return nil }) + return + } + + do { + let parsedObject = try json.decode(T.self) + completion(DataResult { return parsedObject }) + } catch { + completion(DataResult { throw error }) + } + case .failure: + completion(DataResult { + if response.code == HttpCode.uriTooLong { + throw HttpError.uriTooLong + } + if response.code >= HttpCode.badRequest, response.code < HttpCode.internalServerError { + throw HttpError.clientRelated(code: response.code, internalCode: InternalHttpErrorCode.noCode) + } + throw HttpError.unknown(code: response.code, message: "unknown") + }) } - case .failure: - completion(DataResult { - if response.code == HttpCode.uriTooLong { - throw HttpError.uriTooLong - } - if response.code >= HttpCode.badRequest, response.code < HttpCode.internalServerError { - throw HttpError.clientRelated(code: response.code, internalCode: InternalHttpErrorCode.noCode) - } - throw HttpError.unknown(code: response.code, message: "unknown") - }) - } }, errorHandler: { error in completion(DataResult { throw error }) }) diff --git a/Split/Network/Streaming/RetryableSplitsUpdateWorkerFactory.swift b/Split/Network/Streaming/RetryableSplitsUpdateWorkerFactory.swift index f392cb35d..840e86f1a 100644 --- a/Split/Network/Streaming/RetryableSplitsUpdateWorkerFactory.swift +++ b/Split/Network/Streaming/RetryableSplitsUpdateWorkerFactory.swift @@ -88,6 +88,7 @@ class DefaultSyncWorkerFactory: SyncWorkerFactory { let backoffCounter = DefaultReconnectBackoffCounter(backoffBase: splitConfig.generalRetryBackoffBase) return RetryableSplitsSyncWorker(splitFetcher: apiFacade.splitsFetcher, splitsStorage: storageContainer.splitsStorage, + ruleBasedSegmentsStorage: storageContainer.ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, eventsManager: eventsManager, reconnectBackoffCounter: backoffCounter, @@ -98,6 +99,7 @@ class DefaultSyncWorkerFactory: SyncWorkerFactory { reconnectBackoffCounter: ReconnectBackoffCounter) -> RetryableSyncWorker { return RetryableSplitsUpdateWorker(splitsFetcher: apiFacade.splitsFetcher, splitsStorage: storageContainer.splitsStorage, + ruleBasedSegmentsStorage: storageContainer.ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, changeNumber: changeNumber, eventsManager: eventsManager, reconnectBackoffCounter: reconnectBackoffCounter, @@ -107,7 +109,9 @@ class DefaultSyncWorkerFactory: SyncWorkerFactory { func createPeriodicSplitsSyncWorker() -> PeriodicSyncWorker { return PeriodicSplitsSyncWorker( - splitFetcher: apiFacade.splitsFetcher, splitsStorage: storageContainer.splitsStorage, + splitFetcher: apiFacade.splitsFetcher, + splitsStorage: storageContainer.splitsStorage, + ruleBasedSegmentsStorage: storageContainer.ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, timer: DefaultPeriodicTimer(interval: splitConfig.featuresRefreshRate), eventsManager: eventsManager, splitConfig: splitConfig) diff --git a/Split/Network/Streaming/SseNotifications.swift b/Split/Network/Streaming/SseNotifications.swift index 19b6522c0..6a87c3601 100644 --- a/Split/Network/Streaming/SseNotifications.swift +++ b/Split/Network/Streaming/SseNotifications.swift @@ -24,6 +24,7 @@ enum NotificationType: Decodable { case splitUpdate case mySegmentsUpdate case myLargeSegmentsUpdate + case ruleBasedSegmentsUpdated case splitKill case occupancy case sseError @@ -43,6 +44,8 @@ enum NotificationType: Decodable { return NotificationType.mySegmentsUpdate case "memberships_ls_update": return NotificationType.myLargeSegmentsUpdate + case "rule_based_segments_updated": + return NotificationType.ruleBasedSegmentsUpdated case "split_kill": return NotificationType.splitKill case "control": @@ -243,15 +246,18 @@ struct SplitsUpdateNotification: NotificationTypeField { } let changeNumber: Int64 let previousChangeNumber: Int64? + let rbsPreviousChangeNumber: Int64? let definition: String? let compressionType: CompressionType? init(changeNumber: Int64, previousChangeNumber: Int64? = nil, definition: String? = nil, + rbsPreviousChangeNumber: Int64? = nil, compressionType: CompressionType? = nil) { self.changeNumber = changeNumber self.previousChangeNumber = previousChangeNumber + self.rbsPreviousChangeNumber = rbsPreviousChangeNumber self.definition = definition self.compressionType = compressionType } @@ -259,6 +265,7 @@ struct SplitsUpdateNotification: NotificationTypeField { enum CodingKeys: String, CodingKey { case changeNumber case previousChangeNumber = "pcn" + case rbsPreviousChangeNumber = "rbsPcn" case definition = "d" case compressionType = "c" } diff --git a/Split/Network/Sync/FeatureFlagsSynchronizer.swift b/Split/Network/Sync/FeatureFlagsSynchronizer.swift index 7139017ef..4701a6737 100644 --- a/Split/Network/Sync/FeatureFlagsSynchronizer.swift +++ b/Split/Network/Sync/FeatureFlagsSynchronizer.swift @@ -8,6 +8,7 @@ import Foundation +// TODO: Change name because it will protocol FeatureFlagsSynchronizer { func load() func synchronize() @@ -100,7 +101,7 @@ class DefaultFeatureFlagsSynchronizer: FeatureFlagsSynchronizer { splitsSyncWorker.start() } - func synchronize(changeNumber: Int64) { + func synchronize(changeNumber: Int64) { //TODO: use a new struct with the 2 changeNumbers if isDestroyed.value || !splitConfig.syncEnabled { return } diff --git a/Split/Network/Sync/SyncCommons.swift b/Split/Network/Sync/SyncCommons.swift index 2dafbba7a..fb3313ae9 100644 --- a/Split/Network/Sync/SyncCommons.swift +++ b/Split/Network/Sync/SyncCommons.swift @@ -24,8 +24,8 @@ struct SplitStorageContainer { let persistentHashedImpressionsStorage: PersistentHashedImpressionsStorage let hashedImpressionsStorage: HashedImpressionsStorage let generalInfoStorage: GeneralInfoStorage - let ruleBasedSegmentsStorage: RuleBasedSegmentsStorage? - let persistentRuleBasedSegmentsStorage: PersistentRuleBasedSegmentsStorage? + let ruleBasedSegmentsStorage: RuleBasedSegmentsStorage + let persistentRuleBasedSegmentsStorage: PersistentRuleBasedSegmentsStorage } protocol ImpressionLogger { diff --git a/Split/Storage/Splits/ProcessedSplitChange.swift b/Split/Storage/Splits/ProcessedSplitChange.swift index 986afd6d7..9b71c1c0b 100644 --- a/Split/Storage/Splits/ProcessedSplitChange.swift +++ b/Split/Storage/Splits/ProcessedSplitChange.swift @@ -26,6 +26,7 @@ class DefaultSplitChangeProcessor: SplitChangeProcessor { filterSet = filterBySet?.values.asSet() } + // Sorts Splits between active and archived func process(_ splitChange: SplitChange) -> ProcessedSplitChange { var active = [Split]() diff --git a/SplitTests/Fake/Network/HttpClientMock.swift b/SplitTests/Fake/Network/HttpClientMock.swift index 4a1fc62ab..8b4475fa8 100644 --- a/SplitTests/Fake/Network/HttpClientMock.swift +++ b/SplitTests/Fake/Network/HttpClientMock.swift @@ -18,9 +18,11 @@ class HttpClientMock: HttpClient { var httpSession: HttpSession var streamReqExp: XCTestExpectation? var datasReqExp: XCTestExpectation? - + var performedRequests: [HttpDataRequest] + init(session: HttpSession, dataRequest: HttpDataRequest? = nil, streamRequest: HttpStreamRequest? = nil) { self.httpSession = session + self.performedRequests = [] if let r = dataRequest { self.httpDataRequest = r @@ -35,25 +37,27 @@ class HttpClientMock: HttpClient { } } - func sendRequest(endpoint: Endpoint, parameters: HttpParameters?, - headers: [String: String]?, body: Data?) throws -> HttpDataRequest { + func sendRequest(endpoint: Endpoint, parameters: HttpParameters?, headers: [String: String]?, body: Data?) throws -> HttpDataRequest { - if throwOnSend { - throw HttpError.unknown(code: -1, message: "throw on send mock exception") - } + if throwOnSend { throw HttpError.unknown(code: -1, message: "throw on send mock exception") } + + //httpDataRequest = try DefaultHttpDataRequest(session: httpSession, url: dummyUrl(), method: .post, parameters: parameters, headers: headers) + + httpDataRequest = try DefaultHttpDataRequest(session: httpSession, url: endpoint.url, method: .get, parameters: parameters, headers: headers) + return httpDataRequest } - func sendStreamRequest(endpoint: Endpoint, parameters: HttpParameters?, - headers: [String: String]?) throws -> HttpStreamRequest { + func sendStreamRequest(endpoint: Endpoint, parameters: HttpParameters?, headers: [String: String]?) throws -> HttpStreamRequest { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { if let exp = self.streamReqExp { exp.fulfill() } } - if throwOnSend { - throw HttpError.unknown(code: -1, message: "throw on send mock exception") - } + + if throwOnSend { throw HttpError.unknown(code: -1, message: "throw on send mock exception") } + return httpStreamRequest } diff --git a/SplitTests/Fake/Network/HttpSessionMock.swift b/SplitTests/Fake/Network/HttpSessionMock.swift index 9aad4b603..a53eac752 100644 --- a/SplitTests/Fake/Network/HttpSessionMock.swift +++ b/SplitTests/Fake/Network/HttpSessionMock.swift @@ -11,12 +11,12 @@ import Foundation class HttpSessionMock: HttpSession { - func finalize() { - } - - private (set) var dataTaskCallCount: Int = 0 + private(set) var dataTaskCallCount: Int = 0 + func startTask(with request: HttpRequest) -> HttpTask? { dataTaskCallCount+=1 return HttpTaskMock(identifier: 100) } + + func finalize() {} } diff --git a/SplitTests/Fake/Network/HttpTaskMock.swift b/SplitTests/Fake/Network/HttpTaskMock.swift index 4b2c797e8..5c1a0a592 100644 --- a/SplitTests/Fake/Network/HttpTaskMock.swift +++ b/SplitTests/Fake/Network/HttpTaskMock.swift @@ -16,7 +16,5 @@ class HttpTaskMock: HttpTask { self.identifier = identifier } - func cancel() { - } - + func cancel() {} } diff --git a/SplitTests/Fake/Network/RestClientStub.swift b/SplitTests/Fake/Network/RestClientStub.swift index 4d767011d..106b5084b 100644 --- a/SplitTests/Fake/Network/RestClientStub.swift +++ b/SplitTests/Fake/Network/RestClientStub.swift @@ -55,7 +55,7 @@ extension RestClientStub: RestClient { } extension RestClientStub: RestClientSplitChanges { - func getSplitChanges(since: Int64, till: Int64?, headers: HttpHeaders?, completion: @escaping (DataResult) -> Void) { + func getSplitChanges(since: Int64, rbSince: Int64?, till: Int64?, headers: HttpHeaders?, completion: @escaping (DataResult) -> Void) { if splitChanges.count == 0 { completion(DataResult.success(value: nil)) return diff --git a/SplitTests/Fake/Service/FeatureFlagsPayloadDecoderMock.swift b/SplitTests/Fake/Service/FeatureFlagsPayloadDecoderMock.swift index 34afef5bf..7e290c729 100644 --- a/SplitTests/Fake/Service/FeatureFlagsPayloadDecoderMock.swift +++ b/SplitTests/Fake/Service/FeatureFlagsPayloadDecoderMock.swift @@ -10,8 +10,10 @@ import Foundation @testable import Split class FeatureFlagsPayloadDecoderMock: FeatureFlagsPayloadDecoder { + let helper = SplitHelper() func decode(payload: String, compressionUtil: CompressionUtil) throws -> Split { return helper.createDefaultSplit(named: "dummy_split") } + } diff --git a/SplitTests/Fake/Service/HttpSplitFetcherStub.swift b/SplitTests/Fake/Service/HttpSplitFetcherStub.swift index 8d2eb422c..df4587459 100644 --- a/SplitTests/Fake/Service/HttpSplitFetcherStub.swift +++ b/SplitTests/Fake/Service/HttpSplitFetcherStub.swift @@ -14,14 +14,28 @@ class HttpSplitFetcherStub: HttpSplitFetcher { var httpError: HttpError? var hitIndex = 0 var fetchCallCount: Int = 0 + var targetingRulesFetched = false - func execute(since: Int64, till: Int64?, headers: HttpHeaders?) throws -> SplitChange { - fetchCallCount+=1 - if let e = httpError { - throw e + func execute(since: Int64, rbSince: Int64? = nil, till: Int64?, headers: HttpHeaders?) throws -> SplitChange { + + + + // Throw error + if let err = httpError { throw err } + + + + // Process Rule Based Segmetns + if rbSince != nil { + return try executeForTargetingRules(since: since, rbSince: rbSince, till: till, headers: headers).featureFlags + } else { + fetchCallCount+=1 } + + // Process flags let hit = hitIndex hitIndex+=1 + if splitChanges.count == 0 { throw GenericError.unknown(message: "null feature flag changes") } @@ -41,7 +55,9 @@ class HttpSplitFetcherStub: HttpSplitFetcher { } } - func executeForTargetingRules(since: Int64, till: Int64?, headers: HttpHeaders?) throws -> TargetingRulesChange { + func executeForTargetingRules(since: Int64, rbSince: Int64?, till: Int64?, headers: HttpHeaders?) throws -> TargetingRulesChange { + targetingRulesFetched = true + // Reuse the existing execute method to get the SplitChange let splitChange = try execute(since: since, till: till, headers: headers) diff --git a/SplitTests/Integration/Api/FlagSetsIntegrationTest.swift b/SplitTests/Integration/Api/FlagSetsIntegrationTest.swift index 94a0b1373..7c2b513dd 100644 --- a/SplitTests/Integration/Api/FlagSetsIntegrationTest.swift +++ b/SplitTests/Integration/Api/FlagSetsIntegrationTest.swift @@ -166,7 +166,7 @@ class FlagSetsIntegrationTests: XCTestCase { try bodyTest(syncConfig: syncConfig) - XCTAssertEqual("since=-1&sets=set_2,set_3,set_ww,set_x", querystring) + XCTAssertEqual("since=-1&rbSince=-1&sets=set_2,set_3,set_ww,set_x", querystring) } func testInitialQuerystringWithSpec() throws { @@ -178,7 +178,7 @@ class FlagSetsIntegrationTests: XCTestCase { try bodyTest(syncConfig: syncConfig) - XCTAssertEqual("s=1.1&since=-1&sets=set_2,set_3,set_ww,set_x", querystring) + XCTAssertEqual("s=1.1&since=-1&rbSince=-1&sets=set_2,set_3,set_ww,set_x", querystring) } func testTotalAndInvalidFlagSetsTelemetry() throws { @@ -193,7 +193,7 @@ class FlagSetsIntegrationTests: XCTestCase { wait(for: [telemetryConfigExp!], timeout: 3) - XCTAssertEqual("since=-1&sets=a,c,d", querystring) + XCTAssertEqual("since=-1&rbSince=-1&sets=a,c,d", querystring) XCTAssertEqual(7, telemetryConfigSent?.flagSetsTotal ?? -1) XCTAssertEqual(4, telemetryConfigSent?.flagSetsInvalid ?? -1) } @@ -223,7 +223,7 @@ class FlagSetsIntegrationTests: XCTestCase { destroyTest(client: client) - XCTAssertEqual("since=-1&sets=c,nset1,nset2,set1,set10,set2,set20", querystring) + XCTAssertEqual("since=-1&rbSince=-1&sets=c,nset1,nset2,set1,set10,set2,set20", querystring) XCTAssertEqual(expLatencies, telemetryStatsSent?.methodLatencies?.treatmentsByFlagSet ?? []) XCTAssertEqual(expLatencies, telemetryStatsSent?.methodLatencies?.treatmentsByFlagSets ?? []) XCTAssertEqual(expLatencies, telemetryStatsSent?.methodLatencies?.treatmentsWithConfigByFlagSet ?? []) diff --git a/SplitTests/Integration/Sync/CdnByPassTest.swift b/SplitTests/Integration/Sync/CdnByPassTest.swift index 6b413855d..66f3c50b3 100644 --- a/SplitTests/Integration/Sync/CdnByPassTest.swift +++ b/SplitTests/Integration/Sync/CdnByPassTest.swift @@ -53,12 +53,12 @@ class CdnByPassTest: XCTestCase { func testInit() { Spec.flagsSpec = "1.1" - performTest(expectedRequestUrl: "https://sdk.split.io/api/splitChanges?s=1.1&since=1200&sets=c,nset1,nset2&till=1200") + performTest(expectedRequestUrl: "https://sdk.split.io/api/splitChanges?s=1.1&since=1200&rbSince=1200&sets=c,nset1,nset2&till=1200") } func testInitWithoutSpec() { Spec.flagsSpec = "" - performTest(expectedRequestUrl: "https://sdk.split.io/api/splitChanges?since=1200&sets=c,nset1,nset2&till=1200") + performTest(expectedRequestUrl: "https://sdk.split.io/api/splitChanges?since=1200&rbSince=1200&sets=c,nset1,nset2&till=1200") } private func performTest(expectedRequestUrl: String) { diff --git a/SplitTests/Integration/Sync/FetchSpecificSplitsTest.swift b/SplitTests/Integration/Sync/FetchSpecificSplitsTest.swift index 33ad1b2e3..4f22997b4 100644 --- a/SplitTests/Integration/Sync/FetchSpecificSplitsTest.swift +++ b/SplitTests/Integration/Sync/FetchSpecificSplitsTest.swift @@ -37,25 +37,26 @@ class FetchSpecificSplitsTest: XCTestCase { func testBothFilters() { let syncConfig = SyncConfig.builder() .addSplitFilter(SplitFilter.byName(["s1", "s2", "s3"])) - .addSplitFilter(SplitFilter.byPrefix(["s1", "s2", "s3"])) - .build() - urlQueryStringTest(syncConfig: syncConfig, expectedResult: "/splitChanges?s=\(Spec.flagsSpec)&since=-1&names=s1,s2,s3&prefixes=s1,s2,s3") + .addSplitFilter(SplitFilter.byPrefix(["s1", "s2", "s3"])).build() + urlQueryStringTest(syncConfig: syncConfig, expectedResult: "/splitChanges?s=\(Spec.flagsSpec)&since=-1&rbSince=-1&names=s1,s2,s3&prefixes=s1,s2,s3") } func testByNamesFilter() { let syncConfig = SyncConfig.builder() - .addSplitFilter(SplitFilter.byName(["s1", "s2", "s3"])) - .build() - urlQueryStringTest(syncConfig: syncConfig, expectedResult: "/splitChanges?s=\(Spec.flagsSpec)&since=-1&names=s1,s2,s3") + .addSplitFilter(SplitFilter.byName(["s1", "s2", "s3"])).build() + urlQueryStringTest(syncConfig: syncConfig, expectedResult: "/splitChanges?s=\(Spec.flagsSpec)&since=-1&rbSince=-1&names=s1,s2,s3") } func testByPrefixFilter() { let syncConfig = SyncConfig.builder() - .addSplitFilter(SplitFilter.byPrefix(["s1", "s2", "s3"])) - .build() - urlQueryStringTest(syncConfig: syncConfig, expectedResult: "/splitChanges?s=\(Spec.flagsSpec)&since=-1&prefixes=s1,s2,s3") + .addSplitFilter(SplitFilter.byPrefix(["s1", "s2", "s3"])).build() + urlQueryStringTest(syncConfig: syncConfig, expectedResult: "/splitChanges?s=\(Spec.flagsSpec)&since=-1&rbSince=-1&prefixes=s1,s2,s3") + } + + func testRuleBasedSegmentsURL() { + let syncConfig = SyncConfig.builder().build() + urlQueryStringTest(syncConfig: syncConfig, expectedResult: "/splitChanges?s=\(Spec.flagsSpec)&since=-1&rbSince=-1") } - func urlQueryStringTest(syncConfig: SyncConfig, expectedResult: String) { @@ -91,9 +92,9 @@ class FetchSpecificSplitsTest: XCTestCase { wait(for: [sdkReadyExpectation], timeout: 40) XCTAssertTrue(sdkReadyFired) - XCTAssertEqual("\(serverUrl)\(expectedResult)", splitsRequestUrl) - - + + XCTAssertTrue("\(serverUrl)\(expectedResult)" == splitsRequestUrl) + let semaphore = DispatchSemaphore(value: 0) client?.destroy(completion: { _ = semaphore.signal() @@ -119,10 +120,9 @@ class FetchSpecificSplitsTest: XCTestCase { private func buildTestDispatcher() -> HttpClientTestDispatcher { return { request in if request.isSplitEndpoint() { - //self.splitsRequestUrl = String(request.url.absoluteString.suffix(request.url.absoluteString.count - 17)) self.splitsRequestUrl = String(request.url.absoluteString) let since = self.lastChangeNumber - return TestDispatcherResponse(code: 200, data: Data(IntegrationHelper.emptySplitChanges(since: since, till: since).utf8)) + return TestDispatcherResponse(code: 200, data: Data(IntegrationHelper.emptySplitChanges(since: since, rbSince: since, till: since).utf8)) } if request.isMySegmentsEndpoint() { diff --git a/SplitTests/Integration/streaming/WatchOS.xctestplan b/SplitTests/Integration/streaming/WatchOS.xctestplan index 0e2c8b227..df42bbfff 100644 --- a/SplitTests/Integration/streaming/WatchOS.xctestplan +++ b/SplitTests/Integration/streaming/WatchOS.xctestplan @@ -1,1120 +1,1122 @@ { - "configurations": [ + "configurations" : [ { - "id": "1582CBF6-2C3F-45DB-A818-CE12E1269C80", - "name": "Configuration 1", - "options": {} + "id" : "1582CBF6-2C3F-45DB-A818-CE12E1269C80", + "name" : "Configuration 1", + "options" : { + + } } ], - "defaultOptions": { - "codeCoverage": false + "defaultOptions" : { + "codeCoverage" : false }, - "testTargets": [ + "testTargets" : [ { - "target": { - "containerPath": "container:Split.xcodeproj", - "identifier": "592C6AA4211B6C99002D120C", - "name": "SplitTests" - }, - "skippedTests": [ + "skippedTests" : [ "AnyValueValidatorTests", - "AnyValueValidatorTests/testInvalidListValues()", - "AnyValueValidatorTests/testInvalidPrimitiveValues()", - "AnyValueValidatorTests/testValidListValues()", - "AnyValueValidatorTests/testValidPrimitiveValues()", + "AnyValueValidatorTests\/testInvalidListValues()", + "AnyValueValidatorTests\/testInvalidPrimitiveValues()", + "AnyValueValidatorTests\/testValidListValues()", + "AnyValueValidatorTests\/testValidPrimitiveValues()", "ApiKeyValidatorTests", - "ApiKeyValidatorTests/testEmptyKey()", - "ApiKeyValidatorTests/testNull()", - "ApiKeyValidatorTests/testValid()", + "ApiKeyValidatorTests\/testEmptyKey()", + "ApiKeyValidatorTests\/testNull()", + "ApiKeyValidatorTests\/testValid()", "AttributesDaoTest", - "AttributesDaoTest/testDataIsEncryptedInDb()", - "AttributesDaoTest/testGetInvalidKeyAes128Cbc()", - "AttributesDaoTest/testGetInvalidKeyPlainText()", - "AttributesDaoTest/testRemoveAllAes128Cbc()", - "AttributesDaoTest/testRemoveAllPlainText()", - "AttributesDaoTest/testUpdateGetAes128Cbc()", - "AttributesDaoTest/testUpdateGetPlainText()", + "AttributesDaoTest\/testDataIsEncryptedInDb()", + "AttributesDaoTest\/testGetInvalidKeyAes128Cbc()", + "AttributesDaoTest\/testGetInvalidKeyPlainText()", + "AttributesDaoTest\/testRemoveAllAes128Cbc()", + "AttributesDaoTest\/testRemoveAllPlainText()", + "AttributesDaoTest\/testUpdateGetAes128Cbc()", + "AttributesDaoTest\/testUpdateGetPlainText()", "AttributesEvaluationTest", - "AttributesEvaluationTest/testAttributesPersistentedCorrectly()", - "AttributesEvaluationTest/testEvaluationPrecedence()", - "AttributesEvaluationTest/testPersistentEvalNoAttributesSeveralOperations()", + "AttributesEvaluationTest\/testAttributesPersistentedCorrectly()", + "AttributesEvaluationTest\/testEvaluationPrecedence()", + "AttributesEvaluationTest\/testPersistentEvalNoAttributesSeveralOperations()", "AttributesStorageTests", - "AttributesStorageTests/testClear()", - "AttributesStorageTests/testNoLoaded()", - "AttributesStorageTests/testRemove()", - "AttributesStorageTests/testUpdateAttributes()", - "AttributesStorageTests/testUpdateEmptyAttributes()", + "AttributesStorageTests\/testClear()", + "AttributesStorageTests\/testNoLoaded()", + "AttributesStorageTests\/testRemove()", + "AttributesStorageTests\/testUpdateAttributes()", + "AttributesStorageTests\/testUpdateEmptyAttributes()", "Base64UtilsTest", - "Base64UtilsTest/testBasicUrlEncoded()", - "Base64UtilsTest/testEmpty()", - "Base64UtilsTest/testNil()", - "Base64UtilsTest/testRealToken()", + "Base64UtilsTest\/testBasicUrlEncoded()", + "Base64UtilsTest\/testEmpty()", + "Base64UtilsTest\/testNil()", + "Base64UtilsTest\/testRealToken()", "BetweenSemverMatcherTest", - "BetweenSemverMatcherTest/testGeneralMatches()", - "BetweenSemverMatcherTest/testMatchShouldReturnFalseWhenGreater()", - "BetweenSemverMatcherTest/testMatchShouldReturnFalseWhenLess()", - "BetweenSemverMatcherTest/testMatchShouldReturnTrueWhenBetween()", - "BetweenSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenGreater()", - "BetweenSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenLess()", - "BetweenSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenBetween()", - "BetweenSemverMatcherTest/testMatchWithNullEndTargetShouldReturnFalse()", - "BetweenSemverMatcherTest/testMatchWithNullKeyShouldReturnFalse()", - "BetweenSemverMatcherTest/testMatchWithNullStartTargetShouldReturnFalse()", - "BetweenSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenGreater()", - "BetweenSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenLess()", - "BetweenSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenBetween()", + "BetweenSemverMatcherTest\/testGeneralMatches()", + "BetweenSemverMatcherTest\/testMatchShouldReturnFalseWhenGreater()", + "BetweenSemverMatcherTest\/testMatchShouldReturnFalseWhenLess()", + "BetweenSemverMatcherTest\/testMatchShouldReturnTrueWhenBetween()", + "BetweenSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenGreater()", + "BetweenSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenLess()", + "BetweenSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenBetween()", + "BetweenSemverMatcherTest\/testMatchWithNullEndTargetShouldReturnFalse()", + "BetweenSemverMatcherTest\/testMatchWithNullKeyShouldReturnFalse()", + "BetweenSemverMatcherTest\/testMatchWithNullStartTargetShouldReturnFalse()", + "BetweenSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenGreater()", + "BetweenSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenLess()", + "BetweenSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenBetween()", "BlockingQueueTest", - "BlockingQueueTest/testAddAndTake()", - "BlockingQueueTest/testInterrupt()", + "BlockingQueueTest\/testAddAndTake()", + "BlockingQueueTest\/testInterrupt()", "BucketSplitTest", - "BucketSplitTest/testMultiClientBuckets()", + "BucketSplitTest\/testMultiClientBuckets()", "ByKeyAttributesStorageTests", - "ByKeyAttributesStorageTests/testClear()", - "ByKeyAttributesStorageTests/testGetAttributesAfterLoad()", - "ByKeyAttributesStorageTests/testNoLoaded()", - "ByKeyAttributesStorageTests/testRemove()", - "ByKeyAttributesStorageTests/testUpdateAttributes()", - "ByKeyAttributesStorageTests/testUpdateEmptyAttributes()", + "ByKeyAttributesStorageTests\/testClear()", + "ByKeyAttributesStorageTests\/testGetAttributesAfterLoad()", + "ByKeyAttributesStorageTests\/testNoLoaded()", + "ByKeyAttributesStorageTests\/testRemove()", + "ByKeyAttributesStorageTests\/testUpdateAttributes()", + "ByKeyAttributesStorageTests\/testUpdateEmptyAttributes()", "ByKeyFacadeTest", - "ByKeyFacadeTest/testAppendRemove()", - "ByKeyFacadeTest/testDestroy()", - "ByKeyFacadeTest/testForceSync()", - "ByKeyFacadeTest/testLoadDataFromCache()", - "ByKeyFacadeTest/testNoPeriodicSync()", - "ByKeyFacadeTest/testPeriodicStartPauseResumeStop()", - "ByKeyFacadeTest/testPeriodicStartStop()", - "ByKeyFacadeTest/testStartSyncForKey()", - "ByKeyFacadeTest/testStartSyncForKeyPolling()", - "ByKeyFacadeTest/testSynchronize()", + "ByKeyFacadeTest\/testAppendRemove()", + "ByKeyFacadeTest\/testDestroy()", + "ByKeyFacadeTest\/testForceSync()", + "ByKeyFacadeTest\/testLoadDataFromCache()", + "ByKeyFacadeTest\/testNoPeriodicSync()", + "ByKeyFacadeTest\/testPeriodicStartPauseResumeStop()", + "ByKeyFacadeTest\/testPeriodicStartStop()", + "ByKeyFacadeTest\/testStartSyncForKey()", + "ByKeyFacadeTest\/testStartSyncForKeyPolling()", + "ByKeyFacadeTest\/testSynchronize()", "ByKeyMySegmentsStorageTests", - "ByKeyMySegmentsStorageTests/testGetMySegmentsAfterLoad()", - "ByKeyMySegmentsStorageTests/testNoLoaded()", - "ByKeyMySegmentsStorageTests/testUpdateEmptySegments()", - "ByKeyMySegmentsStorageTests/testUpdateSegments()", + "ByKeyMySegmentsStorageTests\/testGetMySegmentsAfterLoad()", + "ByKeyMySegmentsStorageTests\/testNoLoaded()", + "ByKeyMySegmentsStorageTests\/testUpdateEmptySegments()", + "ByKeyMySegmentsStorageTests\/testUpdateSegments()", "CdnByPassTest", - "CdnByPassTest/testInit()", - "CdnByPassTest/testInitWithoutSpec()", + "CdnByPassTest\/testInit()", + "CdnByPassTest\/testInitWithoutSpec()", "CertificatePinningConfigTests", - "CertificatePinningConfigTests/testAddCertificateAndHashes()", - "CertificatePinningConfigTests/testAddWrongCertificate()", - "CertificatePinningConfigTests/testAddWrongStringHash()", - "CertificatePinningConfigTests/testAddWrongStringHashFormatHash()", - "CertificatePinningConfigTests/testAddWrongStringHashType()", + "CertificatePinningConfigTests\/testAddCertificateAndHashes()", + "CertificatePinningConfigTests\/testAddWrongCertificate()", + "CertificatePinningConfigTests\/testAddWrongStringHash()", + "CertificatePinningConfigTests\/testAddWrongStringHashFormatHash()", + "CertificatePinningConfigTests\/testAddWrongStringHashType()", "CipherTest", - "CipherTest/testBasicEncryptDecrypt()", - "CipherTest/testEventEncryptDecrypt()", - "CipherTest/testImpressionEncryptDecrypt()", - "CipherTest/testJsonSplitEncryptDecrypt()", - "CipherTest/testVeryLongTextEncryptDecrypt()", + "CipherTest\/testBasicEncryptDecrypt()", + "CipherTest\/testEventEncryptDecrypt()", + "CipherTest\/testImpressionEncryptDecrypt()", + "CipherTest\/testJsonSplitEncryptDecrypt()", + "CipherTest\/testVeryLongTextEncryptDecrypt()", "ComputeProcessTest", - "ComputeProcessTest/testOneLessThanMinProcess()", - "ComputeProcessTest/testOneProcessEqualsMin()", - "ComputeProcessTest/testTwoProcess()", - "ComputeProcessTest/testTwoProcessEdge()", + "ComputeProcessTest\/testOneLessThanMinProcess()", + "ComputeProcessTest\/testOneProcessEqualsMin()", + "ComputeProcessTest\/testTwoProcess()", + "ComputeProcessTest\/testTwoProcessEdge()", "ConcurrentSetTests", - "ConcurrentSetTests/testDeleteAll()", - "ConcurrentSetTests/testInsert()", - "ConcurrentSetTests/testSet()", - "ConcurrentSetTests/testTakeAll()", - "ConfigTest/testImpressionsModeEmpty()", - "ConfigTest/testImpressionsModeInvalid()", - "ConfigTest/testImpressionsModedebug()", - "ConfigTest/testImpressionsModenone()", - "ConfigTest/testImpressionsModeoptimized()", + "ConcurrentSetTests\/testDeleteAll()", + "ConcurrentSetTests\/testInsert()", + "ConcurrentSetTests\/testSet()", + "ConcurrentSetTests\/testTakeAll()", + "ConfigTest\/testImpressionsModeEmpty()", + "ConfigTest\/testImpressionsModeInvalid()", + "ConfigTest\/testImpressionsModedebug()", + "ConfigTest\/testImpressionsModenone()", + "ConfigTest\/testImpressionsModeoptimized()", "CountsRecorderCountWorkerTests", - "CountsRecorderCountWorkerTests/testFailToSendSome()", - "CountsRecorderCountWorkerTests/testSendNoImpressions()", - "CountsRecorderCountWorkerTests/testSendOneImpression()", - "CountsRecorderCountWorkerTests/testSendSuccess()", + "CountsRecorderCountWorkerTests\/testFailToSendSome()", + "CountsRecorderCountWorkerTests\/testSendNoImpressions()", + "CountsRecorderCountWorkerTests\/testSendOneImpression()", + "CountsRecorderCountWorkerTests\/testSendSuccess()", "CredentialPinParserTests", - "CredentialPinParserTests/testPinsForHost()", + "CredentialPinParserTests\/testPinsForHost()", "DbCipherTest", - "DbCipherTest/testEncryptDecryptDb()", + "DbCipherTest\/testEncryptDecryptDb()", "DbForDifferentApiKeysTest", - "DbForDifferentApiKeysTest/testInitialization()", - "DecompressionTest/testGzipAllHeaders()", - "DecompressionTest/testGzipCompressionMethodHeader()", - "DecompressionTest/testGzipHeaderComments()", - "DecompressionTest/testGzipHeaderCrc16()", - "DecompressionTest/testGzipHeaderExtraField()", - "DecompressionTest/testGzipHeaderFileName()", - "DecompressionTest/testGzipIncorrectHeader()", - "DecompressionTest/testLoremIpsumGzip()", - "DecompressionTest/testLoremIpsumZlib()", - "DecompressionTest/testZlibCompressionMethodHeader()", + "DbForDifferentApiKeysTest\/testInitialization()", + "DecompressionTest\/testGzipAllHeaders()", + "DecompressionTest\/testGzipCompressionMethodHeader()", + "DecompressionTest\/testGzipHeaderComments()", + "DecompressionTest\/testGzipHeaderCrc16()", + "DecompressionTest\/testGzipHeaderExtraField()", + "DecompressionTest\/testGzipHeaderFileName()", + "DecompressionTest\/testGzipIncorrectHeader()", + "DecompressionTest\/testLoremIpsumGzip()", + "DecompressionTest\/testLoremIpsumZlib()", + "DecompressionTest\/testZlibCompressionMethodHeader()", "EndpointFactoryTest", - "EndpointFactoryTest/testMySegmentsEndpoint()", - "EndpointFactoryTest/testMySegmentsEndpointSlashKeyEncoding()", - "EndpointFactoryTest/testRecordEventsEndpoint()", - "EndpointFactoryTest/testRecordImpressionsEndpoint()", - "EndpointFactoryTest/testSplitChangesEndpoint()", - "EndpointFactoryTest/testStreamingAuthEndpoint()", - "EndpointFactoryTest/testStreamingEndpoint()", - "EndpointFactoryTest/testTelemetryConfigEndpoint()", - "EndpointFactoryTest/testTelemetryUsageEndpoint()", + "EndpointFactoryTest\/testMySegmentsEndpoint()", + "EndpointFactoryTest\/testMySegmentsEndpointSlashKeyEncoding()", + "EndpointFactoryTest\/testRecordEventsEndpoint()", + "EndpointFactoryTest\/testRecordImpressionsEndpoint()", + "EndpointFactoryTest\/testSplitChangesEndpoint()", + "EndpointFactoryTest\/testStreamingAuthEndpoint()", + "EndpointFactoryTest\/testStreamingEndpoint()", + "EndpointFactoryTest\/testTelemetryConfigEndpoint()", + "EndpointFactoryTest\/testTelemetryUsageEndpoint()", "EndpointTest", - "EndpointTest/testHeadersEndpointBuild()", - "EndpointTest/testPostEndpointBuild()", - "EqualToSemverMatcherTest/testGeneralUnsuccessfulMatches()", - "EqualToSemverMatcherTest/testMatchShouldReturnFalseWhenKeyIsNull()", - "EqualToSemverMatcherTest/testMatchShouldReturnFalseWhenPatchDiffers()", - "EqualToSemverMatcherTest/testMatchShouldReturnFalseWhenTargetIsNull()", - "EqualToSemverMatcherTest/testMatchShouldReturnTrueWhenVersionsAreEqual()", - "EqualToSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenVersionsDiffer()", - "EqualToSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenVersionsAreEqual()", - "EqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenVersionsDiffer()", - "EqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenVersionsAreEqual()", + "EndpointTest\/testHeadersEndpointBuild()", + "EndpointTest\/testPostEndpointBuild()", + "EqualToSemverMatcherTest\/testGeneralUnsuccessfulMatches()", + "EqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenKeyIsNull()", + "EqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenPatchDiffers()", + "EqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenTargetIsNull()", + "EqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenVersionsAreEqual()", + "EqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenVersionsDiffer()", + "EqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenVersionsAreEqual()", + "EqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenVersionsDiffer()", + "EqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenVersionsAreEqual()", "EvaluatorTests", - "EvaluatorTests/testAlgoLegacy()", - "EvaluatorTests/testAlgoMurmur3()", - "EvaluatorTests/testAlgoNull()", - "EvaluatorTests/testAllocation1Percent()", - "EvaluatorTests/testBrokenSplit()", - "EvaluatorTests/testDefaultRule()", - "EvaluatorTests/testDefaultTreatment()", - "EvaluatorTests/testDefaultTreatmentFacundo()", - "EvaluatorTests/testEqualsToSetConfigTreatment()", - "EvaluatorTests/testEqualsToSetNoConfigTreatment()", - "EvaluatorTests/testInLargeSegmentWhitelist()", - "EvaluatorTests/testInSegmentTestKey()", - "EvaluatorTests/testInSegmentsRule1()", - "EvaluatorTests/testKilledSplit()", - "EvaluatorTests/testMatchesStringNoConfigTreatment()", - "EvaluatorTests/testMissingDefaultRule()", - "EvaluatorTests/testNotInLargeSegmentWhitelist()", - "EvaluatorTests/testNotInSplit()", - "EvaluatorTests/testWhitelisted()", - "EvaluatorTests/testWhitelistedOff()", - "EvaluatorTests/testsTrafficAllocation50DefaultRule50()", + "EvaluatorTests\/testAlgoLegacy()", + "EvaluatorTests\/testAlgoMurmur3()", + "EvaluatorTests\/testAlgoNull()", + "EvaluatorTests\/testAllocation1Percent()", + "EvaluatorTests\/testBrokenSplit()", + "EvaluatorTests\/testDefaultRule()", + "EvaluatorTests\/testDefaultTreatment()", + "EvaluatorTests\/testDefaultTreatmentFacundo()", + "EvaluatorTests\/testEqualsToSetConfigTreatment()", + "EvaluatorTests\/testEqualsToSetNoConfigTreatment()", + "EvaluatorTests\/testInLargeSegmentWhitelist()", + "EvaluatorTests\/testInSegmentTestKey()", + "EvaluatorTests\/testInSegmentsRule1()", + "EvaluatorTests\/testKilledSplit()", + "EvaluatorTests\/testMatchesStringNoConfigTreatment()", + "EvaluatorTests\/testMissingDefaultRule()", + "EvaluatorTests\/testNotInLargeSegmentWhitelist()", + "EvaluatorTests\/testNotInSplit()", + "EvaluatorTests\/testWhitelisted()", + "EvaluatorTests\/testWhitelistedOff()", + "EvaluatorTests\/testsTrafficAllocation50DefaultRule50()", "EventDTOJsonTest", - "EventDTOJsonTest/testBasic()", - "EventDTOJsonTest/testEncode()", - "EventDTOJsonTest/testNonNumber()", - "EventDTOJsonTest/testProperties()", - "EventDTOJsonTest/testPropertiesDecodeEncode()", + "EventDTOJsonTest\/testBasic()", + "EventDTOJsonTest\/testEncode()", + "EventDTOJsonTest\/testNonNumber()", + "EventDTOJsonTest\/testProperties()", + "EventDTOJsonTest\/testPropertiesDecodeEncode()", "EventDaoTest", - "EventDaoTest/testDataIsEncryptedInDb()", - "EventDaoTest/testInsertGetAes128Cbc()", - "EventDaoTest/testInsertGetPlainText()", - "EventDaoTest/testInsertManyGetAes128Cbc()", - "EventDaoTest/testInsertManyGetPlainText()", - "EventDaoTest/testLoadOutdatedAes128Cbc()", - "EventDaoTest/testLoadOutdatedPlainText()", - "EventDaoTest/testUpdateAes128Cbc()", - "EventDaoTest/testUpdatePlainText()", + "EventDaoTest\/testDataIsEncryptedInDb()", + "EventDaoTest\/testInsertGetAes128Cbc()", + "EventDaoTest\/testInsertGetPlainText()", + "EventDaoTest\/testInsertManyGetAes128Cbc()", + "EventDaoTest\/testInsertManyGetPlainText()", + "EventDaoTest\/testLoadOutdatedAes128Cbc()", + "EventDaoTest\/testLoadOutdatedPlainText()", + "EventDaoTest\/testUpdateAes128Cbc()", + "EventDaoTest\/testUpdatePlainText()", "EventStreamParserTest", - "EventStreamParserTest/testParseColon()", - "EventStreamParserTest/testParseEmptyLineNoEnd()", - "EventStreamParserTest/testParseEnd()", - "EventStreamParserTest/testParseErrorMessage()", - "EventStreamParserTest/testParseKeepAlive()", - "EventStreamParserTest/testParseNoColon()", - "EventStreamParserTest/testParseNoFieldName()", + "EventStreamParserTest\/testParseColon()", + "EventStreamParserTest\/testParseEmptyLineNoEnd()", + "EventStreamParserTest\/testParseEnd()", + "EventStreamParserTest\/testParseErrorMessage()", + "EventStreamParserTest\/testParseKeepAlive()", + "EventStreamParserTest\/testParseNoColon()", + "EventStreamParserTest\/testParseNoFieldName()", "EventValidatorTests", - "EventValidatorTests/testEmptyTrafficType()", - "EventValidatorTests/testEmptyType()", - "EventValidatorTests/testLongKey()", - "EventValidatorTests/testNoChachedServerAndUppercasedTrafficType()", - "EventValidatorTests/testNoChachedServerTrafficType()", - "EventValidatorTests/testNullKey()", - "EventValidatorTests/testNullTrafficType()", - "EventValidatorTests/testNullType()", - "EventValidatorTests/testTypeName()", - "EventValidatorTests/testUppercaseCharsInTrafficType()", - "EventValidatorTests/testValidEventAllValues()", - "EventValidatorTests/testValidEventNullValue()", + "EventValidatorTests\/testEmptyTrafficType()", + "EventValidatorTests\/testEmptyType()", + "EventValidatorTests\/testLongKey()", + "EventValidatorTests\/testNoChachedServerAndUppercasedTrafficType()", + "EventValidatorTests\/testNoChachedServerTrafficType()", + "EventValidatorTests\/testNullKey()", + "EventValidatorTests\/testNullTrafficType()", + "EventValidatorTests\/testNullType()", + "EventValidatorTests\/testTypeName()", + "EventValidatorTests\/testUppercaseCharsInTrafficType()", + "EventValidatorTests\/testValidEventAllValues()", + "EventValidatorTests\/testValidEventNullValue()", "EventsRecorderWorkerTests", - "EventsRecorderWorkerTests/testFailToSendSome()", - "EventsRecorderWorkerTests/testSendNoEvents()", - "EventsRecorderWorkerTests/testSendOneEvent()", - "EventsRecorderWorkerTests/testSendSuccess()", + "EventsRecorderWorkerTests\/testFailToSendSome()", + "EventsRecorderWorkerTests\/testSendNoEvents()", + "EventsRecorderWorkerTests\/testSendOneEvent()", + "EventsRecorderWorkerTests\/testSendSuccess()", "EventsStorageTest", - "EventsStorageTest/testClear()", - "EventsStorageTest/testDisablePersistence()", - "EventsStorageTest/testEnablePersistence()", - "EventsStorageTest/testStartDisabledPersistence()", - "EventsStorageTest/testStartEnabledPersistence()", - "EventsSynchronizerTest/testDestroy()", - "EventsSynchronizerTest/testFlush()", - "EventsSynchronizerTest/testPush()", - "EventsSynchronizerTest/testResume()", - "EventsSynchronizerTest/testStart()", - "EventsSynchronizerTest/testStop()", + "EventsStorageTest\/testClear()", + "EventsStorageTest\/testDisablePersistence()", + "EventsStorageTest\/testEnablePersistence()", + "EventsStorageTest\/testStartDisabledPersistence()", + "EventsStorageTest\/testStartEnabledPersistence()", + "EventsSynchronizerTest\/testDestroy()", + "EventsSynchronizerTest\/testFlush()", + "EventsSynchronizerTest\/testPush()", + "EventsSynchronizerTest\/testResume()", + "EventsSynchronizerTest\/testStart()", + "EventsSynchronizerTest\/testStop()", "EventsTrackerTest", - "EventsTrackerTest/testTrackDisabled()", + "EventsTrackerTest\/testTrackDisabled()", "FactoryMonitorTest", "FactoryRegistryTest", - "FactoryRegistryTest/testCountLiveFactories()", + "FactoryRegistryTest\/testCountLiveFactories()", "FeatureFlagsPayloadDecoderTest", - "FeatureFlagsPayloadDecoderTest/testDecodeGzip()", + "FeatureFlagsPayloadDecoderTest\/testDecodeGzip()", "FeatureFlagsSynchronizerTest", - "FeatureFlagsSynchronizerTest/testLoadSplitWhenQuerystringNamesChanges()", - "FeatureFlagsSynchronizerTest/testLoadSplitWhenQuerystringSetsChanges()", - "FeatureFlagsSynchronizerTest/testLoadSplitsClearedOnLoadBecauseNotInFilter()", - "FeatureFlagsSynchronizerTest/testLoadSplitsNoClearedOnLoad()", - "FeatureFlagsSynchronizerTest/testLoadSplitsWhenFlagsSetsAndFilterHasChangedClearsAllFeatureFlags()", - "FeatureFlagsSynchronizerTest/testLoadSplitsWhenFlagsSetsHasChangedClearsAllFeatureFlags()", - "FeatureFlagsSynchronizerTest/testStartPeriodicFetchingSingleModeEnabled()", - "FeatureFlagsSynchronizerTest/testStartPeriodicSync()", - "FeatureFlagsSynchronizerTest/testStop()", - "FeatureFlagsSynchronizerTest/testStopPeriodicSync()", - "FeatureFlagsSynchronizerTest/testSynchronizeSplits()", - "FeatureFlagsSynchronizerTest/testSynchronizeSplitsWithChangeNumber()", - "FeatureFlagsSynchronizerTest/testSynchronizeSplitsWithUriTooLong()", - "FeatureFlagsSynchronizerTest/testUpdateSplitsSingleModeEnabled()", + "FeatureFlagsSynchronizerTest\/testLoadSplitWhenQuerystringNamesChanges()", + "FeatureFlagsSynchronizerTest\/testLoadSplitWhenQuerystringSetsChanges()", + "FeatureFlagsSynchronizerTest\/testLoadSplitsClearedOnLoadBecauseNotInFilter()", + "FeatureFlagsSynchronizerTest\/testLoadSplitsNoClearedOnLoad()", + "FeatureFlagsSynchronizerTest\/testLoadSplitsWhenFlagsSetsAndFilterHasChangedClearsAllFeatureFlags()", + "FeatureFlagsSynchronizerTest\/testLoadSplitsWhenFlagsSetsHasChangedClearsAllFeatureFlags()", + "FeatureFlagsSynchronizerTest\/testStartPeriodicFetchingSingleModeEnabled()", + "FeatureFlagsSynchronizerTest\/testStartPeriodicSync()", + "FeatureFlagsSynchronizerTest\/testStop()", + "FeatureFlagsSynchronizerTest\/testStopPeriodicSync()", + "FeatureFlagsSynchronizerTest\/testSynchronizeSplits()", + "FeatureFlagsSynchronizerTest\/testSynchronizeSplitsWithChangeNumber()", + "FeatureFlagsSynchronizerTest\/testSynchronizeSplitsWithUriTooLong()", + "FeatureFlagsSynchronizerTest\/testUpdateSplitsSingleModeEnabled()", "FetchSpecificSplitsTest", - "FetchSpecificSplitsTest/testBothFilters()", - "FetchSpecificSplitsTest/testByNamesFilter()", - "FetchSpecificSplitsTest/testByPrefixFilter()", + "FetchSpecificSplitsTest\/testBothFilters()", + "FetchSpecificSplitsTest\/testByNamesFilter()", + "FetchSpecificSplitsTest\/testByPrefixFilter()", "FetcherThrottleTests", - "FetcherThrottleTests/testDelayValues()", - "FilterBuilderTest/testBasicByNameQueryString()", - "FilterBuilderTest/testBasicBySetQueryString()", - "FilterBuilderTest/testBySetAndByNameQueryString()", - "FilterBuilderTest/testFilterByNamesValuesDeduptedAndGrouped()", - "FilterBuilderTest/testFilterBySetsValuesDeduptedAndGrouped()", - "FilterBuilderTest/testMaxByNameFilterExceded()", - "FilterBuilderTest/testMaxByPrefixFilterExceded()", - "FilterBuilderTest/testOnlyOneTypeQueryString()", - "FilterBuilderTest/testQueryStringWithSpecialChars1()", - "FilterBuilderTest/testQueryStringWithSpecialChars2()", - "FilterBuilderTest/testQueryStringWithSpecialChars3()", - "FilterBuilderTest/testQueryStringWithSpecialChars4()", + "FetcherThrottleTests\/testDelayValues()", + "FilterBuilderTest\/testBasicByNameQueryString()", + "FilterBuilderTest\/testBasicBySetQueryString()", + "FilterBuilderTest\/testBySetAndByNameQueryString()", + "FilterBuilderTest\/testFilterByNamesValuesDeduptedAndGrouped()", + "FilterBuilderTest\/testFilterBySetsValuesDeduptedAndGrouped()", + "FilterBuilderTest\/testMaxByNameFilterExceded()", + "FilterBuilderTest\/testMaxByPrefixFilterExceded()", + "FilterBuilderTest\/testOnlyOneTypeQueryString()", + "FilterBuilderTest\/testQueryStringWithSpecialChars1()", + "FilterBuilderTest\/testQueryStringWithSpecialChars2()", + "FilterBuilderTest\/testQueryStringWithSpecialChars3()", + "FilterBuilderTest\/testQueryStringWithSpecialChars4()", "FlagSetValidatorTests", - "FlagSetValidatorTests/testCleanAndValidateValues()", - "FlagSetValidatorTests/testValidateOnEvaluationWithFilteredValues()", + "FlagSetValidatorTests\/testCleanAndValidateValues()", + "FlagSetValidatorTests\/testValidateOnEvaluationWithFilteredValues()", "FlagSetsCacheTests", - "FlagSetsCacheTests/testAddToFlagSetsNoFilter()", - "FlagSetsCacheTests/testAddToFlagSetsWithFilter()", - "FlagSetsCacheTests/testRemoveFromFlagSetsNoFilter()", + "FlagSetsCacheTests\/testAddToFlagSetsNoFilter()", + "FlagSetsCacheTests\/testAddToFlagSetsWithFilter()", + "FlagSetsCacheTests\/testRemoveFromFlagSetsNoFilter()", "GeneralInfoStorageTest", - "GeneralInfoStorageTest/testGetRolloutCacheLastClearTimestampGetsValueFromDao()", - "GeneralInfoStorageTest/testGetRolloutCacheLastClearTimestampReturnsZeroIfEntityIsNil()", - "GeneralInfoStorageTest/testGetUpdateTimestampGetsValueFromDao()", - "GeneralInfoStorageTest/testGetUpdateTimestampReturnsZeroIfEntityIsNil()", - "GeneralInfoStorageTest/testSetUpdateTimestampSetsValueOnDao()", + "GeneralInfoStorageTest\/testGetRolloutCacheLastClearTimestampGetsValueFromDao()", + "GeneralInfoStorageTest\/testGetRolloutCacheLastClearTimestampReturnsZeroIfEntityIsNil()", + "GeneralInfoStorageTest\/testGetUpdateTimestampGetsValueFromDao()", + "GeneralInfoStorageTest\/testGetUpdateTimestampReturnsZeroIfEntityIsNil()", + "GeneralInfoStorageTest\/testSetUpdateTimestampSetsValueOnDao()", "GreaterThanOrEqualToSemverMatcherTest", - "GreaterThanOrEqualToSemverMatcherTest/testGeneralUnsuccessfulMatches()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchShouldReturnFalseWhenKeyIsLess()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchShouldReturnFalseWhenKeyIsNull()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchShouldReturnTrueWhenKeyIsEqual()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchShouldReturnTrueWhenKeyIsGreater()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenEqual()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenGreater()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenLess()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenEqual()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenGreater()", + "GreaterThanOrEqualToSemverMatcherTest\/testGeneralUnsuccessfulMatches()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenKeyIsLess()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenKeyIsNull()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenKeyIsEqual()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenKeyIsGreater()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenEqual()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenGreater()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenLess()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenEqual()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenGreater()", "HashedImpressionDaoTest", - "HashedImpressionDaoTest/testDelete()", - "HashedImpressionDaoTest/testGetAll()", - "HashedImpressionDaoTest/testUpdate()", + "HashedImpressionDaoTest\/testDelete()", + "HashedImpressionDaoTest\/testGetAll()", + "HashedImpressionDaoTest\/testUpdate()", "HttpClientTest", - "HttpClientTest/testDataRequest()", - "HttpClientTest/testDataRequestError()", - "HttpClientTest/testDataRequestWithOrder()", - "HttpClientTest/testStreamRequest()", - "HttpClientTest/testUploadRequest()", + "HttpClientTest\/testDataRequest()", + "HttpClientTest\/testDataRequestError()", + "HttpClientTest\/testDataRequestWithOrder()", + "HttpClientTest\/testStreamRequest()", + "HttpClientTest\/testUploadRequest()", "HttpDataRequestTest", - "HttpDataRequestTest/testError()", - "HttpDataRequestTest/testOnResponseCompletedError()", - "HttpDataRequestTest/testOnResponseCompletedOk()", - "HttpDataRequestTest/testRequestCreationWithOrder()", - "HttpDataRequestTest/testRequestEnquedOnSend()", + "HttpDataRequestTest\/testError()", + "HttpDataRequestTest\/testOnResponseCompletedError()", + "HttpDataRequestTest\/testOnResponseCompletedOk()", + "HttpDataRequestTest\/testRequestCreationWithOrder()", + "HttpDataRequestTest\/testRequestEnquedOnSend()", "HttpEventsRecorderTests", - "HttpEventsRecorderTests/testServerNoReachable()", - "HttpEventsRecorderTests/testSuccessSending()", + "HttpEventsRecorderTests\/testServerNoReachable()", + "HttpEventsRecorderTests\/testSuccessSending()", "HttpImpressionsCountRecorderTests", - "HttpImpressionsCountRecorderTests/testServerNoReachable()", - "HttpImpressionsCountRecorderTests/testSuccessSending()", + "HttpImpressionsCountRecorderTests\/testServerNoReachable()", + "HttpImpressionsCountRecorderTests\/testSuccessSending()", "HttpImpressionsRecorderTests", - "HttpImpressionsRecorderTests/testServerNoReachable()", - "HttpMySegmentsFetcherTest/testServerNoReachable()", - "HttpMySegmentsFetcherTest/testSuccessFulFetch()", + "HttpImpressionsRecorderTests\/testServerNoReachable()", + "HttpMySegmentsFetcherTest\/testServerNoReachable()", + "HttpMySegmentsFetcherTest\/testSuccessFulFetch()", "HttpRequestListTest", - "HttpRequestListTest/testAddRequest()", - "HttpRequestListTest/testOverrideSetRequest()", + "HttpRequestListTest\/testAddRequest()", + "HttpRequestListTest\/testOverrideSetRequest()", "HttpRequestManagerTests", - "HttpRequestManagerTests/testPinnedCredentialValidation()", + "HttpRequestManagerTests\/testPinnedCredentialValidation()", "HttpResponseTest", - "HttpResponseTest/testHttp104()", - "HttpResponseTest/testHttp200()", - "HttpResponseTest/testHttp299()", - "HttpResponseTest/testHttp300()", + "HttpResponseTest\/testHttp104()", + "HttpResponseTest\/testHttp200()", + "HttpResponseTest\/testHttp299()", + "HttpResponseTest\/testHttp300()", "HttpSplitFetcherTests", - "HttpSplitFetcherTests/testServerNoReachable()", - "HttpSplitFetcherTests/testSuccessFullFetch()", + "HttpSplitFetcherTests\/testServerNoReachable()", + "HttpSplitFetcherTests\/testSuccessFullFetch()", "HttpStreamRequestTest", - "HttpStreamRequestTest/testErrorResponse()", - "HttpStreamRequestTest/testOnResponseOk()", - "HttpStreamRequestTest/testRequestCreation()", - "HttpStreamRequestTest/testRequestEnquedOnSend()", + "HttpStreamRequestTest\/testErrorResponse()", + "HttpStreamRequestTest\/testOnResponseOk()", + "HttpStreamRequestTest\/testRequestCreation()", + "HttpStreamRequestTest\/testRequestEnquedOnSend()", "HttpTelemetryConfigRecorderTest", - "HttpTelemetryConfigRecorderTest/testServerNoReachable()", - "HttpTelemetryConfigRecorderTest/testSuccessSending()", + "HttpTelemetryConfigRecorderTest\/testServerNoReachable()", + "HttpTelemetryConfigRecorderTest\/testSuccessSending()", "HttpTelemetryStatsRecorderTest", - "HttpTelemetryStatsRecorderTest/testServerNoReachable()", - "HttpTelemetryStatsRecorderTest/testSuccessSending()", + "HttpTelemetryStatsRecorderTest\/testServerNoReachable()", + "HttpTelemetryStatsRecorderTest\/testSuccessSending()", "HttpUniqueKeyRecorderTests", - "HttpUniqueKeyRecorderTests/testServerNoReachable()", - "HttpUniqueKeyRecorderTests/testSuccessSending()", + "HttpUniqueKeyRecorderTests\/testServerNoReachable()", + "HttpUniqueKeyRecorderTests\/testSuccessSending()", "ImpressionDaoTest", - "ImpressionDaoTest/testDataIsEncryptedInDb()", - "ImpressionDaoTest/testInsertGet()", - "ImpressionDaoTest/testInsertGetAes128Cbc()", - "ImpressionDaoTest/testInsertManyGetAes128Cbc()", - "ImpressionDaoTest/testLoadOutdated()", - "ImpressionDaoTest/testLoadOutdatedAes128Cbc()", - "ImpressionDaoTest/testUpdate()", - "ImpressionDaoTest/testUpdateAes128Cbc()", + "ImpressionDaoTest\/testDataIsEncryptedInDb()", + "ImpressionDaoTest\/testInsertGet()", + "ImpressionDaoTest\/testInsertGetAes128Cbc()", + "ImpressionDaoTest\/testInsertManyGetAes128Cbc()", + "ImpressionDaoTest\/testLoadOutdated()", + "ImpressionDaoTest\/testLoadOutdatedAes128Cbc()", + "ImpressionDaoTest\/testUpdate()", + "ImpressionDaoTest\/testUpdateAes128Cbc()", "ImpressionHasherTest", - "ImpressionHasherTest/testDifferentChangeNumber()", - "ImpressionHasherTest/testDifferentFeature()", - "ImpressionHasherTest/testDifferentKey()", - "ImpressionHasherTest/testDifferentLabel()", - "ImpressionHasherTest/testDifferentTreatment()", - "ImpressionHasherTest/testNoCrashWhenSplitNull()", + "ImpressionHasherTest\/testDifferentChangeNumber()", + "ImpressionHasherTest\/testDifferentFeature()", + "ImpressionHasherTest\/testDifferentKey()", + "ImpressionHasherTest\/testDifferentLabel()", + "ImpressionHasherTest\/testDifferentTreatment()", + "ImpressionHasherTest\/testNoCrashWhenSplitNull()", "ImpressionsCountDaoTest", - "ImpressionsCountDaoTest/testDataIsEncryptedInDb()", - "ImpressionsCountDaoTest/testInsertGetAes128Cbc()", - "ImpressionsCountDaoTest/testInsertGetPlainText()", - "ImpressionsCountDaoTest/testLoadOutdatedGetAes128Cbc()", - "ImpressionsCountDaoTest/testLoadOutdatedPlainText()", - "ImpressionsCountDaoTest/testUpdateGetAes128Cbc()", - "ImpressionsCountDaoTest/testUpdatePlainText()", + "ImpressionsCountDaoTest\/testDataIsEncryptedInDb()", + "ImpressionsCountDaoTest\/testInsertGetAes128Cbc()", + "ImpressionsCountDaoTest\/testInsertGetPlainText()", + "ImpressionsCountDaoTest\/testLoadOutdatedGetAes128Cbc()", + "ImpressionsCountDaoTest\/testLoadOutdatedPlainText()", + "ImpressionsCountDaoTest\/testUpdateGetAes128Cbc()", + "ImpressionsCountDaoTest\/testUpdatePlainText()", "ImpressionsCounterTest", - "ImpressionsCounterTest/testBasicUsage()", - "ImpressionsCounterTest/testConcurrency()", - "ImpressionsCounterTest/testTruncateTime()", + "ImpressionsCounterTest\/testBasicUsage()", + "ImpressionsCounterTest\/testConcurrency()", + "ImpressionsCounterTest\/testTruncateTime()", "ImpressionsDedupTest", - "ImpressionsDedupTest/testDebug()", - "ImpressionsModeTypeWrapperTest/testInitdebugValue()", - "ImpressionsModeTypeWrapperTest/testInitnoneValue()", - "ImpressionsModeTypeWrapperTest/testInitoptimizedValue()", - "ImpressionsModeTypeWrapperTest/testInvalidValue()", - "ImpressionsModeTypeWrapperTest/testdebugValue()", - "ImpressionsModeTypeWrapperTest/testnoneValue()", - "ImpressionsModeTypeWrapperTest/testoptimizedValue()", + "ImpressionsDedupTest\/testDebug()", + "ImpressionsModeTypeWrapperTest\/testInitdebugValue()", + "ImpressionsModeTypeWrapperTest\/testInitnoneValue()", + "ImpressionsModeTypeWrapperTest\/testInitoptimizedValue()", + "ImpressionsModeTypeWrapperTest\/testInvalidValue()", + "ImpressionsModeTypeWrapperTest\/testdebugValue()", + "ImpressionsModeTypeWrapperTest\/testnoneValue()", + "ImpressionsModeTypeWrapperTest\/testoptimizedValue()", "ImpressionsNoneTest", - "ImpressionsNoneTest/testCorrectData()", - "ImpressionsNoneTest/testPeriodicRecording()", + "ImpressionsNoneTest\/testCorrectData()", + "ImpressionsNoneTest\/testPeriodicRecording()", "ImpressionsObserverTest", - "ImpressionsObserverTest/testBasicFunctionality()", - "ImpressionsObserverTest/testConcurrencyVsAccuracy()", - "ImpressionsObserverTest/testSave()", + "ImpressionsObserverTest\/testBasicFunctionality()", + "ImpressionsObserverTest\/testConcurrencyVsAccuracy()", + "ImpressionsObserverTest\/testSave()", "ImpressionsRecorderWorkerTests", - "ImpressionsRecorderWorkerTests/testFailToSendSome()", - "ImpressionsRecorderWorkerTests/testSendNoImpressions()", - "ImpressionsRecorderWorkerTests/testSendOneImpression()", - "ImpressionsRecorderWorkerTests/testSendSuccess()", + "ImpressionsRecorderWorkerTests\/testFailToSendSome()", + "ImpressionsRecorderWorkerTests\/testSendNoImpressions()", + "ImpressionsRecorderWorkerTests\/testSendOneImpression()", + "ImpressionsRecorderWorkerTests\/testSendSuccess()", "ImpressionsStorageTest", - "ImpressionsStorageTest/testClear()", - "ImpressionsStorageTest/testEnablePersistence()", - "ImpressionsStorageTest/testStartDisabledPersistence()", - "ImpressionsStorageTest/testStartEnabledPersistence()", + "ImpressionsStorageTest\/testClear()", + "ImpressionsStorageTest\/testEnablePersistence()", + "ImpressionsStorageTest\/testStartDisabledPersistence()", + "ImpressionsStorageTest\/testStartEnabledPersistence()", "ImpressionsToggleTest", - "ImpressionsToggleTest/testManagerContainsProperty()", - "ImpressionsToggleTest/testNoneMode()", - "ImpressionsToggleTest/testOptimizedMode()", + "ImpressionsToggleTest\/testManagerContainsProperty()", + "ImpressionsToggleTest\/testNoneMode()", + "ImpressionsToggleTest\/testOptimizedMode()", "ImpressionsTrackerTest", - "ImpressionsTrackerTest/testDestroyDebug()", - "ImpressionsTrackerTest/testDestroyNone()", - "ImpressionsTrackerTest/testDestroyOptimized()", - "ImpressionsTrackerTest/testFlushDebug()", - "ImpressionsTrackerTest/testFlushNone()", - "ImpressionsTrackerTest/testFlushOptimized()", - "ImpressionsTrackerTest/testImpressionPushNone()", - "ImpressionsTrackerTest/testImpressionPushTrackingDisabledDebug()", - "ImpressionsTrackerTest/testImpressionPushTrackingDisabledNone()", - "ImpressionsTrackerTest/testImpressionPushTrackingDisabledOptimized()", - "ImpressionsTrackerTest/testPauseDebug()", - "ImpressionsTrackerTest/testPauseNone()", - "ImpressionsTrackerTest/testPauseOptimized()", - "ImpressionsTrackerTest/testResume()", - "ImpressionsTrackerTest/testStartDebug()", - "ImpressionsTrackerTest/testStartNone()", - "ImpressionsTrackerTest/testStartOptimized()", - "ImpressionsTrackerTest/testStopDebug()", - "ImpressionsTrackerTest/testStopNone()", - "ImpressionsTrackerTest/testStopOptimized()", + "ImpressionsTrackerTest\/testDestroyDebug()", + "ImpressionsTrackerTest\/testDestroyNone()", + "ImpressionsTrackerTest\/testDestroyOptimized()", + "ImpressionsTrackerTest\/testFlushDebug()", + "ImpressionsTrackerTest\/testFlushNone()", + "ImpressionsTrackerTest\/testFlushOptimized()", + "ImpressionsTrackerTest\/testImpressionPushNone()", + "ImpressionsTrackerTest\/testImpressionPushTrackingDisabledDebug()", + "ImpressionsTrackerTest\/testImpressionPushTrackingDisabledNone()", + "ImpressionsTrackerTest\/testImpressionPushTrackingDisabledOptimized()", + "ImpressionsTrackerTest\/testPauseDebug()", + "ImpressionsTrackerTest\/testPauseNone()", + "ImpressionsTrackerTest\/testPauseOptimized()", + "ImpressionsTrackerTest\/testResume()", + "ImpressionsTrackerTest\/testStartDebug()", + "ImpressionsTrackerTest\/testStartNone()", + "ImpressionsTrackerTest\/testStartOptimized()", + "ImpressionsTrackerTest\/testStopDebug()", + "ImpressionsTrackerTest\/testStopNone()", + "ImpressionsTrackerTest\/testStopOptimized()", "InListSemverMatcherTest", - "InListSemverMatcherTest/testGeneralMatches()", - "InListSemverMatcherTest/testMatchShouldReturnFalseWhenNotInList()", - "InListSemverMatcherTest/testMatchShouldReturnTrueWhenInList()", - "InListSemverMatcherTest/testMatchWithEmptyListShouldReturnFalse()", - "InListSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenNotInList()", - "InListSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenInList()", - "InListSemverMatcherTest/testMatchWithNullKeyShouldReturnFalse()", - "InListSemverMatcherTest/testMatchWithNullTargetShouldReturnFalse()", - "InListSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenNotInList()", - "InListSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenInList()", - "InMemoryTelemetryStorageTest/testActiveFactoriesCount()", - "InMemoryTelemetryStorageTest/testAuthRejections()", - "InMemoryTelemetryStorageTest/testConcurrence()", - "InMemoryTelemetryStorageTest/testEvent()", - "InMemoryTelemetryStorageTest/testExceptions()", - "InMemoryTelemetryStorageTest/testHttpErrors()", - "InMemoryTelemetryStorageTest/testHttpLatencies()", - "InMemoryTelemetryStorageTest/testLastSync()", - "InMemoryTelemetryStorageTest/testLatencies()", - "InMemoryTelemetryStorageTest/testRedundantFactoriesCount()", - "InMemoryTelemetryStorageTest/testSessionLength()", - "InMemoryTelemetryStorageTest/testTags()", - "InMemoryTelemetryStorageTest/testTimeUntilReady()", - "InMemoryTelemetryStorageTest/testTimeUntilReadyFromCache()", - "InMemoryTelemetryStorageTest/testTokenRefreshes()", - "InMemoryTelemetryStorageTest/testUpdatesFromSse()", + "InListSemverMatcherTest\/testGeneralMatches()", + "InListSemverMatcherTest\/testMatchShouldReturnFalseWhenNotInList()", + "InListSemverMatcherTest\/testMatchShouldReturnTrueWhenInList()", + "InListSemverMatcherTest\/testMatchWithEmptyListShouldReturnFalse()", + "InListSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenNotInList()", + "InListSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenInList()", + "InListSemverMatcherTest\/testMatchWithNullKeyShouldReturnFalse()", + "InListSemverMatcherTest\/testMatchWithNullTargetShouldReturnFalse()", + "InListSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenNotInList()", + "InListSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenInList()", + "InMemoryTelemetryStorageTest\/testActiveFactoriesCount()", + "InMemoryTelemetryStorageTest\/testAuthRejections()", + "InMemoryTelemetryStorageTest\/testConcurrence()", + "InMemoryTelemetryStorageTest\/testEvent()", + "InMemoryTelemetryStorageTest\/testExceptions()", + "InMemoryTelemetryStorageTest\/testHttpErrors()", + "InMemoryTelemetryStorageTest\/testHttpLatencies()", + "InMemoryTelemetryStorageTest\/testLastSync()", + "InMemoryTelemetryStorageTest\/testLatencies()", + "InMemoryTelemetryStorageTest\/testRedundantFactoriesCount()", + "InMemoryTelemetryStorageTest\/testSessionLength()", + "InMemoryTelemetryStorageTest\/testTags()", + "InMemoryTelemetryStorageTest\/testTimeUntilReady()", + "InMemoryTelemetryStorageTest\/testTimeUntilReadyFromCache()", + "InMemoryTelemetryStorageTest\/testTokenRefreshes()", + "InMemoryTelemetryStorageTest\/testUpdatesFromSse()", "InitDbCipherTest", - "InitDbCipherTest/testDecryptDb()", - "InitDbCipherTest/testEncryptDb()", + "InitDbCipherTest\/testDecryptDb()", + "InitDbCipherTest\/testEncryptDb()", "InitialCacheTest", - "InitialCacheTest/testClearChangedSplitFilter()", - "InitialCacheTest/testClearExpiredCache()", - "InitialCacheTest/testExpiredCache()", - "InitialCacheTest/testFlagsSpecChanged()", - "InitialCacheTest/testNoClearNoExpiredCache()", + "InitialCacheTest\/testClearChangedSplitFilter()", + "InitialCacheTest\/testClearExpiredCache()", + "InitialCacheTest\/testExpiredCache()", + "InitialCacheTest\/testFlagsSpecChanged()", + "InitialCacheTest\/testNoClearNoExpiredCache()", "InstantFeatureFlagsUpdateTest", - "InstantFeatureFlagsUpdateTest/testInstantUpdateArchived()", - "InstantFeatureFlagsUpdateTest/testInstantUpdateGzip()", + "InstantFeatureFlagsUpdateTest\/testInstantUpdateArchived()", + "InstantFeatureFlagsUpdateTest\/testInstantUpdateGzip()", "JwtTokenParserTest", - "JwtTokenParserTest/testEmptyToken()", - "JwtTokenParserTest/testOkToken()", - "JwtTokenParserTest/testOnlyChannelsWithSeparator()", - "JwtTokenParserTest/testOnlyHeader()", + "JwtTokenParserTest\/testEmptyToken()", + "JwtTokenParserTest\/testOkToken()", + "JwtTokenParserTest\/testOnlyChannelsWithSeparator()", + "JwtTokenParserTest\/testOnlyHeader()", "KeyGeneratorTest", - "KeyGeneratorTest/testGenerationOk()", + "KeyGeneratorTest\/testGenerationOk()", "KeyValidatorTests", - "KeyValidatorTests/testInvalidEmptyBucketingKey()", - "KeyValidatorTests/testInvalidEmptyMatchingKey()", - "KeyValidatorTests/testInvalidLongBucketingKey()", - "KeyValidatorTests/testInvalidLongMatchingKey()", - "KeyValidatorTests/testNullMatchingKey()", - "KeyValidatorTests/testValidMatchingAndBucketingKey()", - "KeyValidatorTests/testValidMatchingKey()", + "KeyValidatorTests\/testInvalidEmptyBucketingKey()", + "KeyValidatorTests\/testInvalidEmptyMatchingKey()", + "KeyValidatorTests\/testInvalidLongBucketingKey()", + "KeyValidatorTests\/testInvalidLongMatchingKey()", + "KeyValidatorTests\/testNullMatchingKey()", + "KeyValidatorTests\/testValidMatchingAndBucketingKey()", + "KeyValidatorTests\/testValidMatchingKey()", "LRUCacheTest", - "LRUCacheTest/testAddGet()", - "LRUCacheTest/testGetAllPerformance()", - "LRUCacheTest/testInsertPerformance()", + "LRUCacheTest\/testAddGet()", + "LRUCacheTest\/testGetAllPerformance()", + "LRUCacheTest\/testInsertPerformance()", "LatencyCounterTests", - "LatencyCounterTests/testAllBuckets()", - "LatencyCounterTests/testFirstBucket()", - "LatencyCounterTests/testInvalidIndex()", - "LatencyCounterTests/testLastBucket()", + "LatencyCounterTests\/testAllBuckets()", + "LatencyCounterTests\/testFirstBucket()", + "LatencyCounterTests\/testInvalidIndex()", + "LatencyCounterTests\/testLastBucket()", "LegacyHashingTest", - "LegacyHashingTest/testBucket()", - "LegacyHashingTest/testHashing()", + "LegacyHashingTest\/testBucket()", + "LegacyHashingTest\/testHashing()", "LessThanOrEqualToSemverMatcherTest", - "LessThanOrEqualToSemverMatcherTest/testGeneralMatches()", - "LessThanOrEqualToSemverMatcherTest/testMatchShouldReturnFalseWhenGreater()", - "LessThanOrEqualToSemverMatcherTest/testMatchShouldReturnTrueWhenEqual()", - "LessThanOrEqualToSemverMatcherTest/testMatchShouldReturnTrueWhenLess()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithMetadataShouldReturnTrue()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithNullKeyShouldReturnNull()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithNullTargetShouldReturnFalse()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrue()", + "LessThanOrEqualToSemverMatcherTest\/testGeneralMatches()", + "LessThanOrEqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenGreater()", + "LessThanOrEqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenEqual()", + "LessThanOrEqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenLess()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnTrue()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithNullKeyShouldReturnNull()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithNullTargetShouldReturnFalse()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrue()", "LocalhostManagerTests", - "LocalhostManagerTests/testSplitNames()", - "LocalhostManagerTests/testSplits()", - "LocalhostManagerTests/testSplitsByName()", + "LocalhostManagerTests\/testSplitNames()", + "LocalhostManagerTests\/testSplits()", + "LocalhostManagerTests\/testSplitsByName()", "LocalhostParserTests", - "LocalhostParserTests/testIntercomentedLinesFile()", - "LocalhostParserTests/testPerfectFile()", - "LocalhostParserTests/testSpacedLinesFile()", + "LocalhostParserTests\/testIntercomentedLinesFile()", + "LocalhostParserTests\/testPerfectFile()", + "LocalhostParserTests\/testSpacedLinesFile()", "LocalhostSplitClientTests", - "LocalhostSplitClientTests/testNonExistingSplitsTreatment()", - "LocalhostSplitClientTests/testNonExistingSplitsTreatments()", - "LocalhostSplitClientTests/testRightSplitsFileTreatment()", - "LocalhostSplitClientTests/testRightSplitsFileTreatments()", - "LocalhostSplitLoaderTests/testFileUpdate()", - "LocalhostSplitLoaderTests/testFileUpdate2()", - "LocalhostSplitLoaderTests/testInitial()", - "LocalhostSplitLoaderTests/testNonExistingFile()", - "LocalhostSplitLoaderTests/testWrongFormatYml()", - "LocalhostSplitLoaderTests/testWrongYamlFormatUpdate()", + "LocalhostSplitClientTests\/testNonExistingSplitsTreatment()", + "LocalhostSplitClientTests\/testNonExistingSplitsTreatments()", + "LocalhostSplitClientTests\/testRightSplitsFileTreatment()", + "LocalhostSplitClientTests\/testRightSplitsFileTreatments()", + "LocalhostSplitLoaderTests\/testFileUpdate()", + "LocalhostSplitLoaderTests\/testFileUpdate2()", + "LocalhostSplitLoaderTests\/testInitial()", + "LocalhostSplitLoaderTests\/testNonExistingFile()", + "LocalhostSplitLoaderTests\/testWrongFormatYml()", + "LocalhostSplitLoaderTests\/testWrongYamlFormatUpdate()", "LocalhostSplitStorageTests", - "LocalhostSplitStorageTests/testClear()", - "LocalhostSplitStorageTests/testGetCount()", - "LocalhostSplitStorageTests/testGetManySplits()", - "LocalhostSplitStorageTests/testGetSplit()", - "LocalhostSplitStorageTests/testUpdateSplitChange()", + "LocalhostSplitStorageTests\/testClear()", + "LocalhostSplitStorageTests\/testGetCount()", + "LocalhostSplitStorageTests\/testGetManySplits()", + "LocalhostSplitStorageTests\/testGetSplit()", + "LocalhostSplitStorageTests\/testUpdateSplitChange()", "LocalhostSynchronizerTests", - "LocalhostSynchronizerTests/testLoadAndSdkReady()", - "LocalhostSynchronizerTests/testUpdateSplits()", - "LocalhostSynchronizerTests/testUpdateYaml()", + "LocalhostSynchronizerTests\/testLoadAndSdkReady()", + "LocalhostSynchronizerTests\/testUpdateSplits()", + "LocalhostSynchronizerTests\/testUpdateYaml()", "LocalhostTests", - "LocalhostTests/testDefaultFactoryCreation()", - "LocalhostTests/testLoadYml()", - "LocalhostTests/testLocalhostFactoryCreation()", - "LocalhostTests/testUsingYamlFromApi()", + "LocalhostTests\/testDefaultFactoryCreation()", + "LocalhostTests\/testLoadYml()", + "LocalhostTests\/testLocalhostFactoryCreation()", + "LocalhostTests\/testUsingYamlFromApi()", "LocalhostYamlParserTest", - "LocalhostYamlParserTest/testCorrectFile()", - "LocalhostYamlParserTest/testMissingSplitTreatment()", - "LocalhostYamlParserTest/testWrongFormat()", - "LoggerTest/testDebug()", - "LoggerTest/testError()", - "LoggerTest/testInfo()", - "LoggerTest/testVerbose()", - "LoggerTest/testWarning()", + "LocalhostYamlParserTest\/testCorrectFile()", + "LocalhostYamlParserTest\/testMissingSplitTreatment()", + "LocalhostYamlParserTest\/testWrongFormat()", + "LoggerTest\/testDebug()", + "LoggerTest\/testError()", + "LoggerTest\/testInfo()", + "LoggerTest\/testVerbose()", + "LoggerTest\/testWarning()", "MatcherEvalTests", - "MatcherEvalTests/testEval()", + "MatcherEvalTests\/testEval()", "MultiClientEvaluationTest", - "MultiClientEvaluationTest/testEvaluation()", - "MultiClientEvaluationTest/testEvaluationFromCache()", - "MultiClientEvaluationTest/testEvaluationWithAttributes()", - "MultiClientEvaluationTest/testImpressions()", - "MultiClientEvaluationTest/testTrack()", + "MultiClientEvaluationTest\/testEvaluation()", + "MultiClientEvaluationTest\/testEvaluationFromCache()", + "MultiClientEvaluationTest\/testEvaluationWithAttributes()", + "MultiClientEvaluationTest\/testImpressions()", + "MultiClientEvaluationTest\/testTrack()", "MultiClientStreamingResetTest", - "MultiClientStreamingResetTest/testNoStreamingDelay()", - "MultiClientStreamingResetTest/testStress()", - "MultiClientStreamingResetTest/testWithStreamingDelay()", + "MultiClientStreamingResetTest\/testNoStreamingDelay()", + "MultiClientStreamingResetTest\/testStress()", + "MultiClientStreamingResetTest\/testWithStreamingDelay()", "Murmur3HashingTest", - "Murmur3HashingTest/test64x128()", - "Murmur3HashingTest/testBucket()", + "Murmur3HashingTest\/test64x128()", + "Murmur3HashingTest\/testBucket()", "MyLargeSegmentsStorageTests", - "MyLargeSegmentsStorageTests/testChangeNumber()", - "MyLargeSegmentsStorageTests/testClear()", - "MyLargeSegmentsStorageTests/testGetMySegmentsAfterLoad()", - "MyLargeSegmentsStorageTests/testNoLoaded()", - "MyLargeSegmentsStorageTests/testUpdateEmptySegments()", - "MyLargeSegmentsStorageTests/testUpdateSegments()", + "MyLargeSegmentsStorageTests\/testChangeNumber()", + "MyLargeSegmentsStorageTests\/testClear()", + "MyLargeSegmentsStorageTests\/testGetMySegmentsAfterLoad()", + "MyLargeSegmentsStorageTests\/testNoLoaded()", + "MyLargeSegmentsStorageTests\/testUpdateEmptySegments()", + "MyLargeSegmentsStorageTests\/testUpdateSegments()", "MySegmentServerErrorTest", - "MySegmentServerErrorTest/test()", + "MySegmentServerErrorTest\/test()", "MySegmentUpdateTest", - "MySegmentUpdateTest/testMyLargeSegmentsUpdate()", - "MySegmentUpdateTest/testMySegmentsLargeUpdateBounded()", - "MySegmentUpdateTest/testMySegmentsUpdate()", - "MySegmentUpdateTest/testMySegmentsUpdateBounded()", - "MySegmentUpdateTest/testSeveralNotificationAndOneFetch()", + "MySegmentUpdateTest\/testMyLargeSegmentsUpdate()", + "MySegmentUpdateTest\/testMySegmentsLargeUpdateBounded()", + "MySegmentUpdateTest\/testMySegmentsUpdate()", + "MySegmentUpdateTest\/testMySegmentsUpdateBounded()", + "MySegmentUpdateTest\/testSeveralNotificationAndOneFetch()", "MySegmentUpdatedTest", - "MySegmentUpdatedTest/testSegments()", + "MySegmentUpdatedTest\/testSegments()", "MySegmentsBgSyncWorkerTest", - "MySegmentsBgSyncWorkerTest/testNoSuccess()", - "MySegmentsBgSyncWorkerTest/testOneTimeFetchSuccess()", + "MySegmentsBgSyncWorkerTest\/testNoSuccess()", + "MySegmentsBgSyncWorkerTest\/testOneTimeFetchSuccess()", "MySegmentsDaoTest", - "MySegmentsDaoTest/testDataIsEncryptedInDb()", - "MySegmentsDaoTest/testGetInvalidKeyAes128Cbc()", - "MySegmentsDaoTest/testGetInvalidKeyPlainText()", - "MySegmentsDaoTest/testUpdateGetAes128Cbc()", - "MySegmentsDaoTest/testUpdateGetPlainText()", + "MySegmentsDaoTest\/testDataIsEncryptedInDb()", + "MySegmentsDaoTest\/testGetInvalidKeyAes128Cbc()", + "MySegmentsDaoTest\/testGetInvalidKeyPlainText()", + "MySegmentsDaoTest\/testUpdateGetAes128Cbc()", + "MySegmentsDaoTest\/testUpdateGetPlainText()", "MySegmentsPayloadDecoderTest", - "MySegmentsPayloadDecoderTest/testUserKeyHash()", + "MySegmentsPayloadDecoderTest\/testUserKeyHash()", "MySegmentsStorageTests", - "MySegmentsStorageTests/testChangeNumber()", - "MySegmentsStorageTests/testClear()", - "MySegmentsStorageTests/testGetMySegmentsAfterLoad()", - "MySegmentsStorageTests/testNoLoaded()", - "MySegmentsStorageTests/testUpdateEmptySegments()", - "MySegmentsStorageTests/testUpdateSegments()", + "MySegmentsStorageTests\/testChangeNumber()", + "MySegmentsStorageTests\/testClear()", + "MySegmentsStorageTests\/testGetMySegmentsAfterLoad()", + "MySegmentsStorageTests\/testNoLoaded()", + "MySegmentsStorageTests\/testUpdateEmptySegments()", + "MySegmentsStorageTests\/testUpdateSegments()", "MySegmentsSyncWorkerTest", - "MySegmentsSyncWorkerTest/testNoCacheHeader()", - "MySegmentsSyncWorkerTest/testOneTimeFetchSuccess()", - "MySegmentsSyncWorkerTest/testRetryAndSuccess()", - "MySegmentsSyncWorkerTest/testStopNoSuccess()", + "MySegmentsSyncWorkerTest\/testNoCacheHeader()", + "MySegmentsSyncWorkerTest\/testOneTimeFetchSuccess()", + "MySegmentsSyncWorkerTest\/testRetryAndSuccess()", + "MySegmentsSyncWorkerTest\/testStopNoSuccess()", "MySegmentsSynchronizerTest", - "MySegmentsSynchronizerTest/testDestroy()", - "MySegmentsSynchronizerTest/testForceSync()", - "MySegmentsSynchronizerTest/testLoadMySegmentsFromCache()", - "MySegmentsSynchronizerTest/testNoPeriodicSync()", - "MySegmentsSynchronizerTest/testPeriodicStartPauseResumeStop()", - "MySegmentsSynchronizerTest/testPeriodicStartStop()", - "MySegmentsSynchronizerTest/testSynchronize()", + "MySegmentsSynchronizerTest\/testDestroy()", + "MySegmentsSynchronizerTest\/testForceSync()", + "MySegmentsSynchronizerTest\/testLoadMySegmentsFromCache()", + "MySegmentsSynchronizerTest\/testNoPeriodicSync()", + "MySegmentsSynchronizerTest\/testPeriodicStartPauseResumeStop()", + "MySegmentsSynchronizerTest\/testPeriodicStartStop()", + "MySegmentsSynchronizerTest\/testSynchronize()", "MySegmentsV2PayloaDecoderTest", - "MySegmentsV2PayloaDecoderTest/testBoundedZlibPayload()", - "MySegmentsV2PayloaDecoderTest/testKeyListGzipPayload()", + "MySegmentsV2PayloaDecoderTest\/testBoundedZlibPayload()", + "MySegmentsV2PayloaDecoderTest\/testKeyListGzipPayload()", "NotificationManagerKeeperTest", - "NotificationManagerKeeperTest/testIncomingControlStreamingDisabled()", - "NotificationManagerKeeperTest/testIncomingControlStreamingEnabled()", - "NotificationManagerKeeperTest/testIncomingControlStreamingEnabledNoPublishers()", - "NotificationManagerKeeperTest/testIncomingControlStreamingPaused()", - "NotificationManagerKeeperTest/testIncomingControlStreamingReset()", - "NotificationManagerKeeperTest/testNoAvailablePublishers()", - "NotificationManagerKeeperTest/testNoAvailablePublishersInPriButAvailableInSec()", - "NotificationManagerKeeperTest/testNoAvailablePublishersOldTimestamp()", - "NotificationManagerKeeperTest/testSecondaryAvailableNotificationReceivedWhenNoPublishers()", - "NotificationManagerKeeperTest/testSecondaryAvailableNotificationReceivedWhenNoPublishersOldTimestamp()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingDisabled()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingEnabled()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingEnabledNoPublishers()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingPaused()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingReset()", + "NotificationManagerKeeperTest\/testNoAvailablePublishers()", + "NotificationManagerKeeperTest\/testNoAvailablePublishersInPriButAvailableInSec()", + "NotificationManagerKeeperTest\/testNoAvailablePublishersOldTimestamp()", + "NotificationManagerKeeperTest\/testSecondaryAvailableNotificationReceivedWhenNoPublishers()", + "NotificationManagerKeeperTest\/testSecondaryAvailableNotificationReceivedWhenNoPublishersOldTimestamp()", "NotificationParserTest", - "NotificationParserTest/testExtractUserKeyHashFromChannel()", - "NotificationParserTest/testProcessControl()", - "NotificationParserTest/testProcessError()", - "NotificationParserTest/testProcessMyLargeSegmentUpdateAllFields()", - "NotificationParserTest/testProcessMyLargeSegmentUpdateRemoval()", - "NotificationParserTest/testProcessMyLargeSegmentUpdateUnbounded()", - "NotificationParserTest/testProcessMySegmentUpdateAllFields()", - "NotificationParserTest/testProcessMySegmentUpdateRemoval()", - "NotificationParserTest/testProcessMySegmentUpdateUnbounded()", - "NotificationParserTest/testProcessOccupancy()", - "NotificationParserTest/testProcessSplitKill()", - "NotificationParserTest/testProcessSplitUpdate()", + "NotificationParserTest\/testExtractUserKeyHashFromChannel()", + "NotificationParserTest\/testProcessControl()", + "NotificationParserTest\/testProcessError()", + "NotificationParserTest\/testProcessMyLargeSegmentUpdateAllFields()", + "NotificationParserTest\/testProcessMyLargeSegmentUpdateRemoval()", + "NotificationParserTest\/testProcessMyLargeSegmentUpdateUnbounded()", + "NotificationParserTest\/testProcessMySegmentUpdateAllFields()", + "NotificationParserTest\/testProcessMySegmentUpdateRemoval()", + "NotificationParserTest\/testProcessMySegmentUpdateUnbounded()", + "NotificationParserTest\/testProcessOccupancy()", + "NotificationParserTest\/testProcessSplitKill()", + "NotificationParserTest\/testProcessSplitUpdate()", "PeriodicMySegmentsSyncWorkerTest", - "PeriodicMySegmentsSyncWorkerTest/testFetchWhenNoSegmentsReadyYet()", - "PeriodicMySegmentsSyncWorkerTest/testNormalFetchSdkIsReady()", + "PeriodicMySegmentsSyncWorkerTest\/testFetchWhenNoSegmentsReadyYet()", + "PeriodicMySegmentsSyncWorkerTest\/testNormalFetchSdkIsReady()", "PeriodicSplitsSyncWorkerTest", - "PeriodicSplitsSyncWorkerTest/testNoSdkReadyFetch()", - "PeriodicSplitsSyncWorkerTest/testNormalFetch()", + "PeriodicSplitsSyncWorkerTest\/testNoSdkReadyFetch()", + "PeriodicSplitsSyncWorkerTest\/testNormalFetch()", "PersistentAttributesStorageTests", - "PersistentAttributesStorageTests/testAll()", - "PersistentAttributesStorageTests/testClear()", - "PersistentAttributesStorageTests/testSet()", + "PersistentAttributesStorageTests\/testAll()", + "PersistentAttributesStorageTests\/testClear()", + "PersistentAttributesStorageTests\/testSet()", "PersistentImpressionsStorageTest", "PersistentMyLargeSegmentsStorageTests", - "PersistentMyLargeSegmentsStorageTests/testClear()", - "PersistentMyLargeSegmentsStorageTests/testGetSnapshot()", - "PersistentMyLargeSegmentsStorageTests/testSet()", - "PersistentMyLargeSegmentsStorageTests/testSetMultiKey()", + "PersistentMyLargeSegmentsStorageTests\/testClear()", + "PersistentMyLargeSegmentsStorageTests\/testGetSnapshot()", + "PersistentMyLargeSegmentsStorageTests\/testSet()", + "PersistentMyLargeSegmentsStorageTests\/testSetMultiKey()", "PersistentMySegmentsStorageTests", - "PersistentMySegmentsStorageTests/testClear()", - "PersistentMySegmentsStorageTests/testGetSnapshot()", - "PersistentMySegmentsStorageTests/testGetSnapshotMultiKey()", - "PersistentMySegmentsStorageTests/testSet()", - "PersistentMySegmentsStorageTests/testSetMultiKey()", + "PersistentMySegmentsStorageTests\/testClear()", + "PersistentMySegmentsStorageTests\/testGetSnapshot()", + "PersistentMySegmentsStorageTests\/testGetSnapshotMultiKey()", + "PersistentMySegmentsStorageTests\/testSet()", + "PersistentMySegmentsStorageTests\/testSetMultiKey()", "PersistentUniqueKeysStorageTests", - "PersistentUniqueKeysStorageTests/testDelete()", - "PersistentUniqueKeysStorageTests/testPop()", - "PersistentUniqueKeysStorageTests/testPush()", - "PersistentUniqueKeysStorageTests/testSetActive()", + "PersistentUniqueKeysStorageTests\/testDelete()", + "PersistentUniqueKeysStorageTests\/testPop()", + "PersistentUniqueKeysStorageTests\/testPush()", + "PersistentUniqueKeysStorageTests\/testSetActive()", "PushManagerEventBroadcasterTest", - "PushManagerEventBroadcasterTest/testStop()", + "PushManagerEventBroadcasterTest\/testStop()", "PushNotificationManagerTest", - "PushNotificationManagerTest/testResetConnectionOk()", - "PushNotificationManagerTest/testStartAuthReintent()", - "PushNotificationManagerTest/testStartFullConnectionOk()", - "PushNotificationManagerTest/testStartSseReintent()", - "PushNotificationManagerTest/testStop()", - "PushNotificationManagerTest/testStreamingDisabled()", + "PushNotificationManagerTest\/testResetConnectionOk()", + "PushNotificationManagerTest\/testStartAuthReintent()", + "PushNotificationManagerTest\/testStartFullConnectionOk()", + "PushNotificationManagerTest\/testStartSseReintent()", + "PushNotificationManagerTest\/testStop()", + "PushNotificationManagerTest\/testStreamingDisabled()", "ReadyFromCacheTest", - "ReadyFromCacheTest/testExistingSplitsAndConnectionOk()", - "ReadyFromCacheTest/testExistingSplitsAndNoConnection()", - "ReadyFromCacheTest/testLargeSegmentsEnabled()", - "ReadyFromCacheTest/testNotExistingSplitsAndConnectionOk()", - "ReadyFromCacheTest/testPersistentAttributesDisabled()", - "ReadyFromCacheTest/testSplitsAndConnOk_FromNoSplitFilterToFilter()", - "ReadyFromCacheTest/testSplitsAndConnOk_FromSplitFilterToNoFilter()", + "ReadyFromCacheTest\/testExistingSplitsAndConnectionOk()", + "ReadyFromCacheTest\/testExistingSplitsAndNoConnection()", + "ReadyFromCacheTest\/testLargeSegmentsEnabled()", + "ReadyFromCacheTest\/testNotExistingSplitsAndConnectionOk()", + "ReadyFromCacheTest\/testPersistentAttributesDisabled()", + "ReadyFromCacheTest\/testSplitsAndConnOk_FromNoSplitFilterToFilter()", + "ReadyFromCacheTest\/testSplitsAndConnOk_FromSplitFilterToNoFilter()", "ReconnectBackoffCounterTest", - "ReconnectBackoffCounterTest/testBase2()", - "ReconnectBackoffCounterTest/testBase3()", - "ReconnectBackoffCounterTest/testBase8()", + "ReconnectBackoffCounterTest\/testBase2()", + "ReconnectBackoffCounterTest\/testBase3()", + "ReconnectBackoffCounterTest\/testBase8()", "RecorderFlusherCheckerTests", - "RecorderFlusherCheckerTests/testBytesLimit()", + "RecorderFlusherCheckerTests\/testBytesLimit()", "RegexTest", - "RegexTest/testsRegex()", + "RegexTest\/testsRegex()", "RolloutCacheConfigurationTest", - "RolloutCacheConfigurationTest/testClearOnInitIsCorrectlySet()", - "RolloutCacheConfigurationTest/testDefaultValues()", - "RolloutCacheConfigurationTest/testExpirationIsCorrectlySet()", - "RolloutCacheConfigurationTest/testNegativeExpirationIsSetToDefault()", + "RolloutCacheConfigurationTest\/testClearOnInitIsCorrectlySet()", + "RolloutCacheConfigurationTest\/testDefaultValues()", + "RolloutCacheConfigurationTest\/testExpirationIsCorrectlySet()", + "RolloutCacheConfigurationTest\/testNegativeExpirationIsSetToDefault()", "RolloutCacheManagerIntegrationTest", - "RolloutCacheManagerIntegrationTest/testClearOnInitClearCacheOnStartup()", - "RolloutCacheManagerIntegrationTest/testExpirationPeriodIsUsed()", - "RolloutCacheManagerIntegrationTest/testRepeatedInitWithClearOnInitSetToTrueDoesNotClearIfMinDaysHasNotElapsed()", + "RolloutCacheManagerIntegrationTest\/testClearOnInitClearCacheOnStartup()", + "RolloutCacheManagerIntegrationTest\/testExpirationPeriodIsUsed()", + "RolloutCacheManagerIntegrationTest\/testRepeatedInitWithClearOnInitSetToTrueDoesNotClearIfMinDaysHasNotElapsed()", "RolloutCacheManagerTest", - "RolloutCacheManagerTest/testDefaultValueForLastClearTimestampClearsCacheWhenClearOnInitIsTrue()", - "RolloutCacheManagerTest/testDefaultValueForUpdateTimestampDoesNotClearCache()", - "RolloutCacheManagerTest/testValidateCacheCallsClearOnStorageOnlyOnceWhenExecutedConsecutively()", - "RolloutCacheManagerTest/testValidateCacheCallsClearOnStoragesWhenExpirationIsNotSurpassedAndClearOnInitIsTrue()", - "RolloutCacheManagerTest/testValidateCacheCallsClearOnStoragesWhenExpirationIsSurpassed()", - "RolloutCacheManagerTest/testValidateCacheDoesNotCallClearOnStoragesWhenExpirationIsNotSurpassedAndClearOnInitIsFalse()", - "RolloutCacheManagerTest/testValidateCacheDoesNotUpdateLastClearTimestampWhenStoragesAreNotCleared()", - "RolloutCacheManagerTest/testValidateCacheUpdatesLastClearTimestampWhenStoragesAreCleared()", + "RolloutCacheManagerTest\/testDefaultValueForLastClearTimestampClearsCacheWhenClearOnInitIsTrue()", + "RolloutCacheManagerTest\/testDefaultValueForUpdateTimestampDoesNotClearCache()", + "RolloutCacheManagerTest\/testValidateCacheCallsClearOnStorageOnlyOnceWhenExecutedConsecutively()", + "RolloutCacheManagerTest\/testValidateCacheCallsClearOnStoragesWhenExpirationIsNotSurpassedAndClearOnInitIsTrue()", + "RolloutCacheManagerTest\/testValidateCacheCallsClearOnStoragesWhenExpirationIsSurpassed()", + "RolloutCacheManagerTest\/testValidateCacheDoesNotCallClearOnStoragesWhenExpirationIsNotSurpassedAndClearOnInitIsFalse()", + "RolloutCacheManagerTest\/testValidateCacheDoesNotUpdateLastClearTimestampWhenStoragesAreNotCleared()", + "RolloutCacheManagerTest\/testValidateCacheUpdatesLastClearTimestampWhenStoragesAreCleared()", "SdkUpdateStreamingTest", - "SdkUpdateStreamingTest/testReady()", - "SdkUpdateStreamingTest/testSdkUpdateMySegmentsWhenNotificationArrives()", - "SdkUpdateStreamingTest/testSdkUpdateSplitsWhenNotificationArrives()", + "SdkUpdateStreamingTest\/testReady()", + "SdkUpdateStreamingTest\/testSdkUpdateMySegmentsWhenNotificationArrives()", + "SdkUpdateStreamingTest\/testSdkUpdateSplitsWhenNotificationArrives()", "SegmentsSyncHelperTests", - "SegmentsSyncHelperTests/testCdnByPassNoTillChange()", - "SegmentsSyncHelperTests/testCdnByPassNoTillNoChange()", - "SegmentsSyncHelperTests/testCdnByPassTill()", - "SegmentsSyncHelperTests/testDidffGoallCnMs()", - "SegmentsSyncHelperTests/testDiffGoalCnMls()", + "SegmentsSyncHelperTests\/testCdnByPassNoTillChange()", + "SegmentsSyncHelperTests\/testCdnByPassNoTillNoChange()", + "SegmentsSyncHelperTests\/testCdnByPassTill()", + "SegmentsSyncHelperTests\/testDidffGoallCnMs()", + "SegmentsSyncHelperTests\/testDiffGoalCnMls()", "SegmentsUpdateWorkerTests", - "SegmentsUpdateWorkerTests/testLargeSegmentsKeyListAdd()", - "SegmentsUpdateWorkerTests/testLargeSegmentsKeyListNoAction()", - "SegmentsUpdateWorkerTests/testLargeSegmentsKeyListRemoval()", - "SegmentsUpdateWorkerTests/testMyLargeSegmentsNonRemoval()", - "SegmentsUpdateWorkerTests/testMyLargeSegmentsRemoval()", - "SegmentsUpdateWorkerTests/testMySegmentsNonRemoval()", - "SegmentsUpdateWorkerTests/testMySegmentsRemoval()", - "SegmentsUpdateWorkerTests/testSegmentsKeyListAdd()", - "SegmentsUpdateWorkerTests/testSegmentsKeyListNoAction()", - "SegmentsUpdateWorkerTests/testSegmentsKeyListRemove()", - "SegmentsUpdateWorkerTests/testUnbounded()", - "SegmentsUpdateWorkerTests/testUnboundedLarge()", + "SegmentsUpdateWorkerTests\/testLargeSegmentsKeyListAdd()", + "SegmentsUpdateWorkerTests\/testLargeSegmentsKeyListNoAction()", + "SegmentsUpdateWorkerTests\/testLargeSegmentsKeyListRemoval()", + "SegmentsUpdateWorkerTests\/testMyLargeSegmentsNonRemoval()", + "SegmentsUpdateWorkerTests\/testMyLargeSegmentsRemoval()", + "SegmentsUpdateWorkerTests\/testMySegmentsNonRemoval()", + "SegmentsUpdateWorkerTests\/testMySegmentsRemoval()", + "SegmentsUpdateWorkerTests\/testSegmentsKeyListAdd()", + "SegmentsUpdateWorkerTests\/testSegmentsKeyListNoAction()", + "SegmentsUpdateWorkerTests\/testSegmentsKeyListRemove()", + "SegmentsUpdateWorkerTests\/testUnbounded()", + "SegmentsUpdateWorkerTests\/testUnboundedLarge()", "SemverIntegrationTest", - "SemverIntegrationTest/testBetweenSemverMatcher()", - "SemverIntegrationTest/testEqualToSemverMatcher()", - "SemverIntegrationTest/testInListSemverMatcher()", - "SemverIntegrationTest/testLessThanOrEqualToSemverMatcher()", + "SemverIntegrationTest\/testBetweenSemverMatcher()", + "SemverIntegrationTest\/testEqualToSemverMatcher()", + "SemverIntegrationTest\/testInListSemverMatcher()", + "SemverIntegrationTest\/testLessThanOrEqualToSemverMatcher()", "SemverTest", - "SemverTest/testBetween()", - "SemverTest/testEqualTo()", - "SemverTest/testGreaterThanOrEqualTo()", - "SemverTest/testInvalidFormats()", - "SemverTest/testLessThanOrEqualTo()", - "ServiceEndpointsTests/testBuilderValidationAuthError()", - "ServiceEndpointsTests/testBuilderValidationEventsError()", - "ServiceEndpointsTests/testBuilderValidationOk()", - "ServiceEndpointsTests/testBuilderValidationSdkError()", - "ServiceEndpointsTests/testBuilderValidationStreamingError()", - "ServiceEndpointsTests/testBuilderValidationTelemetryError()", - "SingleSyncTest/testSingleSyncEnabledImpressionsDebug()", - "SingleSyncTest/testSingleSyncEnabledImpressionsNone()", - "SingleSyncTest/testSingleSyncEnabledImpressionsOptmized()", + "SemverTest\/testBetween()", + "SemverTest\/testEqualTo()", + "SemverTest\/testGreaterThanOrEqualTo()", + "SemverTest\/testInvalidFormats()", + "SemverTest\/testLessThanOrEqualTo()", + "ServiceEndpointsTests\/testBuilderValidationAuthError()", + "ServiceEndpointsTests\/testBuilderValidationEventsError()", + "ServiceEndpointsTests\/testBuilderValidationOk()", + "ServiceEndpointsTests\/testBuilderValidationSdkError()", + "ServiceEndpointsTests\/testBuilderValidationStreamingError()", + "ServiceEndpointsTests\/testBuilderValidationTelemetryError()", + "SingleSyncTest\/testSingleSyncEnabledImpressionsDebug()", + "SingleSyncTest\/testSingleSyncEnabledImpressionsNone()", + "SingleSyncTest\/testSingleSyncEnabledImpressionsOptmized()", "SplitChangeProcessorTests", - "SplitChangeProcessorTests/testProcessNoSets()", + "SplitChangeProcessorTests\/testProcessNoSets()", "SplitChangesServerErrorTest", - "SplitChangesServerErrorTest/testChangesError()", + "SplitChangesServerErrorTest\/testChangesError()", "SplitChangesTest", - "SplitChangesTest/test()", + "SplitChangesTest\/test()", "SplitClientManagerTest", - "SplitClientManagerTest/testAddClient()", - "SplitClientManagerTest/testDestroyForKey()", - "SplitClientManagerTest/testDestroyLastKey()", - "SplitClientManagerTest/testFlush()", - "SplitClientManagerTest/testInit()", + "SplitClientManagerTest\/testAddClient()", + "SplitClientManagerTest\/testDestroyForKey()", + "SplitClientManagerTest\/testDestroyLastKey()", + "SplitClientManagerTest\/testFlush()", + "SplitClientManagerTest\/testInit()", "SplitClientTests", - "SplitClientTests/testOnBg()", - "SplitClientTests/testOnMain()", - "SplitClientTests/testOnQueue()", + "SplitClientTests\/testOnBg()", + "SplitClientTests\/testOnMain()", + "SplitClientTests\/testOnQueue()", "SplitConfigurationsParsingTest", - "SplitConfigurationsParsingTest/testDecodingArrayAndMapConfig()", - "SplitConfigurationsParsingTest/testEncodingAllValueTypesConfig()", - "SplitConfigurationsParsingTest/testEncodingMapArrayConfig()", - "SplitConfigurationsParsingTest/testEncodingMultiTreatmentConfig()", - "SplitConfigurationsParsingTest/testEncodingNestedMultiConfig()", - "SplitConfigurationsParsingTest/testEncodingNullConfig()", - "SplitConfigurationsParsingTest/testEncodingOneBasicConfig()", + "SplitConfigurationsParsingTest\/testDecodingArrayAndMapConfig()", + "SplitConfigurationsParsingTest\/testEncodingAllValueTypesConfig()", + "SplitConfigurationsParsingTest\/testEncodingMapArrayConfig()", + "SplitConfigurationsParsingTest\/testEncodingMultiTreatmentConfig()", + "SplitConfigurationsParsingTest\/testEncodingNestedMultiConfig()", + "SplitConfigurationsParsingTest\/testEncodingNullConfig()", + "SplitConfigurationsParsingTest\/testEncodingOneBasicConfig()", "SplitDaoTest", - "SplitDaoTest/testCreateGetAes128Cbc()", - "SplitDaoTest/testCreateGetPlainText()", - "SplitDaoTest/testDataIsEncryptedInDb()", - "SplitDaoTest/testDeleteAllAes128Cbc()", - "SplitDaoTest/testDeleteAllPlainText()", - "SplitDaoTest/testGetUpdate()", - "SplitDaoTest/testGetUpdateAes128Cbc()", - "SplitDaoTest/testGetUpdateSeveralAes128Cbc()", - "SplitDaoTest/testGetUpdateSeveralPlainText()", + "SplitDaoTest\/testCreateGetAes128Cbc()", + "SplitDaoTest\/testCreateGetPlainText()", + "SplitDaoTest\/testDataIsEncryptedInDb()", + "SplitDaoTest\/testDeleteAllAes128Cbc()", + "SplitDaoTest\/testDeleteAllPlainText()", + "SplitDaoTest\/testGetUpdate()", + "SplitDaoTest\/testGetUpdateAes128Cbc()", + "SplitDaoTest\/testGetUpdateSeveralAes128Cbc()", + "SplitDaoTest\/testGetUpdateSeveralPlainText()", "SplitEventsCoordinatorTest", - "SplitEventsCoordinatorTest/testAddNotifyRemoveManager()", - "SplitEventsCoordinatorTest/testEventsAfterAdd()", - "SplitEventsCoordinatorTest/testEventsBeforeAdd()", - "SplitEventsCoordinatorTest/testStop()", + "SplitEventsCoordinatorTest\/testAddNotifyRemoveManager()", + "SplitEventsCoordinatorTest\/testEventsAfterAdd()", + "SplitEventsCoordinatorTest\/testEventsBeforeAdd()", + "SplitEventsCoordinatorTest\/testStop()", "SplitEventsManagerTest", - "SplitEventsManagerTest/testSdkReady()", - "SplitEventsManagerTest/testSdkReadyAndReadyTimeOut()", - "SplitEventsManagerTest/testSdkReadyFromCacheAndReady()", - "SplitEventsManagerTest/testSdkReadyFromCacheAndReadyTimeout()", - "SplitEventsManagerTest/testSdkReadyTimeOut()", - "SplitEventsManagerTest/testSdkUpdateMySegments()", - "SplitEventsManagerTest/testSdkUpdateSplits()", - "SplitEventsManagerTest/testSplitKilledNoSdkReady()", - "SplitEventsManagerTest/testSplitKilledWhenReady()", + "SplitEventsManagerTest\/testSdkReady()", + "SplitEventsManagerTest\/testSdkReadyAndReadyTimeOut()", + "SplitEventsManagerTest\/testSdkReadyFromCacheAndReady()", + "SplitEventsManagerTest\/testSdkReadyFromCacheAndReadyTimeout()", + "SplitEventsManagerTest\/testSdkReadyTimeOut()", + "SplitEventsManagerTest\/testSdkUpdateMySegments()", + "SplitEventsManagerTest\/testSdkUpdateSplits()", + "SplitEventsManagerTest\/testSplitKilledNoSdkReady()", + "SplitEventsManagerTest\/testSplitKilledWhenReady()", "SplitFactoryBuilderTests", - "SplitFactoryBuilderTests/testEmptyApiKey()", - "SplitFactoryBuilderTests/testKey()", - "SplitFactoryBuilderTests/testLongBucketingKey()", - "SplitFactoryBuilderTests/testLongMatchingKey()", - "SplitFactoryBuilderTests/testMultiFactoryDifferentKey()", - "SplitFactoryBuilderTests/testMultiFactorySameKey()", - "SplitFactoryBuilderTests/testMultiFactoryTwoSameKey()", - "SplitFactoryBuilderTests/testNullApiKey()", - "SplitFactoryBuilderTests/testNullKey()", - "SplitFactoryBuilderTests/testNullMatchingKey()", - "SplitFactoryBuilderTests/testNullValues()", + "SplitFactoryBuilderTests\/testEmptyApiKey()", + "SplitFactoryBuilderTests\/testKey()", + "SplitFactoryBuilderTests\/testLongBucketingKey()", + "SplitFactoryBuilderTests\/testLongMatchingKey()", + "SplitFactoryBuilderTests\/testMultiFactoryDifferentKey()", + "SplitFactoryBuilderTests\/testMultiFactorySameKey()", + "SplitFactoryBuilderTests\/testMultiFactoryTwoSameKey()", + "SplitFactoryBuilderTests\/testNullApiKey()", + "SplitFactoryBuilderTests\/testNullKey()", + "SplitFactoryBuilderTests\/testNullMatchingKey()", + "SplitFactoryBuilderTests\/testNullValues()", "SplitIntegrationTests", - "SplitIntegrationTests/testControlTreatment()", - "SplitIntegrationTests/testImpressionsCount()", - "SplitIntegrationTests/testReadyMyLargeSegmentsEnabledError()", - "SplitIntegrationTests/testReadyMyLargeSegmentsEnabledNoWaitMls()", - "SplitIntegrationTests/testReadyMyLargeSegmentsEnabledWaitMls()", - "SplitIntegrationTests/testReadyNoRef()", + "SplitIntegrationTests\/testControlTreatment()", + "SplitIntegrationTests\/testImpressionsCount()", + "SplitIntegrationTests\/testReadyMyLargeSegmentsEnabledError()", + "SplitIntegrationTests\/testReadyMyLargeSegmentsEnabledNoWaitMls()", + "SplitIntegrationTests\/testReadyMyLargeSegmentsEnabledWaitMls()", + "SplitIntegrationTests\/testReadyNoRef()", "SplitManagerTest", - "SplitManagerTest/testAddOneSplit()", - "SplitManagerTest/testEmptyName()", - "SplitManagerTest/testInitialSplitLoaded()", - "SplitManagerTest/testSplitInfo()", + "SplitManagerTest\/testAddOneSplit()", + "SplitManagerTest\/testEmptyName()", + "SplitManagerTest\/testInitialSplitLoaded()", + "SplitManagerTest\/testSplitInfo()", "SplitSdkUpdatePollingTest", - "SplitSdkUpdatePollingTest/testSdkReadyOnly()", - "SplitSdkUpdatePollingTest/testSdkUpdateMySegments()", - "SplitSdkUpdatePollingTest/testSdkUpdateSplits()", + "SplitSdkUpdatePollingTest\/testSdkReadyOnly()", + "SplitSdkUpdatePollingTest\/testSdkUpdateMySegments()", + "SplitSdkUpdatePollingTest\/testSdkUpdateSplits()", "SplitValidatorTests", - "SplitValidatorTests/testEmptyName()", - "SplitValidatorTests/testExistingSplit()", - "SplitValidatorTests/testLeadingSpacesName()", - "SplitValidatorTests/testNoExistingSplit()", - "SplitValidatorTests/testNullName()", - "SplitValidatorTests/testTrailingSpacesName()", - "SplitValidatorTests/testValidName()", + "SplitValidatorTests\/testEmptyName()", + "SplitValidatorTests\/testExistingSplit()", + "SplitValidatorTests\/testLeadingSpacesName()", + "SplitValidatorTests\/testNoExistingSplit()", + "SplitValidatorTests\/testNullName()", + "SplitValidatorTests\/testTrailingSpacesName()", + "SplitValidatorTests\/testValidName()", "SplitsBgSyncWorkerTest", - "SplitsBgSyncWorkerTest/testClearExpiredCache()", - "SplitsBgSyncWorkerTest/testFetchFail()", - "SplitsBgSyncWorkerTest/testFetchSuccess()", - "SplitsBgSyncWorkerTest/testNoClearNonExpiredCache()", + "SplitsBgSyncWorkerTest\/testClearExpiredCache()", + "SplitsBgSyncWorkerTest\/testFetchFail()", + "SplitsBgSyncWorkerTest\/testFetchSuccess()", + "SplitsBgSyncWorkerTest\/testNoClearNonExpiredCache()", "SplitsChangesCheckerTest", - "SplitsChangesCheckerTest/testSplitsChangesArrived()", - "SplitsChangesCheckerTest/testSplitsNoChangesEqualChangeNumber()", - "SplitsChangesCheckerTest/testSplitsNoChangesMinorChangeNumber()", + "SplitsChangesCheckerTest\/testSplitsChangesArrived()", + "SplitsChangesCheckerTest\/testSplitsNoChangesEqualChangeNumber()", + "SplitsChangesCheckerTest\/testSplitsNoChangesMinorChangeNumber()", "SplitsDecoderTest", - "SplitsDecoderTest/testDecodeMultiThreads()", - "SplitsDecoderTest/testDecodeOneThread()", - "SplitsDecoderTest/testDecodeTwoThreads()", + "SplitsDecoderTest\/testDecodeMultiThreads()", + "SplitsDecoderTest\/testDecodeOneThread()", + "SplitsDecoderTest\/testDecodeTwoThreads()", "SplitsEncoderTest", - "SplitsEncoderTest/testDecodeMultiThread()", - "SplitsEncoderTest/testDecodeOneThread()", - "SplitsEncoderTest/testDecodeTwoThread()", + "SplitsEncoderTest\/testDecodeMultiThread()", + "SplitsEncoderTest\/testDecodeOneThread()", + "SplitsEncoderTest\/testDecodeTwoThread()", "SplitsStorageTrafficTypesTests", - "SplitsStorageTrafficTypesTests/testChangedTrafficTypeForSplit()", - "SplitsStorageTrafficTypesTests/testExistingChangedTrafficTypeForSplit()", - "SplitsStorageTrafficTypesTests/testInitialtrafficTypes()", - "SplitsStorageTrafficTypesTests/testOverflowArchived()", - "SplitsStorageTrafficTypesTests/testRemove2TrafficTypes()", - "SplitsStorageTrafficTypesTests/testSeveralTrafficTypeUpdatesFinalActive()", - "SplitsStorageTrafficTypesTests/testSeveralTrafficTypeUpdatesFinalArchived()", - "SplitsStorageTrafficTypesTests/testUpdatedSplitTrafficType()", + "SplitsStorageTrafficTypesTests\/testChangedTrafficTypeForSplit()", + "SplitsStorageTrafficTypesTests\/testExistingChangedTrafficTypeForSplit()", + "SplitsStorageTrafficTypesTests\/testInitialtrafficTypes()", + "SplitsStorageTrafficTypesTests\/testOverflowArchived()", + "SplitsStorageTrafficTypesTests\/testRemove2TrafficTypes()", + "SplitsStorageTrafficTypesTests\/testSeveralTrafficTypeUpdatesFinalActive()", + "SplitsStorageTrafficTypesTests\/testSeveralTrafficTypeUpdatesFinalArchived()", + "SplitsStorageTrafficTypesTests\/testUpdatedSplitTrafficType()", "SplitsSyncWorkerTest", - "SplitsSyncWorkerTest/testChangedFlagsSpecString()", - "SplitsSyncWorkerTest/testChangedQueryString()", - "SplitsSyncWorkerTest/testClearExpiredCache()", - "SplitsSyncWorkerTest/testClearExpiredCacheAndChangedQs()", - "SplitsSyncWorkerTest/testNoClearNonExpiredCache()", - "SplitsSyncWorkerTest/testRetryAndSuccess()", - "SplitsSyncWorkerTest/testUriTooLongError()", + "SplitsSyncWorkerTest\/testChangedFlagsSpecString()", + "SplitsSyncWorkerTest\/testChangedQueryString()", + "SplitsSyncWorkerTest\/testClearExpiredCache()", + "SplitsSyncWorkerTest\/testClearExpiredCacheAndChangedQs()", + "SplitsSyncWorkerTest\/testNoClearNonExpiredCache()", + "SplitsSyncWorkerTest\/testRetryAndSuccess()", + "SplitsSyncWorkerTest\/testUriTooLongError()", "SplitsUpdateWorkerTest", - "SplitsUpdateWorkerTest/testOldChangeNumber()", - "SplitsUpdateWorkerTest/testOneTimeFetchSuccess()", - "SplitsUpdateWorkerTest/testRetryAndSuccess()", - "SplitsUpdateWorkerTest/testStopNoSuccess()", - "SseAuthenticatorTest/testEmptyTokenResponse()", - "SseAuthenticatorTest/testNoRecoverableError()", - "SseAuthenticatorTest/testRecoverableError()", - "SseAuthenticatorTest/testSuccesfulMultiUserKeyRequest()", - "SseAuthenticatorTest/testSuccesfulRequest()", + "SplitsUpdateWorkerTest\/testOldChangeNumber()", + "SplitsUpdateWorkerTest\/testOneTimeFetchSuccess()", + "SplitsUpdateWorkerTest\/testRetryAndSuccess()", + "SplitsUpdateWorkerTest\/testStopNoSuccess()", + "SseAuthenticatorTest\/testEmptyTokenResponse()", + "SseAuthenticatorTest\/testNoRecoverableError()", + "SseAuthenticatorTest\/testRecoverableError()", + "SseAuthenticatorTest\/testSuccesfulMultiUserKeyRequest()", + "SseAuthenticatorTest\/testSuccesfulRequest()", "SseClientTest", - "SseClientTest/testConnect()", - "SseClientTest/testDisconnect()", - "SseClientTest/testDisconnectFromServer()", - "SseClientTest/testOnErrorAfterConnectionSuccess()", - "SseClientTest/testOnErrorExceptionWhileRequest()", - "SseClientTest/testOnErrorNonRecoverable()", - "SseClientTest/testOnErrorRecoverable()", - "SseClientTest/testOnMessage()", + "SseClientTest\/testConnect()", + "SseClientTest\/testDisconnect()", + "SseClientTest\/testDisconnectFromServer()", + "SseClientTest\/testOnErrorAfterConnectionSuccess()", + "SseClientTest\/testOnErrorExceptionWhileRequest()", + "SseClientTest\/testOnErrorNonRecoverable()", + "SseClientTest\/testOnErrorRecoverable()", + "SseClientTest\/testOnMessage()", "SseHandlerTest", - "SseHandlerTest/testIncomingControlStreaming()", - "SseHandlerTest/testIncomingHightRetryableSseError()", - "SseHandlerTest/testIncomingIgnorableSseErrorTest()", - "SseHandlerTest/testIncomingLowNonRetryableSseError()", - "SseHandlerTest/testIncomingLowRetryableSseError()", - "SseHandlerTest/testIncomingMySegmentsUpdate()", - "SseHandlerTest/testIncomingOccupancy()", - "SseHandlerTest/testIncomingSplitKill()", - "SseHandlerTest/testIncomingSplitUpdate()", - "SseHandlerTest/testNoProcessIncomingWhenStreamingInactive()", + "SseHandlerTest\/testIncomingControlStreaming()", + "SseHandlerTest\/testIncomingHightRetryableSseError()", + "SseHandlerTest\/testIncomingIgnorableSseErrorTest()", + "SseHandlerTest\/testIncomingLowNonRetryableSseError()", + "SseHandlerTest\/testIncomingLowRetryableSseError()", + "SseHandlerTest\/testIncomingMySegmentsUpdate()", + "SseHandlerTest\/testIncomingOccupancy()", + "SseHandlerTest\/testIncomingSplitKill()", + "SseHandlerTest\/testIncomingSplitUpdate()", + "SseHandlerTest\/testNoProcessIncomingWhenStreamingInactive()", "SseNotificationProcessorTest", - "SseNotificationProcessorTest/testProcessMyLargeSegmentsUpdateKeyListRequest()", - "SseNotificationProcessorTest/testProcessMySegmentsUpdateBoundedRequest()", - "SseNotificationProcessorTest/testProcessMySegmentsUpdateKeyListRequest()", - "SseNotificationProcessorTest/testProcessMySegmentsUpdateUnboundedFetchRequest()", - "SseNotificationProcessorTest/testProcessSplitKill()", - "SseNotificationProcessorTest/testProcessSplitKillException()", - "SseNotificationProcessorTest/testProcessSplitKillNullJson()", - "SseNotificationProcessorTest/testProcessSplitUpdate()", - "SseNotificationProcessorTest/testProcessSplitUpdateException()", - "SseNotificationProcessorTest/testProcessSplitUpdateNullJson()", + "SseNotificationProcessorTest\/testProcessMyLargeSegmentsUpdateKeyListRequest()", + "SseNotificationProcessorTest\/testProcessMySegmentsUpdateBoundedRequest()", + "SseNotificationProcessorTest\/testProcessMySegmentsUpdateKeyListRequest()", + "SseNotificationProcessorTest\/testProcessMySegmentsUpdateUnboundedFetchRequest()", + "SseNotificationProcessorTest\/testProcessSplitKill()", + "SseNotificationProcessorTest\/testProcessSplitKillException()", + "SseNotificationProcessorTest\/testProcessSplitKillNullJson()", + "SseNotificationProcessorTest\/testProcessSplitUpdate()", + "SseNotificationProcessorTest\/testProcessSplitUpdateException()", + "SseNotificationProcessorTest\/testProcessSplitUpdateNullJson()", "StreamingAuthFail4xxTest", - "StreamingAuthFail4xxTest/testInit()", + "StreamingAuthFail4xxTest\/testInit()", "StreamingAuthFail5xxTest", - "StreamingAuthFail5xxTest/testInit()", + "StreamingAuthFail5xxTest\/testInit()", "StreamingBgReconnectTest", "StreamingConnFail5xxTest", - "StreamingConnFail5xxTest/testInit()", + "StreamingConnFail5xxTest\/testInit()", "StreamingControlResetTest", - "StreamingControlResetTest/testStreamingReset()", + "StreamingControlResetTest\/testStreamingReset()", "StreamingControlTest", - "StreamingControlTest/testControl()", + "StreamingControlTest\/testControl()", "StreamingDelaytTest", - "StreamingDelaytTest/testDelayOnReconnect()", - "StreamingDelaytTest/testDelayOnReconnectStress()", - "StreamingDelaytTest/testNoStreamingDelay()", - "StreamingDelaytTest/testStreamingDelay()", + "StreamingDelaytTest\/testDelayOnReconnect()", + "StreamingDelaytTest\/testDelayOnReconnectStress()", + "StreamingDelaytTest\/testNoStreamingDelay()", + "StreamingDelaytTest\/testStreamingDelay()", "StreamingDisabledTest", - "StreamingDisabledTest/testOccupancy()", + "StreamingDisabledTest\/testOccupancy()", "StreamingInitTest", - "StreamingInitTest/testInit()", - "StreamingInitTest/testInitWithoutSpec()", + "StreamingInitTest\/testInit()", + "StreamingInitTest\/testInitWithoutSpec()", "StreamingMySegmentsSyncTest", - "StreamingMySegmentsSyncTest/testInit()", + "StreamingMySegmentsSyncTest\/testInit()", "StreamingNoReconectWhenPollingTest", - "StreamingNoReconectWhenPollingTest/testShouldNoReconnect()", - "StreamingNoReconectWhenPollingTest/testShouldReconnect()", + "StreamingNoReconectWhenPollingTest\/testShouldNoReconnect()", + "StreamingNoReconectWhenPollingTest\/testShouldReconnect()", "StreamingOccupancyTest", - "StreamingOccupancyTest/testOccupancy()", + "StreamingOccupancyTest\/testOccupancy()", "StreamingSplitKillTest", - "StreamingSplitKillTest/testSplitKill()", + "StreamingSplitKillTest\/testSplitKill()", "StreamingSplitsSyncTest", - "StreamingSplitsSyncTest/testInit()", + "StreamingSplitsSyncTest\/testInit()", "SyncConfigTest", - "SyncConfigTest/testEmptyFilterValuesDiscarded()", - "SyncConfigTest/testFilterByPrefix()", - "SyncConfigTest/testFilterName()", - "SyncConfigTest/testInvalidFilterValuesDiscarded()", - "SyncConfigTest/testSyncBuilder()", + "SyncConfigTest\/testEmptyFilterValuesDiscarded()", + "SyncConfigTest\/testFilterByPrefix()", + "SyncConfigTest\/testFilterName()", + "SyncConfigTest\/testInvalidFilterValuesDiscarded()", + "SyncConfigTest\/testSyncBuilder()", "SyncDictionaryCollectionWrapperTest", - "SyncDictionaryCollectionWrapperTest/testAllValues()", - "SyncDictionaryCollectionWrapperTest/testInitialAppend()", - "SyncDictionaryCollectionWrapperTest/testRemoveValue()", + "SyncDictionaryCollectionWrapperTest\/testAllValues()", + "SyncDictionaryCollectionWrapperTest\/testInitialAppend()", + "SyncDictionaryCollectionWrapperTest\/testRemoveValue()", "SyncDictionarySingleWrapperTest", - "SyncDictionarySingleWrapperTest/testAllValues()", - "SyncDictionarySingleWrapperTest/testInitialSetup()", - "SyncDictionarySingleWrapperTest/testRemoveAllValues()", - "SyncDictionarySingleWrapperTest/testRemoveValue()", + "SyncDictionarySingleWrapperTest\/testAllValues()", + "SyncDictionarySingleWrapperTest\/testInitialSetup()", + "SyncDictionarySingleWrapperTest\/testRemoveAllValues()", + "SyncDictionarySingleWrapperTest\/testRemoveValue()", "SyncGuardianTest", - "SyncGuardianTest/testIncreaseAndDecreasePeriodValidation()", - "SyncGuardianTest/testMinPeriodValidation()", - "SyncGuardianTest/testMustNoSyncDisabled()", - "SyncGuardianTest/testMustNoSyncStreamingDisabled()", - "SyncGuardianTest/testMustNotSyncWhenTimeDoesNotExceed()", - "SyncGuardianTest/testMustSyncWhenTimeExceeds()", - "SyncGuardianTest/testUpdatePeriodValidation()", + "SyncGuardianTest\/testIncreaseAndDecreasePeriodValidation()", + "SyncGuardianTest\/testMinPeriodValidation()", + "SyncGuardianTest\/testMustNoSyncDisabled()", + "SyncGuardianTest\/testMustNoSyncStreamingDisabled()", + "SyncGuardianTest\/testMustNotSyncWhenTimeDoesNotExceed()", + "SyncGuardianTest\/testMustSyncWhenTimeExceeds()", + "SyncGuardianTest\/testUpdatePeriodValidation()", "SyncManagerTest", - "SyncManagerTest/testCredentialPinnedFailNotification()", - "SyncManagerTest/testPauseResume()", - "SyncManagerTest/testPushDelayReceived()", - "SyncManagerTest/testPushNonRetryableError()", - "SyncManagerTest/testPushReset()", - "SyncManagerTest/testPushRetryableError()", - "SyncManagerTest/testPushSubsystemDownReceived()", - "SyncManagerTest/testPushSubsystemUpReceived()", - "SyncManagerTest/testStartSingleModeStreamingDisabled()", - "SyncManagerTest/testStartSingleModeStreamingEnabled()", - "SyncManagerTest/testStartStreamingDisabled()", - "SyncManagerTest/testStartStreamingEnabled()", - "SyncManagerTest/testStop()", - "SyncManagerTest/testSyncExecutedReceived()", + "SyncManagerTest\/testCredentialPinnedFailNotification()", + "SyncManagerTest\/testPauseResume()", + "SyncManagerTest\/testPushDelayReceived()", + "SyncManagerTest\/testPushNonRetryableError()", + "SyncManagerTest\/testPushReset()", + "SyncManagerTest\/testPushRetryableError()", + "SyncManagerTest\/testPushSubsystemDownReceived()", + "SyncManagerTest\/testPushSubsystemUpReceived()", + "SyncManagerTest\/testStartSingleModeStreamingDisabled()", + "SyncManagerTest\/testStartSingleModeStreamingEnabled()", + "SyncManagerTest\/testStartStreamingDisabled()", + "SyncManagerTest\/testStartStreamingEnabled()", + "SyncManagerTest\/testStop()", + "SyncManagerTest\/testSyncExecutedReceived()", "SyncPostBgTest", - "SyncPostBgTest/testSync()", + "SyncPostBgTest\/testSync()", "SyncUpdateWorkerTest", - "SyncUpdateWorkerTest/testSplitKillWorker()", - "SyncUpdateWorkerTest/testSplitUpdateWorkerNoPayload()", - "SyncUpdateWorkerTest/testSplitUpdateWorkerWithPayloadChangeNumberBigger()", - "SyncUpdateWorkerTest/testSplitUpdateWorkerWithPayloadChangeNumberSmaller()", + "SyncUpdateWorkerTest\/testSplitKillWorker()", + "SyncUpdateWorkerTest\/testSplitUpdateWorkerNoPayload()", + "SyncUpdateWorkerTest\/testSplitUpdateWorkerWithPayloadChangeNumberBigger()", + "SyncUpdateWorkerTest\/testSplitUpdateWorkerWithPayloadChangeNumberSmaller()", "SynchronizerTest", - "SynchronizerTest/testDestroy()", - "SynchronizerTest/testDisableEventsEndpoint()", - "SynchronizerTest/testDisableSdkEndpoint()", - "SynchronizerTest/testDisableTelemetry()", - "SynchronizerTest/testEventPush()", - "SynchronizerTest/testFlush()", - "SynchronizerTest/testForceMySegmentsSyncSingleModeEnabled()", - "SynchronizerTest/testForceSynchronizeMySegments()", - "SynchronizerTest/testLoadSplits()", - "SynchronizerTest/testStartByKey()", - "SynchronizerTest/testStartPeriodicFetching()", - "SynchronizerTest/testStartPeriodicFetchingSingleModeEnabled()", - "SynchronizerTest/testStartPeriodicRecordingUserData()", - "SynchronizerTest/testStartRecordingTelemetry()", - "SynchronizerTest/testStopPeriodicFetching()", - "SynchronizerTest/testStopRecordingTelemetry()", - "SynchronizerTest/testStopRecordingUserData()", - "SynchronizerTest/testSynchronizeMySegments()", - "SynchronizerTest/testSynchronizeSplitsWithChangeNumber()", - "SynchronizerTest/testUpdateSplitsSingleModeEnabled()", + "SynchronizerTest\/testDestroy()", + "SynchronizerTest\/testDisableEventsEndpoint()", + "SynchronizerTest\/testDisableSdkEndpoint()", + "SynchronizerTest\/testDisableTelemetry()", + "SynchronizerTest\/testEventPush()", + "SynchronizerTest\/testFlush()", + "SynchronizerTest\/testForceMySegmentsSyncSingleModeEnabled()", + "SynchronizerTest\/testForceSynchronizeMySegments()", + "SynchronizerTest\/testLoadSplits()", + "SynchronizerTest\/testStartByKey()", + "SynchronizerTest\/testStartPeriodicFetching()", + "SynchronizerTest\/testStartPeriodicFetchingSingleModeEnabled()", + "SynchronizerTest\/testStartPeriodicRecordingUserData()", + "SynchronizerTest\/testStartRecordingTelemetry()", + "SynchronizerTest\/testStopPeriodicFetching()", + "SynchronizerTest\/testStopRecordingTelemetry()", + "SynchronizerTest\/testStopRecordingUserData()", + "SynchronizerTest\/testSynchronizeMySegments()", + "SynchronizerTest\/testSynchronizeSplitsWithChangeNumber()", + "SynchronizerTest\/testUpdateSplitsSingleModeEnabled()", "TelemetryConfigRecorderWorkerTests", - "TelemetryConfigRecorderWorkerTests/testFailedAttemptLimit()", - "TelemetryConfigRecorderWorkerTests/testFailedAttemptLimitExceded()", - "TelemetryConfigRecorderWorkerTests/testSendSuccess()", + "TelemetryConfigRecorderWorkerTests\/testFailedAttemptLimit()", + "TelemetryConfigRecorderWorkerTests\/testFailedAttemptLimitExceded()", + "TelemetryConfigRecorderWorkerTests\/testSendSuccess()", "TelemetryIntegrationTest", - "TelemetryIntegrationTest/testConfig()", - "TelemetryIntegrationTest/testConfigTelemetry()", - "TelemetryIntegrationTest/testHttpError()", - "TelemetryIntegrationTest/testRuntimeAndSyncTelemetry()", - "TelemetryIntegrationTest/testStreamingAblyErrorAndSessionLength()", - "TelemetryIntegrationTest/testStreamingTelemetry()", + "TelemetryIntegrationTest\/testConfig()", + "TelemetryIntegrationTest\/testConfigTelemetry()", + "TelemetryIntegrationTest\/testHttpError()", + "TelemetryIntegrationTest\/testRuntimeAndSyncTelemetry()", + "TelemetryIntegrationTest\/testStreamingAblyErrorAndSessionLength()", + "TelemetryIntegrationTest\/testStreamingTelemetry()", "TelemetryStatsRecorderWorkerTests", - "TelemetryStatsRecorderWorkerTests/testConcurrentFlush()", - "TelemetryStatsRecorderWorkerTests/testEndpointNotReachable()", - "TelemetryStatsRecorderWorkerTests/testFailedAttemptLimit()", - "TelemetryStatsRecorderWorkerTests/testFailedAttemptLimitExceded()", - "TelemetryStatsRecorderWorkerTests/testSendSuccess()", + "TelemetryStatsRecorderWorkerTests\/testConcurrentFlush()", + "TelemetryStatsRecorderWorkerTests\/testEndpointNotReachable()", + "TelemetryStatsRecorderWorkerTests\/testFailedAttemptLimit()", + "TelemetryStatsRecorderWorkerTests\/testFailedAttemptLimitExceded()", + "TelemetryStatsRecorderWorkerTests\/testSendSuccess()", "TelemetryTest", - "TelemetryTest/testEvaluationRecording()", - "TelemetryTest/testNonReadyEvaluation()", - "TelemetryTest/testOnlyReadyTime()", - "TelemetryTest/testReadyTime()", + "TelemetryTest\/testEvaluationRecording()", + "TelemetryTest\/testNonReadyEvaluation()", + "TelemetryTest\/testOnlyReadyTime()", + "TelemetryTest\/testReadyTime()", "TelmetrySynchronizerTest", - "TelmetrySynchronizerTest/testStart()", - "TelmetrySynchronizerTest/testStop()", - "TelmetrySynchronizerTest/testSyncConfig()", - "TelmetrySynchronizerTest/testSyncStats()", + "TelmetrySynchronizerTest\/testStart()", + "TelmetrySynchronizerTest\/testStop()", + "TelmetrySynchronizerTest\/testSyncConfig()", + "TelmetrySynchronizerTest\/testSyncStats()", "TimersManagerTest", - "TimersManagerTest/testAddAndCancelTimer()", - "TimersManagerTest/testAddTimer()", + "TimersManagerTest\/testAddAndCancelTimer()", + "TimersManagerTest\/testAddTimer()", "TlsPinningCheckerTests", - "TlsPinningCheckerTests/testAppleEcSpki()", - "TlsPinningCheckerTests/testEc256r1Spki()", - "TlsPinningCheckerTests/testEc384r1Spki()", - "TlsPinningCheckerTests/testEc521r1Spki()", - "TlsPinningCheckerTests/testInvalidChallengeMethod()", - "TlsPinningCheckerTests/testInvalidChallengeNoSecTrust()", - "TlsPinningCheckerTests/testRsa3072Spki()", - "TlsPinningCheckerTests/testRsa4096Spki()", - "TlsPinningCheckerTests/testUntrustedCertificate()", + "TlsPinningCheckerTests\/testAppleEcSpki()", + "TlsPinningCheckerTests\/testEc256r1Spki()", + "TlsPinningCheckerTests\/testEc384r1Spki()", + "TlsPinningCheckerTests\/testEc521r1Spki()", + "TlsPinningCheckerTests\/testInvalidChallengeMethod()", + "TlsPinningCheckerTests\/testInvalidChallengeNoSecTrust()", + "TlsPinningCheckerTests\/testRsa3072Spki()", + "TlsPinningCheckerTests\/testRsa4096Spki()", + "TlsPinningCheckerTests\/testUntrustedCertificate()", "TrackTest", - "TrackTest/test()", + "TrackTest\/test()", "TreatmentManagerTest", - "TreatmentManagerTest/testBasicEvaluationNoConfig()", - "TreatmentManagerTest/testBasicEvaluationWithConfig()", - "TreatmentManagerTest/testBasicEvaluations()", - "TreatmentManagerTest/testBasicEvaluationsBySets()", - "TreatmentManagerTest/testEmptyKey()", - "TreatmentManagerTest/testEmptySplits()", - "TreatmentManagerTest/testKilledSplitWithConfig()", - "TreatmentManagerTest/testLongKey()", - "TreatmentManagerTest/testMergedAttributes()", - "TreatmentManagerTest/testNoStoredAttributes()", - "TreatmentManagerTest/testOnlyStoredAttributes()", - "TreatmentManagerTest/testRuntimeProducers()", + "TreatmentManagerTest\/testBasicEvaluationNoConfig()", + "TreatmentManagerTest\/testBasicEvaluationWithConfig()", + "TreatmentManagerTest\/testBasicEvaluations()", + "TreatmentManagerTest\/testBasicEvaluationsBySets()", + "TreatmentManagerTest\/testEmptyKey()", + "TreatmentManagerTest\/testEmptySplits()", + "TreatmentManagerTest\/testKilledSplitWithConfig()", + "TreatmentManagerTest\/testLongKey()", + "TreatmentManagerTest\/testMergedAttributes()", + "TreatmentManagerTest\/testNoStoredAttributes()", + "TreatmentManagerTest\/testOnlyStoredAttributes()", + "TreatmentManagerTest\/testRuntimeProducers()", "UniqueKeyDaoTest", - "UniqueKeyDaoTest/testDataIsEncryptedInDb()", - "UniqueKeyDaoTest/testInsertGetAes128Cbc()", - "UniqueKeyDaoTest/testInsertGetPlainText()", - "UniqueKeyDaoTest/testLoadOutdatedAes128Cbc()", - "UniqueKeyDaoTest/testLoadOutdatedPlainText()", - "UniqueKeyDaoTest/testUpdateAes128Cbc()", - "UniqueKeyDaoTest/testUpdateAndIncrementCountAes128Cbc()", - "UniqueKeyDaoTest/testUpdateAndIncrementCountPlainText()", - "UniqueKeyDaoTest/testUpdatePlainText()", + "UniqueKeyDaoTest\/testDataIsEncryptedInDb()", + "UniqueKeyDaoTest\/testInsertGetAes128Cbc()", + "UniqueKeyDaoTest\/testInsertGetPlainText()", + "UniqueKeyDaoTest\/testLoadOutdatedAes128Cbc()", + "UniqueKeyDaoTest\/testLoadOutdatedPlainText()", + "UniqueKeyDaoTest\/testUpdateAes128Cbc()", + "UniqueKeyDaoTest\/testUpdateAndIncrementCountAes128Cbc()", + "UniqueKeyDaoTest\/testUpdateAndIncrementCountPlainText()", + "UniqueKeyDaoTest\/testUpdatePlainText()", "UniqueKeyTrackerTest", - "UniqueKeyTrackerTest/testTrackAndSave()", - "UniqueKeysRecorderCountWorkerTests/testFailToSendSome()", - "UniqueKeysRecorderCountWorkerTests/testSendOneImpression()", - "UniqueKeysRecorderCountWorkerTests/testSendSuccess()", + "UniqueKeyTrackerTest\/testTrackAndSave()", + "UniqueKeysRecorderCountWorkerTests\/testFailToSendSome()", + "UniqueKeysRecorderCountWorkerTests\/testSendOneImpression()", + "UniqueKeysRecorderCountWorkerTests\/testSendSuccess()", "UnsupportedMatcherIntegrationTest", - "UnsupportedMatcherIntegrationTest/testFeatureFlagWithUnsupportedMatcherIsPresentInManager()", - "UnsupportedMatcherIntegrationTest/testGetTreatmentForUnsupportedMatcherFeatureFlagReturnsControl()", - "UnsupportedMatcherIntegrationTest/testGetTreatmentWithConfigForUnsupportedMatcherFeatureFlagReturnsControl()", - "UnsupportedMatcherIntegrationTest/testImpressionInListenerHasUnsupportedLabel()", - "UnsupportedMatcherIntegrationTest/testStoredImpressionHasUnsupportedLabel()", + "UnsupportedMatcherIntegrationTest\/testFeatureFlagWithUnsupportedMatcherIsPresentInManager()", + "UnsupportedMatcherIntegrationTest\/testGetTreatmentForUnsupportedMatcherFeatureFlagReturnsControl()", + "UnsupportedMatcherIntegrationTest\/testGetTreatmentWithConfigForUnsupportedMatcherFeatureFlagReturnsControl()", + "UnsupportedMatcherIntegrationTest\/testImpressionInListenerHasUnsupportedLabel()", + "UnsupportedMatcherIntegrationTest\/testStoredImpressionHasUnsupportedLabel()", "UserConsentManagerTest", - "UserConsentManagerTest/testSetDeclined()", - "UserConsentManagerTest/testSetGranted()", - "UserConsentManagerTest/testSetUnknown()", + "UserConsentManagerTest\/testSetDeclined()", + "UserConsentManagerTest\/testSetGranted()", + "UserConsentManagerTest\/testSetUnknown()", "UserConsentModeDebugTest", - "UserConsentModeDebugTest/testUserConsentDeclined()", - "UserConsentModeDebugTest/testUserConsentUnknownThenDeclined()", - "UserConsentModeDebugTest/testUserConsentUnknownThenGranted()", + "UserConsentModeDebugTest\/testUserConsentDeclined()", + "UserConsentModeDebugTest\/testUserConsentUnknownThenDeclined()", + "UserConsentModeDebugTest\/testUserConsentUnknownThenGranted()", "UserConsentModeNoneTest", - "UserConsentModeNoneTest/testUserConsentDeclined()", - "UserConsentModeNoneTest/testUserConsentGranted()", - "UserConsentModeNoneTest/testUserConsentUnknownThenDeclined()", - "UserConsentModeNoneTest/testUserConsentUnknownThenGranted()", + "UserConsentModeNoneTest\/testUserConsentDeclined()", + "UserConsentModeNoneTest\/testUserConsentGranted()", + "UserConsentModeNoneTest\/testUserConsentUnknownThenDeclined()", + "UserConsentModeNoneTest\/testUserConsentUnknownThenGranted()", "UserConsentModeOptimizedTest", - "UserConsentModeOptimizedTest/testUserConsentDeclined()", - "UserConsentModeOptimizedTest/testUserConsentGranted()", - "UserConsentModeOptimizedTest/testUserConsentUnknownThenGranted()", + "UserConsentModeOptimizedTest\/testUserConsentDeclined()", + "UserConsentModeOptimizedTest\/testUserConsentGranted()", + "UserConsentModeOptimizedTest\/testUserConsentUnknownThenGranted()", "UserKeyEncondingTest", - "UserKeyEncondingTest/testKey()", + "UserKeyEncondingTest\/testKey()", "VersionTest", - "VersionTest/testFactoryVersion()", - "VersionTest/testSemanticVersion()" - ] + "VersionTest\/testFactoryVersion()", + "VersionTest\/testSemanticVersion()" + ], + "target" : { + "containerPath" : "container:Split.xcodeproj", + "identifier" : "592C6AA4211B6C99002D120C", + "name" : "SplitTests" + } } ], - "version": 1 -} \ No newline at end of file + "version" : 1 +} diff --git a/SplitTests/Service/Splits/HttpSplitFetcherTests.swift b/SplitTests/Service/Splits/HttpSplitFetcherTests.swift index 458b9be8d..fd05c224b 100644 --- a/SplitTests/Service/Splits/HttpSplitFetcherTests.swift +++ b/SplitTests/Service/Splits/HttpSplitFetcherTests.swift @@ -28,7 +28,7 @@ class HttpSplitFetcherTests: XCTestCase { restClient.isServerAvailable = false var isError = false do { - let _ = try fetcher.execute(since: 1, till: nil, headers: nil) + let _ = try fetcher.execute(since: 1, rbSince: 1, till: nil, headers: nil) } catch { isError = true } @@ -39,7 +39,7 @@ class HttpSplitFetcherTests: XCTestCase { restClient.isServerAvailable = true restClient.update(changes: [newChange(since: 1, till: 2), newChange(since: 2, till: 2)]) - let c = try fetcher.execute(since: 1, till: nil, headers: nil) + let c = try fetcher.execute(since: 1, rbSince: 1, till: nil, headers: nil) XCTAssertEqual(1, c.since) XCTAssertEqual(2, c.till) diff --git a/SplitTests/Service/Splits/PeriodicSplitsSyncWorkerTest.swift b/SplitTests/Service/Splits/PeriodicSplitsSyncWorkerTest.swift index 217cb12ac..3ce9ba5f3 100644 --- a/SplitTests/Service/Splits/PeriodicSplitsSyncWorkerTest.swift +++ b/SplitTests/Service/Splits/PeriodicSplitsSyncWorkerTest.swift @@ -15,6 +15,7 @@ class PeriodicSplitsSyncWorkerTest: XCTestCase { var splitFetcher: HttpSplitFetcherStub! var splitsStorage: SplitsStorageStub! + var ruleBasedSegmentsStorage: RuleBasedSegmentsStorageStub! var eventsManager: SplitEventsManagerMock! var backoffCounter: ReconnectBackoffCounterStub! var splitsSyncWorker: PeriodicSplitsSyncWorker! @@ -23,6 +24,7 @@ class PeriodicSplitsSyncWorkerTest: XCTestCase { override func setUp() { splitFetcher = HttpSplitFetcherStub() splitsStorage = SplitsStorageStub() + ruleBasedSegmentsStorage = RuleBasedSegmentsStorageStub() splitChangeProcessor = SplitChangeProcessorStub() eventsManager = SplitEventsManagerMock() backoffCounter = ReconnectBackoffCounterStub() @@ -35,6 +37,7 @@ class PeriodicSplitsSyncWorkerTest: XCTestCase { let timer = PeriodicTimerStub() splitsSyncWorker = PeriodicSplitsSyncWorker(splitFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, timer: timer, eventsManager: eventsManager, @@ -56,6 +59,7 @@ class PeriodicSplitsSyncWorkerTest: XCTestCase { let timer = PeriodicTimerStub() splitsSyncWorker = PeriodicSplitsSyncWorker(splitFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, timer: timer, eventsManager: eventsManager, diff --git a/SplitTests/Service/Splits/SplitsBgSyncWorkerTest.swift b/SplitTests/Service/Splits/SplitsBgSyncWorkerTest.swift index f2be6e338..aab7a55d3 100644 --- a/SplitTests/Service/Splits/SplitsBgSyncWorkerTest.swift +++ b/SplitTests/Service/Splits/SplitsBgSyncWorkerTest.swift @@ -15,12 +15,14 @@ class SplitsBgSyncWorkerTest: XCTestCase { var splitFetcher: HttpSplitFetcherStub! var splitStorage: PersistentSplitsStorageStub! + var ruleBasedSegmentsStorage: PersistentRuleBasedSegmentsStorageStub! var splitChangeProcessor: SplitChangeProcessorStub! var splitsSyncWorker: BackgroundSyncWorker! override func setUp() { splitFetcher = HttpSplitFetcherStub() splitStorage = PersistentSplitsStorageStub() + ruleBasedSegmentsStorage = PersistentRuleBasedSegmentsStorageStub() splitStorage.changeNumber = 100 let _ = SplitChange(splits: [], since: splitStorage.changeNumber, till: splitStorage.changeNumber) splitChangeProcessor = SplitChangeProcessorStub() @@ -30,6 +32,7 @@ class SplitsBgSyncWorkerTest: XCTestCase { // Cache expiration timestamp set to 0 (no clearing cache) splitsSyncWorker = BackgroundSplitsSyncWorker(splitFetcher: splitFetcher, persistentSplitsStorage: splitStorage, + ruleBasedSementsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, cacheExpiration: 100, splitConfig: SplitClientConfig()) @@ -47,6 +50,7 @@ class SplitsBgSyncWorkerTest: XCTestCase { // Cache expiration timestamp set to 0 (no clearing cache) splitsSyncWorker = BackgroundSplitsSyncWorker(splitFetcher: splitFetcher, persistentSplitsStorage: splitStorage, + ruleBasedSementsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, cacheExpiration: 100, splitConfig: SplitClientConfig()) @@ -64,6 +68,7 @@ class SplitsBgSyncWorkerTest: XCTestCase { let expiration = 1000 splitsSyncWorker = BackgroundSplitsSyncWorker(splitFetcher: splitFetcher, persistentSplitsStorage: splitStorage, + ruleBasedSementsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, cacheExpiration: 2000, splitConfig: SplitClientConfig()) diff --git a/SplitTests/Service/Splits/SplitsSyncHelperTest.swift b/SplitTests/Service/Splits/SplitsSyncHelperTest.swift new file mode 100644 index 000000000..2aae125a2 --- /dev/null +++ b/SplitTests/Service/Splits/SplitsSyncHelperTest.swift @@ -0,0 +1,44 @@ +// SplitsSyncHelperTest.swift +// Split +// +// Created by Martin Cardozo on 29/04/2025. +// Copyright © 2025 Split. All rights reserved. + +import Foundation + +import XCTest +@testable import Split + +class SplitsSyncHelpersTest: XCTestCase { + + override func setUp() {} + + override func tearDown() {} + + + func testFetchUntilReturnsExpectedResult() throws { + + // Storage + let persistentStorage = PersistentSplitsStorageStub() + let flagSetsCache = FlagSetsCacheMock() + let splitsStorage = DefaultSplitsStorage(persistentSplitsStorage: persistentStorage, flagSetsCache: flagSetsCache) + + let fetcher = HttpSplitFetcherStub() + + let helper = SplitsSyncHelper( + splitFetcher: fetcher, + splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: RuleBasedSegmentsStorageStub(), + splitChangeProcessor: SplitChangeProcessorStub(), + splitConfig: SplitClientConfig() + ) + + do { + let _ = try helper.fetchUntil(since: 123, rbSince: 100, clearBeforeUpdate: true) + } catch { + + } + + XCTAssertTrue(fetcher.targetingRulesFetched) + } +} diff --git a/SplitTests/Service/Splits/SplitsSyncWorkerTest.swift b/SplitTests/Service/Splits/SplitsSyncWorkerTest.swift index c815a8824..cc8807fde 100644 --- a/SplitTests/Service/Splits/SplitsSyncWorkerTest.swift +++ b/SplitTests/Service/Splits/SplitsSyncWorkerTest.swift @@ -15,6 +15,7 @@ class SplitsSyncWorkerTest: XCTestCase { var splitFetcher: HttpSplitFetcherStub! var splitStorage: SplitsStorageStub! + var ruleBasedSegmentsStorage: RuleBasedSegmentsStorageStub! var splitChangeProcessor: SplitChangeProcessorStub! var eventsManager: SplitEventsManagerMock! var backoffCounter: ReconnectBackoffCounterStub! @@ -23,6 +24,7 @@ class SplitsSyncWorkerTest: XCTestCase { override func setUp() { splitFetcher = HttpSplitFetcherStub() splitStorage = SplitsStorageStub() + ruleBasedSegmentsStorage = RuleBasedSegmentsStorageStub() splitStorage.changeNumber = 100 let _ = SplitChange(splits: [], since: splitStorage.changeNumber, till: splitStorage.changeNumber) splitChangeProcessor = SplitChangeProcessorStub() @@ -35,6 +37,7 @@ class SplitsSyncWorkerTest: XCTestCase { // Cache expiration timestamp set to 0 (no clearing cache) splitsSyncWorker = RetryableSplitsSyncWorker(splitFetcher: splitFetcher, splitsStorage: splitStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, eventsManager: eventsManager, reconnectBackoffCounter: backoffCounter, @@ -61,6 +64,7 @@ class SplitsSyncWorkerTest: XCTestCase { func testRetryAndSuccess() { splitsSyncWorker = RetryableSplitsSyncWorker(splitFetcher: splitFetcher, splitsStorage: splitStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, eventsManager: eventsManager, reconnectBackoffCounter: backoffCounter, @@ -86,6 +90,7 @@ class SplitsSyncWorkerTest: XCTestCase { func testStopNoSuccess() { splitsSyncWorker = RetryableSplitsSyncWorker(splitFetcher: splitFetcher, splitsStorage: splitStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, eventsManager: eventsManager, reconnectBackoffCounter: backoffCounter, @@ -115,6 +120,7 @@ class SplitsSyncWorkerTest: XCTestCase { splitFetcher.httpError = .uriTooLong splitsSyncWorker = RetryableSplitsSyncWorker(splitFetcher: splitFetcher, splitsStorage: splitStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: splitChangeProcessor, eventsManager: eventsManager, reconnectBackoffCounter: backoffCounter, diff --git a/SplitTests/Service/Splits/SplitsUpdateWorkerTest.swift b/SplitTests/Service/Splits/SplitsUpdateWorkerTest.swift index 441d4cef1..f7fa7cab8 100644 --- a/SplitTests/Service/Splits/SplitsUpdateWorkerTest.swift +++ b/SplitTests/Service/Splits/SplitsUpdateWorkerTest.swift @@ -15,6 +15,7 @@ class SplitsUpdateWorkerTest: XCTestCase { var splitFetcher: HttpSplitFetcherStub! var splitsStorage: SplitsStorageStub! + var ruleBasedSegmentsStorage: RuleBasedSegmentsStorageStub! var eventsManager: SplitEventsManagerMock! var backoffCounter: ReconnectBackoffCounterStub! var splitsUpdateWorker: RetryableSplitsUpdateWorker! @@ -23,6 +24,7 @@ class SplitsUpdateWorkerTest: XCTestCase { splitFetcher = HttpSplitFetcherStub() splitFetcher.splitChanges = [SplitChange(splits: [], since: 102, till: 102)] splitsStorage = SplitsStorageStub() + ruleBasedSegmentsStorage = RuleBasedSegmentsStorageStub() _ = splitsStorage.update(splitChange: ProcessedSplitChange(activeSplits: [Split](), archivedSplits: [], changeNumber: 100, @@ -36,6 +38,7 @@ class SplitsUpdateWorkerTest: XCTestCase { // Cache expiration timestamp set to 0 (no clearing cache) splitsUpdateWorker = RetryableSplitsUpdateWorker(splitsFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: DefaultSplitChangeProcessor(filterBySet: nil), changeNumber: 101, eventsManager: eventsManager, @@ -60,6 +63,7 @@ class SplitsUpdateWorkerTest: XCTestCase { func testRetryAndSuccess() { splitsUpdateWorker = RetryableSplitsUpdateWorker(splitsFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: DefaultSplitChangeProcessor(filterBySet: nil), changeNumber: 200, eventsManager: eventsManager, @@ -86,6 +90,7 @@ class SplitsUpdateWorkerTest: XCTestCase { func testStopNoSuccess() { splitsUpdateWorker = RetryableSplitsUpdateWorker(splitsFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: DefaultSplitChangeProcessor(filterBySet: nil), changeNumber: 200, eventsManager: eventsManager, @@ -114,6 +119,7 @@ class SplitsUpdateWorkerTest: XCTestCase { splitsUpdateWorker = RetryableSplitsUpdateWorker(splitsFetcher: splitFetcher, splitsStorage: splitsStorage, + ruleBasedSegmentsStorage: ruleBasedSegmentsStorage, splitChangeProcessor: DefaultSplitChangeProcessor(filterBySet: nil), changeNumber: 99, eventsManager: eventsManager, diff --git a/SplitTests/Helpers/CsvHelper.swift b/SplitTests/TestsHelpers/CsvHelper.swift similarity index 100% rename from SplitTests/Helpers/CsvHelper.swift rename to SplitTests/TestsHelpers/CsvHelper.swift diff --git a/SplitTests/Helpers/DispatchQueue+Test.swift b/SplitTests/TestsHelpers/DispatchQueue+Test.swift similarity index 100% rename from SplitTests/Helpers/DispatchQueue+Test.swift rename to SplitTests/TestsHelpers/DispatchQueue+Test.swift diff --git a/SplitTests/Helpers/EventTypeNameHelper.swift b/SplitTests/TestsHelpers/EventTypeNameHelper.swift similarity index 100% rename from SplitTests/Helpers/EventTypeNameHelper.swift rename to SplitTests/TestsHelpers/EventTypeNameHelper.swift diff --git a/SplitTests/Helpers/FileHelper.swift b/SplitTests/TestsHelpers/FileHelper.swift similarity index 100% rename from SplitTests/Helpers/FileHelper.swift rename to SplitTests/TestsHelpers/FileHelper.swift diff --git a/SplitTests/Helpers/IntegrationHelper.swift b/SplitTests/TestsHelpers/IntegrationHelper.swift similarity index 97% rename from SplitTests/Helpers/IntegrationHelper.swift rename to SplitTests/TestsHelpers/IntegrationHelper.swift index fc01ea238..fbccca360 100644 --- a/SplitTests/Helpers/IntegrationHelper.swift +++ b/SplitTests/TestsHelpers/IntegrationHelper.swift @@ -48,8 +48,8 @@ class IntegrationHelper { return "{\"ff\": {\"d\":[], \"s\": 9567456937865, \"t\": 9567456937869 }, \"rbs\": {\"d\":[], \"s\": -1, \"t\": -1 }}" } - static func emptySplitChanges(since: Int, till: Int) -> String { - return "{\"ff\": {\"d\":[], \"s\": \(since), \"t\": \(till) }, \"rbs\": {\"d\":[], \"s\": -1, \"t\": -1 }}" + static func emptySplitChanges(since: Int, rbSince: Int? = nil, till: Int) -> String { + return "{\"ff\": {\"d\":[], \"s\": \(since), \"t\": \(till) }, \"rbs\": {\"d\":[], \"s\": \(rbSince ?? -1), \"t\": -1 }}" } diff --git a/SplitTests/Helpers/SecurityHelper.swift b/SplitTests/TestsHelpers/SecurityHelper.swift similarity index 100% rename from SplitTests/Helpers/SecurityHelper.swift rename to SplitTests/TestsHelpers/SecurityHelper.swift diff --git a/SplitTests/Helpers/SplitTestHelper.swift b/SplitTests/TestsHelpers/SplitTestHelper.swift similarity index 100% rename from SplitTests/Helpers/SplitTestHelper.swift rename to SplitTests/TestsHelpers/SplitTestHelper.swift diff --git a/SplitTests/Helpers/StreamingTestingHelper.swift b/SplitTests/TestsHelpers/StreamingTestingHelper.swift similarity index 100% rename from SplitTests/Helpers/StreamingTestingHelper.swift rename to SplitTests/TestsHelpers/StreamingTestingHelper.swift diff --git a/SplitTests/Helpers/TelemetryConfigHelperStub.swift b/SplitTests/TestsHelpers/TelemetryConfigHelperStub.swift similarity index 100% rename from SplitTests/Helpers/TelemetryConfigHelperStub.swift rename to SplitTests/TestsHelpers/TelemetryConfigHelperStub.swift diff --git a/SplitTests/Helpers/TestDataHelper.swift b/SplitTests/TestsHelpers/TestDataHelper.swift similarity index 100% rename from SplitTests/Helpers/TestDataHelper.swift rename to SplitTests/TestsHelpers/TestDataHelper.swift diff --git a/SplitTests/Helpers/TestHelper.swift b/SplitTests/TestsHelpers/TestHelper.swift similarity index 100% rename from SplitTests/Helpers/TestHelper.swift rename to SplitTests/TestsHelpers/TestHelper.swift diff --git a/SplitTests/Helpers/TestSplitFactory.swift b/SplitTests/TestsHelpers/TestSplitFactory.swift similarity index 100% rename from SplitTests/Helpers/TestSplitFactory.swift rename to SplitTests/TestsHelpers/TestSplitFactory.swift diff --git a/SplitTests/Helpers/TestUtils.swift b/SplitTests/TestsHelpers/TestUtils.swift similarity index 100% rename from SplitTests/Helpers/TestUtils.swift rename to SplitTests/TestsHelpers/TestUtils.swift diff --git a/SplitTests/Helpers/TestingData.swift b/SplitTests/TestsHelpers/TestingData.swift similarity index 100% rename from SplitTests/Helpers/TestingData.swift rename to SplitTests/TestsHelpers/TestingData.swift diff --git a/SplitTests/Helpers/TestingHelper.swift b/SplitTests/TestsHelpers/TestingHelper.swift similarity index 100% rename from SplitTests/Helpers/TestingHelper.swift rename to SplitTests/TestsHelpers/TestingHelper.swift diff --git a/SplitiOSUnit.xctestplan b/SplitiOSUnit.xctestplan index 4e92cbd06..06de3ae16 100644 --- a/SplitiOSUnit.xctestplan +++ b/SplitiOSUnit.xctestplan @@ -1,1145 +1,1147 @@ { - "configurations": [ + "configurations" : [ { - "id": "4F2A5094-0E71-4794-9717-92482220A968", - "name": "Common", - "options": {} + "id" : "4F2A5094-0E71-4794-9717-92482220A968", + "name" : "Common", + "options" : { + + } }, { - "enabled": false, - "id": "00529E1C-25A9-4843-8676-E48C4769483F", - "name": "WatchOS", - "options": { - "targetForVariableExpansion": { - "containerPath": "container:Split.xcodeproj", - "identifier": "95B02CA328D0BD790030EC8B", - "name": "WatchOS" + "enabled" : false, + "id" : "00529E1C-25A9-4843-8676-E48C4769483F", + "name" : "WatchOS", + "options" : { + "targetForVariableExpansion" : { + "containerPath" : "container:Split.xcodeproj", + "identifier" : "95B02CA328D0BD790030EC8B", + "name" : "WatchOS" } } } ], - "defaultOptions": { - "codeCoverage": false, - "environmentVariableEntries": [ + "defaultOptions" : { + "codeCoverage" : false, + "environmentVariableEntries" : [ { - "key": "com.apple.CoreData.ConcurrencyDebug", - "value": "1" + "key" : "com.apple.CoreData.ConcurrencyDebug", + "value" : "1" } ], - "targetForVariableExpansion": { - "containerPath": "container:Split.xcodeproj", - "identifier": "3B6DEE5920EA6A4E0067435E", - "name": "Split" + "targetForVariableExpansion" : { + "containerPath" : "container:Split.xcodeproj", + "identifier" : "3B6DEE5920EA6A4E0067435E", + "name" : "Split" } }, - "testTargets": [ + "testTargets" : [ { - "skippedTests": [ + "skippedTests" : [ "AnyValueValidatorTests", - "AnyValueValidatorTests/testInvalidPrimitiveValues()", - "AnyValueValidatorTests/testValidListValues()", - "AnyValueValidatorTests/testValidPrimitiveValues()", + "AnyValueValidatorTests\/testInvalidPrimitiveValues()", + "AnyValueValidatorTests\/testValidListValues()", + "AnyValueValidatorTests\/testValidPrimitiveValues()", "ApiKeyValidatorTests", - "ApiKeyValidatorTests/testEmptyKey()", - "ApiKeyValidatorTests/testNull()", + "ApiKeyValidatorTests\/testEmptyKey()", + "ApiKeyValidatorTests\/testNull()", "AttributesDaoTest", - "AttributesDaoTest/testDataIsEncryptedInDb()", - "AttributesDaoTest/testGetInvalidKeyAes128Cbc()", - "AttributesDaoTest/testGetInvalidKeyPlainText()", - "AttributesDaoTest/testRemoveAllAes128Cbc()", - "AttributesDaoTest/testRemoveAllPlainText()", - "AttributesDaoTest/testUpdateGetAes128Cbc()", - "AttributesEvaluationTest/testEvaluationPrecedence()", - "AttributesEvaluationTest/testPersistenceDisabled()", + "AttributesDaoTest\/testDataIsEncryptedInDb()", + "AttributesDaoTest\/testGetInvalidKeyAes128Cbc()", + "AttributesDaoTest\/testGetInvalidKeyPlainText()", + "AttributesDaoTest\/testRemoveAllAes128Cbc()", + "AttributesDaoTest\/testRemoveAllPlainText()", + "AttributesDaoTest\/testUpdateGetAes128Cbc()", + "AttributesEvaluationTest\/testEvaluationPrecedence()", + "AttributesEvaluationTest\/testPersistenceDisabled()", "AttributesStorageTests", - "AttributesStorageTests/testClear()", - "AttributesStorageTests/testGetAttributesAfterLoad()", - "AttributesStorageTests/testNoLoaded()", - "AttributesStorageTests/testRemove()", - "AttributesStorageTests/testUpdateAttributes()", - "AttributesStorageTests/testUpdateEmptyAttributes()", + "AttributesStorageTests\/testClear()", + "AttributesStorageTests\/testGetAttributesAfterLoad()", + "AttributesStorageTests\/testNoLoaded()", + "AttributesStorageTests\/testRemove()", + "AttributesStorageTests\/testUpdateAttributes()", + "AttributesStorageTests\/testUpdateEmptyAttributes()", "Base64UtilsTest", - "Base64UtilsTest/testBasicUrlEncoded()", - "Base64UtilsTest/testEmpty()", - "Base64UtilsTest/testNil()", - "Base64UtilsTest/testRealToken()", + "Base64UtilsTest\/testBasicUrlEncoded()", + "Base64UtilsTest\/testEmpty()", + "Base64UtilsTest\/testNil()", + "Base64UtilsTest\/testRealToken()", "BetweenSemverMatcherTest", - "BetweenSemverMatcherTest/testGeneralMatches()", - "BetweenSemverMatcherTest/testMatchShouldReturnFalseWhenLess()", - "BetweenSemverMatcherTest/testMatchShouldReturnTrueWhenBetween()", - "BetweenSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenGreater()", - "BetweenSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenLess()", - "BetweenSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenBetween()", - "BetweenSemverMatcherTest/testMatchWithNullEndTargetShouldReturnFalse()", - "BetweenSemverMatcherTest/testMatchWithNullStartTargetShouldReturnFalse()", - "BetweenSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenGreater()", - "BetweenSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenLess()", - "BetweenSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenBetween()", + "BetweenSemverMatcherTest\/testGeneralMatches()", + "BetweenSemverMatcherTest\/testMatchShouldReturnFalseWhenLess()", + "BetweenSemverMatcherTest\/testMatchShouldReturnTrueWhenBetween()", + "BetweenSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenGreater()", + "BetweenSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenLess()", + "BetweenSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenBetween()", + "BetweenSemverMatcherTest\/testMatchWithNullEndTargetShouldReturnFalse()", + "BetweenSemverMatcherTest\/testMatchWithNullStartTargetShouldReturnFalse()", + "BetweenSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenGreater()", + "BetweenSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenLess()", + "BetweenSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenBetween()", "BlockingQueueTest", - "BlockingQueueTest/testInterrupt()", + "BlockingQueueTest\/testInterrupt()", "BucketSplitTest", - "BucketSplitTest/testMultiClientBuckets()", + "BucketSplitTest\/testMultiClientBuckets()", "ByKeyAttributesStorageTests", - "ByKeyAttributesStorageTests/testClear()", - "ByKeyAttributesStorageTests/testGetAttributesAfterLoad()", - "ByKeyAttributesStorageTests/testNoLoaded()", - "ByKeyAttributesStorageTests/testRemove()", - "ByKeyAttributesStorageTests/testUpdateAttributes()", - "ByKeyAttributesStorageTests/testUpdateEmptyAttributes()", + "ByKeyAttributesStorageTests\/testClear()", + "ByKeyAttributesStorageTests\/testGetAttributesAfterLoad()", + "ByKeyAttributesStorageTests\/testNoLoaded()", + "ByKeyAttributesStorageTests\/testRemove()", + "ByKeyAttributesStorageTests\/testUpdateAttributes()", + "ByKeyAttributesStorageTests\/testUpdateEmptyAttributes()", "ByKeyFacadeTest", - "ByKeyFacadeTest/testDestroy()", - "ByKeyFacadeTest/testForceSync()", - "ByKeyFacadeTest/testLoadDataFromCache()", - "ByKeyFacadeTest/testNoPeriodicSync()", - "ByKeyFacadeTest/testPeriodicStartStop()", - "ByKeyFacadeTest/testStartSyncForKey()", - "ByKeyFacadeTest/testStartSyncForKeyPolling()", - "ByKeyFacadeTest/testSynchronize()", + "ByKeyFacadeTest\/testDestroy()", + "ByKeyFacadeTest\/testForceSync()", + "ByKeyFacadeTest\/testLoadDataFromCache()", + "ByKeyFacadeTest\/testNoPeriodicSync()", + "ByKeyFacadeTest\/testPeriodicStartStop()", + "ByKeyFacadeTest\/testStartSyncForKey()", + "ByKeyFacadeTest\/testStartSyncForKeyPolling()", + "ByKeyFacadeTest\/testSynchronize()", "ByKeyMySegmentsStorageTests", - "ByKeyMySegmentsStorageTests/testGetMySegmentsAfterLoad()", - "ByKeyMySegmentsStorageTests/testNoLoaded()", - "ByKeyMySegmentsStorageTests/testUpdateEmptySegments()", - "ByKeyMySegmentsStorageTests/testUpdateSegments()", + "ByKeyMySegmentsStorageTests\/testGetMySegmentsAfterLoad()", + "ByKeyMySegmentsStorageTests\/testNoLoaded()", + "ByKeyMySegmentsStorageTests\/testUpdateEmptySegments()", + "ByKeyMySegmentsStorageTests\/testUpdateSegments()", "CdnByPassTest", - "CdnByPassTest/testInit()", + "CdnByPassTest\/testInit()", "CertificatePinningConfigTests", - "CertificatePinningConfigTests/testAddCertificateAndHashes()", - "CertificatePinningConfigTests/testAddWrongCertificate()", - "CertificatePinningConfigTests/testAddWrongSpkiCertificate()", - "CertificatePinningConfigTests/testAddWrongStringHash()", - "CertificatePinningConfigTests/testAddWrongStringHashFormatHash()", - "CertificatePinningConfigTests/testAddWrongStringHashType()", + "CertificatePinningConfigTests\/testAddCertificateAndHashes()", + "CertificatePinningConfigTests\/testAddWrongCertificate()", + "CertificatePinningConfigTests\/testAddWrongSpkiCertificate()", + "CertificatePinningConfigTests\/testAddWrongStringHash()", + "CertificatePinningConfigTests\/testAddWrongStringHashFormatHash()", + "CertificatePinningConfigTests\/testAddWrongStringHashType()", "CipherTest", - "CipherTest/testBasicEncryptDecrypt()", - "CipherTest/testEventEncryptDecrypt()", - "CipherTest/testImpressionEncryptDecrypt()", - "CipherTest/testJsonSplitEncryptDecrypt()", - "CipherTest/testMySegmentsEncryptDecrypt()", - "CipherTest/testVeryLongTextEncryptDecrypt()", + "CipherTest\/testBasicEncryptDecrypt()", + "CipherTest\/testEventEncryptDecrypt()", + "CipherTest\/testImpressionEncryptDecrypt()", + "CipherTest\/testJsonSplitEncryptDecrypt()", + "CipherTest\/testMySegmentsEncryptDecrypt()", + "CipherTest\/testVeryLongTextEncryptDecrypt()", "ComputeProcessTest", - "ComputeProcessTest/testMultiProcess()", - "ComputeProcessTest/testOneProcessEqualsMin()", - "ComputeProcessTest/testTwoProcess()", - "ComputeProcessTest/testTwoProcessEdge()", + "ComputeProcessTest\/testMultiProcess()", + "ComputeProcessTest\/testOneProcessEqualsMin()", + "ComputeProcessTest\/testTwoProcess()", + "ComputeProcessTest\/testTwoProcessEdge()", "ConcurrentSetTests", - "ConcurrentSetTests/testDeleteAll()", - "ConcurrentSetTests/testInsert()", - "ConcurrentSetTests/testSet()", - "ConcurrentSetTests/testTakeAll()", + "ConcurrentSetTests\/testDeleteAll()", + "ConcurrentSetTests\/testInsert()", + "ConcurrentSetTests\/testSet()", + "ConcurrentSetTests\/testTakeAll()", "ConfigTest", - "ConfigTest/testImpressionsModeInvalid()", - "ConfigTest/testImpressionsModedebug()", - "ConfigTest/testImpressionsModenone()", - "ConfigTest/testImpressionsModeoptimized()", - "CountsRecorderCountWorkerTests/testFailToSendSome()", - "CountsRecorderCountWorkerTests/testSendNoImpressions()", - "CountsRecorderCountWorkerTests/testSendOneImpression()", - "CountsRecorderCountWorkerTests/testSendSuccess()", + "ConfigTest\/testImpressionsModeInvalid()", + "ConfigTest\/testImpressionsModedebug()", + "ConfigTest\/testImpressionsModenone()", + "ConfigTest\/testImpressionsModeoptimized()", + "CountsRecorderCountWorkerTests\/testFailToSendSome()", + "CountsRecorderCountWorkerTests\/testSendNoImpressions()", + "CountsRecorderCountWorkerTests\/testSendOneImpression()", + "CountsRecorderCountWorkerTests\/testSendSuccess()", "CredentialPinParserTests", - "CredentialPinParserTests/testPinsForHost()", + "CredentialPinParserTests\/testPinsForHost()", "DbCipherTest", - "DbCipherTest/testEncryptDecryptDb()", + "DbCipherTest\/testEncryptDecryptDb()", "DbForDifferentApiKeysTest", - "DbForDifferentApiKeysTest/testInitialization()", + "DbForDifferentApiKeysTest\/testInitialization()", "DecompressionTest", - "DecompressionTest/testGzipHeaderComments()", - "DecompressionTest/testGzipHeaderCrc16()", - "DecompressionTest/testGzipHeaderFileName()", - "DecompressionTest/testGzipIncorrectHeader()", - "DecompressionTest/testHeaderFlag0()", - "DecompressionTest/testLoremIpsumGzip()", - "DecompressionTest/testLoremIpsumZlib()", - "DecompressionTest/testZlibCompressionMethodHeader()", + "DecompressionTest\/testGzipHeaderComments()", + "DecompressionTest\/testGzipHeaderCrc16()", + "DecompressionTest\/testGzipHeaderFileName()", + "DecompressionTest\/testGzipIncorrectHeader()", + "DecompressionTest\/testHeaderFlag0()", + "DecompressionTest\/testLoremIpsumGzip()", + "DecompressionTest\/testLoremIpsumZlib()", + "DecompressionTest\/testZlibCompressionMethodHeader()", "EndpointFactoryTest", - "EndpointFactoryTest/testMySegmentsEndpoint()", - "EndpointFactoryTest/testMySegmentsEndpointSlashKeyEncoding()", - "EndpointFactoryTest/testRecordEventsEndpoint()", - "EndpointFactoryTest/testRecordImpressionsEndpoint()", - "EndpointFactoryTest/testSplitChangesEndpoint()", - "EndpointFactoryTest/testStreamingAuthEndpoint()", - "EndpointFactoryTest/testStreamingEndpoint()", - "EndpointFactoryTest/testTelemetryConfigEndpoint()", - "EndpointFactoryTest/testTelemetryUsageEndpoint()", + "EndpointFactoryTest\/testMySegmentsEndpoint()", + "EndpointFactoryTest\/testMySegmentsEndpointSlashKeyEncoding()", + "EndpointFactoryTest\/testRecordEventsEndpoint()", + "EndpointFactoryTest\/testRecordImpressionsEndpoint()", + "EndpointFactoryTest\/testSplitChangesEndpoint()", + "EndpointFactoryTest\/testStreamingAuthEndpoint()", + "EndpointFactoryTest\/testStreamingEndpoint()", + "EndpointFactoryTest\/testTelemetryConfigEndpoint()", + "EndpointFactoryTest\/testTelemetryUsageEndpoint()", "EndpointTest", - "EndpointTest/testDefaultEndpointBuild()", - "EndpointTest/testHeadersEndpointBuild()", - "EndpointTest/testPostEndpointBuild()", + "EndpointTest\/testDefaultEndpointBuild()", + "EndpointTest\/testHeadersEndpointBuild()", + "EndpointTest\/testPostEndpointBuild()", "EqualToSemverMatcherTest", - "EqualToSemverMatcherTest/testGeneralUnsuccessfulMatches()", - "EqualToSemverMatcherTest/testMatchShouldReturnFalseWhenKeyIsNull()", - "EqualToSemverMatcherTest/testMatchShouldReturnFalseWhenPatchDiffers()", - "EqualToSemverMatcherTest/testMatchShouldReturnFalseWhenTargetIsNull()", - "EqualToSemverMatcherTest/testMatchShouldReturnTrueWhenVersionsAreEqual()", - "EqualToSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenVersionsDiffer()", - "EqualToSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenVersionsAreEqual()", - "EqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenVersionsDiffer()", - "EqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenVersionsAreEqual()", + "EqualToSemverMatcherTest\/testGeneralUnsuccessfulMatches()", + "EqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenKeyIsNull()", + "EqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenPatchDiffers()", + "EqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenTargetIsNull()", + "EqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenVersionsAreEqual()", + "EqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenVersionsDiffer()", + "EqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenVersionsAreEqual()", + "EqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenVersionsDiffer()", + "EqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenVersionsAreEqual()", "EvaluatorTests", - "EvaluatorTests/testAlgoLegacy()", - "EvaluatorTests/testAlgoMurmur3()", - "EvaluatorTests/testAlgoNull()", - "EvaluatorTests/testAllocation1Percent()", - "EvaluatorTests/testBrokenSplit()", - "EvaluatorTests/testDefaultRule()", - "EvaluatorTests/testDefaultTreatment()", - "EvaluatorTests/testDefaultTreatmentFacundo()", - "EvaluatorTests/testEqualsToSetConfigTreatment()", - "EvaluatorTests/testInLargeSegmentWhitelist()", - "EvaluatorTests/testInSegmentsRule1()", - "EvaluatorTests/testMatchesStringNoConfigTreatment()", - "EvaluatorTests/testMissingDefaultRule()", - "EvaluatorTests/testNotInLargeSegmentWhitelist()", - "EvaluatorTests/testNotInSplit()", - "EvaluatorTests/testWhitelisted()", - "EvaluatorTests/testWhitelistedOff()", - "EvaluatorTests/testsTrafficAllocation50DefaultRule50()", + "EvaluatorTests\/testAlgoLegacy()", + "EvaluatorTests\/testAlgoMurmur3()", + "EvaluatorTests\/testAlgoNull()", + "EvaluatorTests\/testAllocation1Percent()", + "EvaluatorTests\/testBrokenSplit()", + "EvaluatorTests\/testDefaultRule()", + "EvaluatorTests\/testDefaultTreatment()", + "EvaluatorTests\/testDefaultTreatmentFacundo()", + "EvaluatorTests\/testEqualsToSetConfigTreatment()", + "EvaluatorTests\/testInLargeSegmentWhitelist()", + "EvaluatorTests\/testInSegmentsRule1()", + "EvaluatorTests\/testMatchesStringNoConfigTreatment()", + "EvaluatorTests\/testMissingDefaultRule()", + "EvaluatorTests\/testNotInLargeSegmentWhitelist()", + "EvaluatorTests\/testNotInSplit()", + "EvaluatorTests\/testWhitelisted()", + "EvaluatorTests\/testWhitelistedOff()", + "EvaluatorTests\/testsTrafficAllocation50DefaultRule50()", "EventDTOJsonTest", - "EventDTOJsonTest/testBasic()", - "EventDTOJsonTest/testEncode()", - "EventDTOJsonTest/testNonNumber()", - "EventDTOJsonTest/testProperties()", - "EventDTOJsonTest/testPropertiesDecodeEncode()", + "EventDTOJsonTest\/testBasic()", + "EventDTOJsonTest\/testEncode()", + "EventDTOJsonTest\/testNonNumber()", + "EventDTOJsonTest\/testProperties()", + "EventDTOJsonTest\/testPropertiesDecodeEncode()", "EventDaoTest", - "EventDaoTest/testDataIsEncryptedInDb()", - "EventDaoTest/testInsertGetAes128Cbc()", - "EventDaoTest/testInsertGetPlainText()", - "EventDaoTest/testInsertManyGetAes128Cbc()", - "EventDaoTest/testInsertManyGetPlainText()", - "EventDaoTest/testLoadOutdatedAes128Cbc()", - "EventDaoTest/testLoadOutdatedPlainText()", - "EventDaoTest/testUpdateAes128Cbc()", - "EventDaoTest/testUpdatePlainText()", + "EventDaoTest\/testDataIsEncryptedInDb()", + "EventDaoTest\/testInsertGetAes128Cbc()", + "EventDaoTest\/testInsertGetPlainText()", + "EventDaoTest\/testInsertManyGetAes128Cbc()", + "EventDaoTest\/testInsertManyGetPlainText()", + "EventDaoTest\/testLoadOutdatedAes128Cbc()", + "EventDaoTest\/testLoadOutdatedPlainText()", + "EventDaoTest\/testUpdateAes128Cbc()", + "EventDaoTest\/testUpdatePlainText()", "EventStreamParserTest", - "EventStreamParserTest/testParseColon()", - "EventStreamParserTest/testParseEmptyLineNoEnd()", - "EventStreamParserTest/testParseEnd()", - "EventStreamParserTest/testParseErrorMessage()", - "EventStreamParserTest/testParseKeepAlive()", - "EventStreamParserTest/testParseNoColon()", - "EventStreamParserTest/testParseNoFieldName()", - "EventStreamParserTest/testParseTwoColon()", + "EventStreamParserTest\/testParseColon()", + "EventStreamParserTest\/testParseEmptyLineNoEnd()", + "EventStreamParserTest\/testParseEnd()", + "EventStreamParserTest\/testParseErrorMessage()", + "EventStreamParserTest\/testParseKeepAlive()", + "EventStreamParserTest\/testParseNoColon()", + "EventStreamParserTest\/testParseNoFieldName()", + "EventStreamParserTest\/testParseTwoColon()", "EventValidatorTests", - "EventValidatorTests/testEmptyKey()", - "EventValidatorTests/testEmptyTrafficType()", - "EventValidatorTests/testEmptyType()", - "EventValidatorTests/testLongKey()", - "EventValidatorTests/testNoChachedServerAndUppercasedTrafficType()", - "EventValidatorTests/testNoChachedServerTrafficType()", - "EventValidatorTests/testNullKey()", - "EventValidatorTests/testNullTrafficType()", - "EventValidatorTests/testNullType()", - "EventValidatorTests/testTypeName()", - "EventValidatorTests/testUppercaseCharsInTrafficType()", - "EventValidatorTests/testValidEventAllValues()", - "EventValidatorTests/testValidEventNullValue()", + "EventValidatorTests\/testEmptyKey()", + "EventValidatorTests\/testEmptyTrafficType()", + "EventValidatorTests\/testEmptyType()", + "EventValidatorTests\/testLongKey()", + "EventValidatorTests\/testNoChachedServerAndUppercasedTrafficType()", + "EventValidatorTests\/testNoChachedServerTrafficType()", + "EventValidatorTests\/testNullKey()", + "EventValidatorTests\/testNullTrafficType()", + "EventValidatorTests\/testNullType()", + "EventValidatorTests\/testTypeName()", + "EventValidatorTests\/testUppercaseCharsInTrafficType()", + "EventValidatorTests\/testValidEventAllValues()", + "EventValidatorTests\/testValidEventNullValue()", "EventsRecorderWorkerTests", - "EventsRecorderWorkerTests/testFailToSendSome()", - "EventsRecorderWorkerTests/testSendNoEvents()", - "EventsRecorderWorkerTests/testSendOneEvent()", - "EventsRecorderWorkerTests/testSendSuccess()", + "EventsRecorderWorkerTests\/testFailToSendSome()", + "EventsRecorderWorkerTests\/testSendNoEvents()", + "EventsRecorderWorkerTests\/testSendOneEvent()", + "EventsRecorderWorkerTests\/testSendSuccess()", "EventsStorageTest", - "EventsStorageTest/testClear()", - "EventsStorageTest/testDisablePersistence()", - "EventsStorageTest/testEnablePersistence()", - "EventsStorageTest/testStartEnabledPersistence()", + "EventsStorageTest\/testClear()", + "EventsStorageTest\/testDisablePersistence()", + "EventsStorageTest\/testEnablePersistence()", + "EventsStorageTest\/testStartEnabledPersistence()", "EventsSynchronizerTest", - "EventsSynchronizerTest/testDestroy()", - "EventsSynchronizerTest/testFlush()", - "EventsSynchronizerTest/testPause()", - "EventsSynchronizerTest/testPush()", - "EventsSynchronizerTest/testResume()", - "EventsSynchronizerTest/testStart()", - "EventsSynchronizerTest/testStop()", + "EventsSynchronizerTest\/testDestroy()", + "EventsSynchronizerTest\/testFlush()", + "EventsSynchronizerTest\/testPause()", + "EventsSynchronizerTest\/testPush()", + "EventsSynchronizerTest\/testResume()", + "EventsSynchronizerTest\/testStart()", + "EventsSynchronizerTest\/testStop()", "EventsTrackerTest", - "EventsTrackerTest/testTrackDisabled()", - "EventsTrackerTest/testTrackEnabled()", + "EventsTrackerTest\/testTrackDisabled()", + "EventsTrackerTest\/testTrackEnabled()", "FactoryMonitorTest", - "FactoryMonitorTest/testCountLiveFactories()", - "FactoryMonitorTest/testDeallocatedCountLiveFactories()", + "FactoryMonitorTest\/testCountLiveFactories()", + "FactoryMonitorTest\/testDeallocatedCountLiveFactories()", "FactoryRegistryTest", - "FactoryRegistryTest/testCountLiveFactories()", - "FactoryRegistryTest/testCountWithDeallocatedLiveFactories()", + "FactoryRegistryTest\/testCountLiveFactories()", + "FactoryRegistryTest\/testCountWithDeallocatedLiveFactories()", "FeatureFlagsPayloadDecoderTest", - "FeatureFlagsPayloadDecoderTest/testDecodeGzip()", - "FeatureFlagsPayloadDecoderTest/testDecodeZlib()", + "FeatureFlagsPayloadDecoderTest\/testDecodeGzip()", + "FeatureFlagsPayloadDecoderTest\/testDecodeZlib()", "FeatureFlagsSynchronizerTest", - "FeatureFlagsSynchronizerTest/testLoadSplitWhenQuerystringNamesChanges()", - "FeatureFlagsSynchronizerTest/testLoadSplitWhenQuerystringSetsChanges()", - "FeatureFlagsSynchronizerTest/testLoadSplitsClearedOnLoadBecauseNotInFilter()", - "FeatureFlagsSynchronizerTest/testLoadSplitsNoClearedOnLoad()", - "FeatureFlagsSynchronizerTest/testLoadSplitsWhenFlagsSetsAndFilterHasChangedClearsAllFeatureFlags()", - "FeatureFlagsSynchronizerTest/testLoadSplitsWhenFlagsSetsHasChangedClearsAllFeatureFlags()", - "FeatureFlagsSynchronizerTest/testStartPeriodicFetchingSingleModeEnabled()", - "FeatureFlagsSynchronizerTest/testStartPeriodicSync()", - "FeatureFlagsSynchronizerTest/testStop()", - "FeatureFlagsSynchronizerTest/testStopPeriodicSync()", - "FeatureFlagsSynchronizerTest/testSynchronizeSplits()", - "FeatureFlagsSynchronizerTest/testSynchronizeSplitsWithChangeNumber()", - "FeatureFlagsSynchronizerTest/testSynchronizeSplitsWithUriTooLong()", - "FeatureFlagsSynchronizerTest/testUpdateSplitsSingleModeEnabled()", + "FeatureFlagsSynchronizerTest\/testLoadSplitWhenQuerystringNamesChanges()", + "FeatureFlagsSynchronizerTest\/testLoadSplitWhenQuerystringSetsChanges()", + "FeatureFlagsSynchronizerTest\/testLoadSplitsClearedOnLoadBecauseNotInFilter()", + "FeatureFlagsSynchronizerTest\/testLoadSplitsNoClearedOnLoad()", + "FeatureFlagsSynchronizerTest\/testLoadSplitsWhenFlagsSetsAndFilterHasChangedClearsAllFeatureFlags()", + "FeatureFlagsSynchronizerTest\/testLoadSplitsWhenFlagsSetsHasChangedClearsAllFeatureFlags()", + "FeatureFlagsSynchronizerTest\/testStartPeriodicFetchingSingleModeEnabled()", + "FeatureFlagsSynchronizerTest\/testStartPeriodicSync()", + "FeatureFlagsSynchronizerTest\/testStop()", + "FeatureFlagsSynchronizerTest\/testStopPeriodicSync()", + "FeatureFlagsSynchronizerTest\/testSynchronizeSplits()", + "FeatureFlagsSynchronizerTest\/testSynchronizeSplitsWithChangeNumber()", + "FeatureFlagsSynchronizerTest\/testSynchronizeSplitsWithUriTooLong()", + "FeatureFlagsSynchronizerTest\/testUpdateSplitsSingleModeEnabled()", "FetchSpecificSplitsTest", - "FetchSpecificSplitsTest/testBothFilters()", - "FetchSpecificSplitsTest/testByNamesFilter()", - "FetchSpecificSplitsTest/testByPrefixFilter()", + "FetchSpecificSplitsTest\/testBothFilters()", + "FetchSpecificSplitsTest\/testByNamesFilter()", + "FetchSpecificSplitsTest\/testByPrefixFilter()", "FetcherThrottleTests", - "FetcherThrottleTests/testDelayValues()", + "FetcherThrottleTests\/testDelayValues()", "FilterBuilderTest", - "FilterBuilderTest/testBasicByNameQueryString()", - "FilterBuilderTest/testBasicBySetQueryString()", - "FilterBuilderTest/testBySetAndByNameQueryString()", - "FilterBuilderTest/testFilterByNamesValuesDeduptedAndGrouped()", - "FilterBuilderTest/testFilterBySetsValuesDeduptedAndGrouped()", - "FilterBuilderTest/testMaxByNameFilterExceded()", - "FilterBuilderTest/testMaxByPrefixFilterExceded()", - "FilterBuilderTest/testNoFilters()", - "FilterBuilderTest/testQueryStringWithSpecialChars1()", - "FilterBuilderTest/testQueryStringWithSpecialChars2()", - "FilterBuilderTest/testQueryStringWithSpecialChars3()", - "FilterBuilderTest/testQueryStringWithSpecialChars4()", + "FilterBuilderTest\/testBasicByNameQueryString()", + "FilterBuilderTest\/testBasicBySetQueryString()", + "FilterBuilderTest\/testBySetAndByNameQueryString()", + "FilterBuilderTest\/testFilterByNamesValuesDeduptedAndGrouped()", + "FilterBuilderTest\/testFilterBySetsValuesDeduptedAndGrouped()", + "FilterBuilderTest\/testMaxByNameFilterExceded()", + "FilterBuilderTest\/testMaxByPrefixFilterExceded()", + "FilterBuilderTest\/testNoFilters()", + "FilterBuilderTest\/testQueryStringWithSpecialChars1()", + "FilterBuilderTest\/testQueryStringWithSpecialChars2()", + "FilterBuilderTest\/testQueryStringWithSpecialChars3()", + "FilterBuilderTest\/testQueryStringWithSpecialChars4()", "FlagSetValidatorTests", - "FlagSetValidatorTests/testCleanAndValidateValues()", - "FlagSetValidatorTests/testValidateOnEvaluationWithFilteredValues()", + "FlagSetValidatorTests\/testCleanAndValidateValues()", + "FlagSetValidatorTests\/testValidateOnEvaluationWithFilteredValues()", "FlagSetsCacheTests", - "FlagSetsCacheTests/testAddToFlagSetsNoFilter()", - "FlagSetsCacheTests/testAddToFlagSetsWithFilter()", - "FlagSetsCacheTests/testRemoveFromFlagSetsNoFilter()", + "FlagSetsCacheTests\/testAddToFlagSetsNoFilter()", + "FlagSetsCacheTests\/testAddToFlagSetsWithFilter()", + "FlagSetsCacheTests\/testRemoveFromFlagSetsNoFilter()", "FlushTest", "GeneralInfoStorageTest", - "GeneralInfoStorageTest/testGetRolloutCacheLastClearTimestampGetsValueFromDao()", - "GeneralInfoStorageTest/testGetRolloutCacheLastClearTimestampReturnsZeroIfEntityIsNil()", - "GeneralInfoStorageTest/testGetUpdateTimestampGetsValueFromDao()", - "GeneralInfoStorageTest/testGetUpdateTimestampReturnsZeroIfEntityIsNil()", - "GeneralInfoStorageTest/testSetRolloutCacheLastClearTimestampSetsValueOnDao()", - "GeneralInfoStorageTest/testSetUpdateTimestampSetsValueOnDao()", + "GeneralInfoStorageTest\/testGetRolloutCacheLastClearTimestampGetsValueFromDao()", + "GeneralInfoStorageTest\/testGetRolloutCacheLastClearTimestampReturnsZeroIfEntityIsNil()", + "GeneralInfoStorageTest\/testGetUpdateTimestampGetsValueFromDao()", + "GeneralInfoStorageTest\/testGetUpdateTimestampReturnsZeroIfEntityIsNil()", + "GeneralInfoStorageTest\/testSetRolloutCacheLastClearTimestampSetsValueOnDao()", + "GeneralInfoStorageTest\/testSetUpdateTimestampSetsValueOnDao()", "GreaterThanOrEqualToSemverMatcherTest", - "GreaterThanOrEqualToSemverMatcherTest/testGeneralUnsuccessfulMatches()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchShouldReturnFalseWhenKeyIsLess()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchShouldReturnFalseWhenKeyIsNull()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchShouldReturnTrueWhenKeyIsEqual()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchShouldReturnTrueWhenKeyIsGreater()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenLess()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenEqual()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenGreater()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnFalseWhenLess()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenEqual()", - "GreaterThanOrEqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenGreater()", + "GreaterThanOrEqualToSemverMatcherTest\/testGeneralUnsuccessfulMatches()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenKeyIsLess()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenKeyIsNull()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenKeyIsEqual()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenKeyIsGreater()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenLess()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenEqual()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenGreater()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnFalseWhenLess()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenEqual()", + "GreaterThanOrEqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenGreater()", "HashedImpressionDaoTest", - "HashedImpressionDaoTest/testDelete()", - "HashedImpressionDaoTest/testGetAll()", - "HashedImpressionDaoTest/testUpdate()", + "HashedImpressionDaoTest\/testDelete()", + "HashedImpressionDaoTest\/testGetAll()", + "HashedImpressionDaoTest\/testUpdate()", "HttpClientTest", - "HttpClientTest/testDataRequest()", - "HttpClientTest/testDataRequestError()", - "HttpClientTest/testDataRequestWithOrder()", - "HttpClientTest/testStreamRequest()", - "HttpClientTest/testUploadRequest()", + "HttpClientTest\/testDataRequest()", + "HttpClientTest\/testDataRequestError()", + "HttpClientTest\/testDataRequestWithOrder()", + "HttpClientTest\/testStreamRequest()", + "HttpClientTest\/testUploadRequest()", "HttpDataRequestTest", - "HttpDataRequestTest/testError()", - "HttpDataRequestTest/testOnResponseCompletedError()", - "HttpDataRequestTest/testOnResponseCompletedOk()", - "HttpDataRequestTest/testRequestCreation()", - "HttpDataRequestTest/testRequestCreationWithOrder()", - "HttpDataRequestTest/testRequestEnquedOnSend()", - "HttpEventsRecorderTests/testSuccessSending()", + "HttpDataRequestTest\/testError()", + "HttpDataRequestTest\/testOnResponseCompletedError()", + "HttpDataRequestTest\/testOnResponseCompletedOk()", + "HttpDataRequestTest\/testRequestCreation()", + "HttpDataRequestTest\/testRequestCreationWithOrder()", + "HttpDataRequestTest\/testRequestEnquedOnSend()", + "HttpEventsRecorderTests\/testSuccessSending()", "HttpImpressionsCountRecorderTests", - "HttpImpressionsCountRecorderTests/testServerNoReachable()", - "HttpImpressionsCountRecorderTests/testSuccessSending()", + "HttpImpressionsCountRecorderTests\/testServerNoReachable()", + "HttpImpressionsCountRecorderTests\/testSuccessSending()", "HttpImpressionsRecorderTests", - "HttpImpressionsRecorderTests/testServerNoReachable()", - "HttpImpressionsRecorderTests/testSuccessSending()", + "HttpImpressionsRecorderTests\/testServerNoReachable()", + "HttpImpressionsRecorderTests\/testSuccessSending()", "HttpMySegmentsFetcherTest", - "HttpMySegmentsFetcherTest/testServerNoReachable()", - "HttpMySegmentsFetcherTest/testSuccessFulFetch()", + "HttpMySegmentsFetcherTest\/testServerNoReachable()", + "HttpMySegmentsFetcherTest\/testSuccessFulFetch()", "HttpRequestListTest", - "HttpRequestListTest/testAddRequest()", - "HttpRequestListTest/testOverrideSetRequest()", - "HttpRequestListTest/testTakeRequest()", + "HttpRequestListTest\/testAddRequest()", + "HttpRequestListTest\/testOverrideSetRequest()", + "HttpRequestListTest\/testTakeRequest()", "HttpRequestManagerTests", - "HttpRequestManagerTests/testPinnedCredentialValidation()", + "HttpRequestManagerTests\/testPinnedCredentialValidation()", "HttpResponseTest", - "HttpResponseTest/testHttp104()", - "HttpResponseTest/testHttp200()", - "HttpResponseTest/testHttp299()", - "HttpResponseTest/testHttp300()", + "HttpResponseTest\/testHttp104()", + "HttpResponseTest\/testHttp200()", + "HttpResponseTest\/testHttp299()", + "HttpResponseTest\/testHttp300()", "HttpSplitFetcherTests", - "HttpSplitFetcherTests/testSuccessFullFetch()", + "HttpSplitFetcherTests\/testSuccessFullFetch()", "HttpStreamRequestTest", - "HttpStreamRequestTest/testErrorResponse()", - "HttpStreamRequestTest/testOnResponseOk()", - "HttpStreamRequestTest/testRequestCreation()", - "HttpStreamRequestTest/testRequestEnquedOnSend()", + "HttpStreamRequestTest\/testErrorResponse()", + "HttpStreamRequestTest\/testOnResponseOk()", + "HttpStreamRequestTest\/testRequestCreation()", + "HttpStreamRequestTest\/testRequestEnquedOnSend()", "HttpTelemetryConfigRecorderTest", - "HttpTelemetryConfigRecorderTest/testServerNoReachable()", - "HttpTelemetryConfigRecorderTest/testSuccessSending()", + "HttpTelemetryConfigRecorderTest\/testServerNoReachable()", + "HttpTelemetryConfigRecorderTest\/testSuccessSending()", "HttpTelemetryStatsRecorderTest", - "HttpTelemetryStatsRecorderTest/testServerNoReachable()", - "HttpTelemetryStatsRecorderTest/testSuccessSending()", + "HttpTelemetryStatsRecorderTest\/testServerNoReachable()", + "HttpTelemetryStatsRecorderTest\/testSuccessSending()", "HttpUniqueKeyRecorderTests", - "HttpUniqueKeyRecorderTests/testServerNoReachable()", - "HttpUniqueKeyRecorderTests/testSuccessSending()", + "HttpUniqueKeyRecorderTests\/testServerNoReachable()", + "HttpUniqueKeyRecorderTests\/testSuccessSending()", "ImpressionDaoTest", - "ImpressionDaoTest/testDataIsEncryptedInDb()", - "ImpressionDaoTest/testInsertGet()", - "ImpressionDaoTest/testInsertGetAes128Cbc()", - "ImpressionDaoTest/testInsertManyGet()", - "ImpressionDaoTest/testInsertManyGetAes128Cbc()", - "ImpressionDaoTest/testLoadOutdated()", - "ImpressionDaoTest/testLoadOutdatedAes128Cbc()", - "ImpressionDaoTest/testUpdate()", - "ImpressionDaoTest/testUpdateAes128Cbc()", + "ImpressionDaoTest\/testDataIsEncryptedInDb()", + "ImpressionDaoTest\/testInsertGet()", + "ImpressionDaoTest\/testInsertGetAes128Cbc()", + "ImpressionDaoTest\/testInsertManyGet()", + "ImpressionDaoTest\/testInsertManyGetAes128Cbc()", + "ImpressionDaoTest\/testLoadOutdated()", + "ImpressionDaoTest\/testLoadOutdatedAes128Cbc()", + "ImpressionDaoTest\/testUpdate()", + "ImpressionDaoTest\/testUpdateAes128Cbc()", "ImpressionHasherTest", - "ImpressionHasherTest/testDifferentChangeNumber()", - "ImpressionHasherTest/testDifferentKey()", - "ImpressionHasherTest/testDifferentLabel()", - "ImpressionHasherTest/testDifferentTreatment()", - "ImpressionHasherTest/testNoCrashWhenSplitNull()", + "ImpressionHasherTest\/testDifferentChangeNumber()", + "ImpressionHasherTest\/testDifferentKey()", + "ImpressionHasherTest\/testDifferentLabel()", + "ImpressionHasherTest\/testDifferentTreatment()", + "ImpressionHasherTest\/testNoCrashWhenSplitNull()", "ImpressionsCountDaoTest", - "ImpressionsCountDaoTest/testDataIsEncryptedInDb()", - "ImpressionsCountDaoTest/testInsertGetAes128Cbc()", - "ImpressionsCountDaoTest/testInsertGetPlainText()", - "ImpressionsCountDaoTest/testLoadOutdatedGetAes128Cbc()", - "ImpressionsCountDaoTest/testLoadOutdatedPlainText()", - "ImpressionsCountDaoTest/testUpdateGetAes128Cbc()", - "ImpressionsCountDaoTest/testUpdatePlainText()", + "ImpressionsCountDaoTest\/testDataIsEncryptedInDb()", + "ImpressionsCountDaoTest\/testInsertGetAes128Cbc()", + "ImpressionsCountDaoTest\/testInsertGetPlainText()", + "ImpressionsCountDaoTest\/testLoadOutdatedGetAes128Cbc()", + "ImpressionsCountDaoTest\/testLoadOutdatedPlainText()", + "ImpressionsCountDaoTest\/testUpdateGetAes128Cbc()", + "ImpressionsCountDaoTest\/testUpdatePlainText()", "ImpressionsCounterTest", - "ImpressionsCounterTest/testBasicUsage()", - "ImpressionsCounterTest/testConcurrency()", - "ImpressionsCounterTest/testTruncateTime()", + "ImpressionsCounterTest\/testBasicUsage()", + "ImpressionsCounterTest\/testConcurrency()", + "ImpressionsCounterTest\/testTruncateTime()", "ImpressionsDedupTest", - "ImpressionsDedupTest/testDebug()", - "ImpressionsDedupTest/testOptimized()", + "ImpressionsDedupTest\/testDebug()", + "ImpressionsDedupTest\/testOptimized()", "ImpressionsModeTypeWrapperTest", - "ImpressionsModeTypeWrapperTest/testEmptyInvalidValue()", - "ImpressionsModeTypeWrapperTest/testInitdebugValue()", - "ImpressionsModeTypeWrapperTest/testInitnoneValue()", - "ImpressionsModeTypeWrapperTest/testInitoptimizedValue()", - "ImpressionsModeTypeWrapperTest/testInvalidValue()", - "ImpressionsModeTypeWrapperTest/testdebugValue()", - "ImpressionsModeTypeWrapperTest/testnoneValue()", - "ImpressionsModeTypeWrapperTest/testoptimizedValue()", + "ImpressionsModeTypeWrapperTest\/testEmptyInvalidValue()", + "ImpressionsModeTypeWrapperTest\/testInitdebugValue()", + "ImpressionsModeTypeWrapperTest\/testInitnoneValue()", + "ImpressionsModeTypeWrapperTest\/testInitoptimizedValue()", + "ImpressionsModeTypeWrapperTest\/testInvalidValue()", + "ImpressionsModeTypeWrapperTest\/testdebugValue()", + "ImpressionsModeTypeWrapperTest\/testnoneValue()", + "ImpressionsModeTypeWrapperTest\/testoptimizedValue()", "ImpressionsNoneTest", - "ImpressionsNoneTest/testCorrectData()", - "ImpressionsNoneTest/testPeriodicRecording()", + "ImpressionsNoneTest\/testCorrectData()", + "ImpressionsNoneTest\/testPeriodicRecording()", "ImpressionsObserverTest", - "ImpressionsObserverTest/testBasicFunctionality()", - "ImpressionsObserverTest/testConcurrencyVsAccuracy()", - "ImpressionsObserverTest/testSave()", + "ImpressionsObserverTest\/testBasicFunctionality()", + "ImpressionsObserverTest\/testConcurrencyVsAccuracy()", + "ImpressionsObserverTest\/testSave()", "ImpressionsRecorderWorkerTests", - "ImpressionsRecorderWorkerTests/testFailToSendSome()", - "ImpressionsRecorderWorkerTests/testSendOneImpression()", + "ImpressionsRecorderWorkerTests\/testFailToSendSome()", + "ImpressionsRecorderWorkerTests\/testSendOneImpression()", "ImpressionsStorageTest", - "ImpressionsStorageTest/testClear()", - "ImpressionsStorageTest/testDisablePersistence()", - "ImpressionsStorageTest/testEnablePersistence()", - "ImpressionsStorageTest/testStartDisabledPersistence()", - "ImpressionsStorageTest/testStartEnabledPersistence()", + "ImpressionsStorageTest\/testClear()", + "ImpressionsStorageTest\/testDisablePersistence()", + "ImpressionsStorageTest\/testEnablePersistence()", + "ImpressionsStorageTest\/testStartDisabledPersistence()", + "ImpressionsStorageTest\/testStartEnabledPersistence()", "ImpressionsToggleTest", - "ImpressionsToggleTest/testDebugMode()", - "ImpressionsToggleTest/testManagerContainsProperty()", - "ImpressionsToggleTest/testNoneMode()", - "ImpressionsToggleTest/testOptimizedMode()", + "ImpressionsToggleTest\/testDebugMode()", + "ImpressionsToggleTest\/testManagerContainsProperty()", + "ImpressionsToggleTest\/testNoneMode()", + "ImpressionsToggleTest\/testOptimizedMode()", "ImpressionsTrackerTest", - "ImpressionsTrackerTest/testDestroyDebug()", - "ImpressionsTrackerTest/testDestroyNone()", - "ImpressionsTrackerTest/testDestroyOptimized()", - "ImpressionsTrackerTest/testFlushDebug()", - "ImpressionsTrackerTest/testFlushNone()", - "ImpressionsTrackerTest/testFlushOptimized()", - "ImpressionsTrackerTest/testImpressionPushDebug()", - "ImpressionsTrackerTest/testImpressionPushNone()", - "ImpressionsTrackerTest/testImpressionPushOptimized()", - "ImpressionsTrackerTest/testImpressionPushTrackingDisabledDebug()", - "ImpressionsTrackerTest/testImpressionPushTrackingDisabledNone()", - "ImpressionsTrackerTest/testImpressionPushTrackingDisabledOptimized()", - "ImpressionsTrackerTest/testPauseDebug()", - "ImpressionsTrackerTest/testPauseNone()", - "ImpressionsTrackerTest/testPauseOptimized()", - "ImpressionsTrackerTest/testResume()", - "ImpressionsTrackerTest/testStartDebug()", - "ImpressionsTrackerTest/testStartNone()", - "ImpressionsTrackerTest/testStartOptimized()", - "ImpressionsTrackerTest/testStopDebug()", - "ImpressionsTrackerTest/testStopNone()", - "ImpressionsTrackerTest/testStopOptimized()", + "ImpressionsTrackerTest\/testDestroyDebug()", + "ImpressionsTrackerTest\/testDestroyNone()", + "ImpressionsTrackerTest\/testDestroyOptimized()", + "ImpressionsTrackerTest\/testFlushDebug()", + "ImpressionsTrackerTest\/testFlushNone()", + "ImpressionsTrackerTest\/testFlushOptimized()", + "ImpressionsTrackerTest\/testImpressionPushDebug()", + "ImpressionsTrackerTest\/testImpressionPushNone()", + "ImpressionsTrackerTest\/testImpressionPushOptimized()", + "ImpressionsTrackerTest\/testImpressionPushTrackingDisabledDebug()", + "ImpressionsTrackerTest\/testImpressionPushTrackingDisabledNone()", + "ImpressionsTrackerTest\/testImpressionPushTrackingDisabledOptimized()", + "ImpressionsTrackerTest\/testPauseDebug()", + "ImpressionsTrackerTest\/testPauseNone()", + "ImpressionsTrackerTest\/testPauseOptimized()", + "ImpressionsTrackerTest\/testResume()", + "ImpressionsTrackerTest\/testStartDebug()", + "ImpressionsTrackerTest\/testStartNone()", + "ImpressionsTrackerTest\/testStartOptimized()", + "ImpressionsTrackerTest\/testStopDebug()", + "ImpressionsTrackerTest\/testStopNone()", + "ImpressionsTrackerTest\/testStopOptimized()", "InListSemverMatcherTest", - "InListSemverMatcherTest/testGeneralMatches()", - "InListSemverMatcherTest/testMatchShouldReturnFalseWhenNotInList()", - "InListSemverMatcherTest/testMatchWithEmptyListShouldReturnFalse()", - "InListSemverMatcherTest/testMatchWithMetadataShouldReturnFalseWhenNotInList()", - "InListSemverMatcherTest/testMatchWithMetadataShouldReturnTrueWhenInList()", - "InListSemverMatcherTest/testMatchWithNullKeyShouldReturnFalse()", - "InListSemverMatcherTest/testMatchWithNullTargetShouldReturnFalse()", - "InListSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrueWhenInList()", + "InListSemverMatcherTest\/testGeneralMatches()", + "InListSemverMatcherTest\/testMatchShouldReturnFalseWhenNotInList()", + "InListSemverMatcherTest\/testMatchWithEmptyListShouldReturnFalse()", + "InListSemverMatcherTest\/testMatchWithMetadataShouldReturnFalseWhenNotInList()", + "InListSemverMatcherTest\/testMatchWithMetadataShouldReturnTrueWhenInList()", + "InListSemverMatcherTest\/testMatchWithNullKeyShouldReturnFalse()", + "InListSemverMatcherTest\/testMatchWithNullTargetShouldReturnFalse()", + "InListSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrueWhenInList()", "InMemoryTelemetryStorageTest", - "InMemoryTelemetryStorageTest/testActiveFactoriesCount()", - "InMemoryTelemetryStorageTest/testAuthRejections()", - "InMemoryTelemetryStorageTest/testConcurrence()", - "InMemoryTelemetryStorageTest/testEvent()", - "InMemoryTelemetryStorageTest/testExceptions()", - "InMemoryTelemetryStorageTest/testHttpErrors()", - "InMemoryTelemetryStorageTest/testHttpLatencies()", - "InMemoryTelemetryStorageTest/testImpression()", - "InMemoryTelemetryStorageTest/testLastSync()", - "InMemoryTelemetryStorageTest/testLatencies()", - "InMemoryTelemetryStorageTest/testRedundantFactoriesCount()", - "InMemoryTelemetryStorageTest/testSessionLength()", - "InMemoryTelemetryStorageTest/testStreamingEvents()", - "InMemoryTelemetryStorageTest/testTags()", - "InMemoryTelemetryStorageTest/testTimeUntilReady()", - "InMemoryTelemetryStorageTest/testTimeUntilReadyFromCache()", - "InMemoryTelemetryStorageTest/testUpdatesFromSse()", + "InMemoryTelemetryStorageTest\/testActiveFactoriesCount()", + "InMemoryTelemetryStorageTest\/testAuthRejections()", + "InMemoryTelemetryStorageTest\/testConcurrence()", + "InMemoryTelemetryStorageTest\/testEvent()", + "InMemoryTelemetryStorageTest\/testExceptions()", + "InMemoryTelemetryStorageTest\/testHttpErrors()", + "InMemoryTelemetryStorageTest\/testHttpLatencies()", + "InMemoryTelemetryStorageTest\/testImpression()", + "InMemoryTelemetryStorageTest\/testLastSync()", + "InMemoryTelemetryStorageTest\/testLatencies()", + "InMemoryTelemetryStorageTest\/testRedundantFactoriesCount()", + "InMemoryTelemetryStorageTest\/testSessionLength()", + "InMemoryTelemetryStorageTest\/testStreamingEvents()", + "InMemoryTelemetryStorageTest\/testTags()", + "InMemoryTelemetryStorageTest\/testTimeUntilReady()", + "InMemoryTelemetryStorageTest\/testTimeUntilReadyFromCache()", + "InMemoryTelemetryStorageTest\/testUpdatesFromSse()", "InitDbCipherTest", - "InitDbCipherTest/testDecryptDb()", - "InitDbCipherTest/testEncryptDb()", + "InitDbCipherTest\/testDecryptDb()", + "InitDbCipherTest\/testEncryptDb()", "InitialCacheTest", - "InitialCacheTest/testClearChangedSplitFilter()", - "InitialCacheTest/testClearExpiredCache()", - "InitialCacheTest/testExpiredCache()", - "InitialCacheTest/testFlagsSpecChanged()", + "InitialCacheTest\/testClearChangedSplitFilter()", + "InitialCacheTest\/testClearExpiredCache()", + "InitialCacheTest\/testExpiredCache()", + "InitialCacheTest\/testFlagsSpecChanged()", "InstantFeatureFlagsUpdateTest", - "InstantFeatureFlagsUpdateTest/testInstantUpdateArchived()", - "InstantFeatureFlagsUpdateTest/testInstantUpdateGzip()", - "InstantFeatureFlagsUpdateTest/testInstantUpdateZlib()", + "InstantFeatureFlagsUpdateTest\/testInstantUpdateArchived()", + "InstantFeatureFlagsUpdateTest\/testInstantUpdateGzip()", + "InstantFeatureFlagsUpdateTest\/testInstantUpdateZlib()", "JwtTokenParserTest", - "JwtTokenParserTest/testEmptyToken()", - "JwtTokenParserTest/testGarbageToken()", - "JwtTokenParserTest/testOkToken()", - "JwtTokenParserTest/testOnlyChannelsWithSeparator()", - "JwtTokenParserTest/testOnlyHeader()", + "JwtTokenParserTest\/testEmptyToken()", + "JwtTokenParserTest\/testGarbageToken()", + "JwtTokenParserTest\/testOkToken()", + "JwtTokenParserTest\/testOnlyChannelsWithSeparator()", + "JwtTokenParserTest\/testOnlyHeader()", "KeyGeneratorTest", - "KeyGeneratorTest/testGenerationOk()", + "KeyGeneratorTest\/testGenerationOk()", "KeyValidatorTests", - "KeyValidatorTests/testInvalidEmptyBucketingKey()", - "KeyValidatorTests/testInvalidEmptyMatchingKey()", - "KeyValidatorTests/testInvalidLongBucketingKey()", - "KeyValidatorTests/testInvalidLongMatchingKey()", - "KeyValidatorTests/testNullMatchingKey()", - "KeyValidatorTests/testValidMatchingAndBucketingKey()", + "KeyValidatorTests\/testInvalidEmptyBucketingKey()", + "KeyValidatorTests\/testInvalidEmptyMatchingKey()", + "KeyValidatorTests\/testInvalidLongBucketingKey()", + "KeyValidatorTests\/testInvalidLongMatchingKey()", + "KeyValidatorTests\/testNullMatchingKey()", + "KeyValidatorTests\/testValidMatchingAndBucketingKey()", "LRUCacheTest", - "LRUCacheTest/testEviction()", - "LRUCacheTest/testGetAllPerformance()", - "LRUCacheTest/testInsertPerformance()", + "LRUCacheTest\/testEviction()", + "LRUCacheTest\/testGetAllPerformance()", + "LRUCacheTest\/testInsertPerformance()", "LatencyCounterTests", - "LatencyCounterTests/testFirstBucket()", - "LatencyCounterTests/testInvalidIndex()", - "LatencyCounterTests/testLastBucket()", + "LatencyCounterTests\/testFirstBucket()", + "LatencyCounterTests\/testInvalidIndex()", + "LatencyCounterTests\/testLastBucket()", "LegacyHashingTest", - "LegacyHashingTest/testBucket()", - "LegacyHashingTest/testHashing()", + "LegacyHashingTest\/testBucket()", + "LegacyHashingTest\/testHashing()", "LessThanOrEqualToSemverMatcherTest", - "LessThanOrEqualToSemverMatcherTest/testGeneralMatches()", - "LessThanOrEqualToSemverMatcherTest/testMatchShouldReturnFalseWhenGreater()", - "LessThanOrEqualToSemverMatcherTest/testMatchShouldReturnTrueWhenEqual()", - "LessThanOrEqualToSemverMatcherTest/testMatchShouldReturnTrueWhenLess()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithMetadataShouldReturnFalse()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithMetadataShouldReturnTrue()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithNullKeyShouldReturnNull()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithNullTargetShouldReturnFalse()", - "LessThanOrEqualToSemverMatcherTest/testMatchWithPreReleaseShouldReturnTrue()", + "LessThanOrEqualToSemverMatcherTest\/testGeneralMatches()", + "LessThanOrEqualToSemverMatcherTest\/testMatchShouldReturnFalseWhenGreater()", + "LessThanOrEqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenEqual()", + "LessThanOrEqualToSemverMatcherTest\/testMatchShouldReturnTrueWhenLess()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnFalse()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithMetadataShouldReturnTrue()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithNullKeyShouldReturnNull()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithNullTargetShouldReturnFalse()", + "LessThanOrEqualToSemverMatcherTest\/testMatchWithPreReleaseShouldReturnTrue()", "LocalhostManagerTests", - "LocalhostManagerTests/testSplitNames()", - "LocalhostManagerTests/testSplits()", - "LocalhostManagerTests/testSplitsByName()", + "LocalhostManagerTests\/testSplitNames()", + "LocalhostManagerTests\/testSplits()", + "LocalhostManagerTests\/testSplitsByName()", "LocalhostParserTests", - "LocalhostParserTests/testIntercomentedLinesFile()", - "LocalhostParserTests/testPerfectFile()", - "LocalhostParserTests/testSpacedLinesFile()", - "LocalhostSplitClientTests/testNonExistingSplitsTreatment()", - "LocalhostSplitClientTests/testNonExistingSplitsTreatments()", - "LocalhostSplitClientTests/testRightSplitsFileTreatment()", - "LocalhostSplitClientTests/testRightSplitsFileTreatments()", + "LocalhostParserTests\/testIntercomentedLinesFile()", + "LocalhostParserTests\/testPerfectFile()", + "LocalhostParserTests\/testSpacedLinesFile()", + "LocalhostSplitClientTests\/testNonExistingSplitsTreatment()", + "LocalhostSplitClientTests\/testNonExistingSplitsTreatments()", + "LocalhostSplitClientTests\/testRightSplitsFileTreatment()", + "LocalhostSplitClientTests\/testRightSplitsFileTreatments()", "LocalhostSplitLoaderTests", - "LocalhostSplitLoaderTests/testFileUpdate()", - "LocalhostSplitLoaderTests/testFileUpdate2()", - "LocalhostSplitLoaderTests/testInvalidTypeFile()", - "LocalhostSplitLoaderTests/testWrongFormatYml()", - "LocalhostSplitLoaderTests/testWrongLegacyFormatUpdate()", - "LocalhostSplitLoaderTests/testWrongYamlFormatUpdate()", + "LocalhostSplitLoaderTests\/testFileUpdate()", + "LocalhostSplitLoaderTests\/testFileUpdate2()", + "LocalhostSplitLoaderTests\/testInvalidTypeFile()", + "LocalhostSplitLoaderTests\/testWrongFormatYml()", + "LocalhostSplitLoaderTests\/testWrongLegacyFormatUpdate()", + "LocalhostSplitLoaderTests\/testWrongYamlFormatUpdate()", "LocalhostSplitStorageTests", - "LocalhostSplitStorageTests/testClear()", - "LocalhostSplitStorageTests/testDestroy()", - "LocalhostSplitStorageTests/testGetAllSplits()", - "LocalhostSplitStorageTests/testGetCount()", - "LocalhostSplitStorageTests/testGetManySplits()", - "LocalhostSplitStorageTests/testGetSplit()", - "LocalhostSplitStorageTests/testUpdateSplitChange()", + "LocalhostSplitStorageTests\/testClear()", + "LocalhostSplitStorageTests\/testDestroy()", + "LocalhostSplitStorageTests\/testGetAllSplits()", + "LocalhostSplitStorageTests\/testGetCount()", + "LocalhostSplitStorageTests\/testGetManySplits()", + "LocalhostSplitStorageTests\/testGetSplit()", + "LocalhostSplitStorageTests\/testUpdateSplitChange()", "LocalhostSynchronizerTests", - "LocalhostSynchronizerTests/testLoadAndSdkReady()", - "LocalhostSynchronizerTests/testUpdateSplits()", - "LocalhostSynchronizerTests/testUpdateYaml()", + "LocalhostSynchronizerTests\/testLoadAndSdkReady()", + "LocalhostSynchronizerTests\/testUpdateSplits()", + "LocalhostSynchronizerTests\/testUpdateYaml()", "LocalhostTests", - "LocalhostTests/testDefaultFactoryCreation()", - "LocalhostTests/testLocalhostFactoryCreation()", - "LocalhostTests/testUsingSpaceSeparatedFile()", - "LocalhostTests/testUsingYamlFile()", - "LocalhostTests/testUsingYamlFromApi()", + "LocalhostTests\/testDefaultFactoryCreation()", + "LocalhostTests\/testLocalhostFactoryCreation()", + "LocalhostTests\/testUsingSpaceSeparatedFile()", + "LocalhostTests\/testUsingYamlFile()", + "LocalhostTests\/testUsingYamlFromApi()", "LocalhostYamlParserTest", - "LocalhostYamlParserTest/testCorrectFile()", - "LocalhostYamlParserTest/testMissingFirstSplit()", - "LocalhostYamlParserTest/testMissingSplitData()", - "LocalhostYamlParserTest/testMissingSplitTreatment()", - "LocalhostYamlParserTest/testWrongFormat()", + "LocalhostYamlParserTest\/testCorrectFile()", + "LocalhostYamlParserTest\/testMissingFirstSplit()", + "LocalhostYamlParserTest\/testMissingSplitData()", + "LocalhostYamlParserTest\/testMissingSplitTreatment()", + "LocalhostYamlParserTest\/testWrongFormat()", "LoggerTest", - "LoggerTest/testDebug()", - "LoggerTest/testError()", - "LoggerTest/testNone()", - "LoggerTest/testVerbose()", - "LoggerTest/testWarning()", + "LoggerTest\/testDebug()", + "LoggerTest\/testError()", + "LoggerTest\/testNone()", + "LoggerTest\/testVerbose()", + "LoggerTest\/testWarning()", "MatcherEvalTests", "MultiClientEvaluationTest", - "MultiClientEvaluationTest/testEvaluation()", - "MultiClientEvaluationTest/testEvaluationFromCache()", - "MultiClientEvaluationTest/testEvaluationWithAttributes()", - "MultiClientEvaluationTest/testImpressions()", - "MultiClientEvaluationTest/testTrack()", - "MultiClientStreamingResetTest/testStress()", - "MultiClientStreamingResetTest/testWithStreamingDelay()", + "MultiClientEvaluationTest\/testEvaluation()", + "MultiClientEvaluationTest\/testEvaluationFromCache()", + "MultiClientEvaluationTest\/testEvaluationWithAttributes()", + "MultiClientEvaluationTest\/testImpressions()", + "MultiClientEvaluationTest\/testTrack()", + "MultiClientStreamingResetTest\/testStress()", + "MultiClientStreamingResetTest\/testWithStreamingDelay()", "Murmur3HashingTest", - "Murmur3HashingTest/test64x128()", - "Murmur3HashingTest/testBucket()", + "Murmur3HashingTest\/test64x128()", + "Murmur3HashingTest\/testBucket()", "MyLargeSegmentsStorageTests", - "MyLargeSegmentsStorageTests/testChangeNumber()", - "MyLargeSegmentsStorageTests/testClear()", - "MyLargeSegmentsStorageTests/testGetMySegmentsAfterLoad()", - "MyLargeSegmentsStorageTests/testNoLoaded()", - "MyLargeSegmentsStorageTests/testUpdateEmptySegments()", - "MyLargeSegmentsStorageTests/testUpdateSegments()", + "MyLargeSegmentsStorageTests\/testChangeNumber()", + "MyLargeSegmentsStorageTests\/testClear()", + "MyLargeSegmentsStorageTests\/testGetMySegmentsAfterLoad()", + "MyLargeSegmentsStorageTests\/testNoLoaded()", + "MyLargeSegmentsStorageTests\/testUpdateEmptySegments()", + "MyLargeSegmentsStorageTests\/testUpdateSegments()", "MySegmentServerErrorTest", - "MySegmentServerErrorTest/test()", + "MySegmentServerErrorTest\/test()", "MySegmentUpdateTest", - "MySegmentUpdateTest/testMyLargeSegmentsUpdate()", - "MySegmentUpdateTest/testMySegmentsLargeUpdateBounded()", - "MySegmentUpdateTest/testMySegmentsUpdate()", - "MySegmentUpdateTest/testMySegmentsUpdateBounded()", - "MySegmentUpdateTest/testSeveralNotificationAndOneFetch()", - "MySegmentUpdatedTest/testSegments()", + "MySegmentUpdateTest\/testMyLargeSegmentsUpdate()", + "MySegmentUpdateTest\/testMySegmentsLargeUpdateBounded()", + "MySegmentUpdateTest\/testMySegmentsUpdate()", + "MySegmentUpdateTest\/testMySegmentsUpdateBounded()", + "MySegmentUpdateTest\/testSeveralNotificationAndOneFetch()", + "MySegmentUpdatedTest\/testSegments()", "MySegmentsBgSyncWorkerTest", - "MySegmentsBgSyncWorkerTest/testNoSuccess()", - "MySegmentsBgSyncWorkerTest/testOneTimeFetchSuccess()", + "MySegmentsBgSyncWorkerTest\/testNoSuccess()", + "MySegmentsBgSyncWorkerTest\/testOneTimeFetchSuccess()", "MySegmentsDaoTest", - "MySegmentsDaoTest/testDataIsEncryptedInDb()", - "MySegmentsDaoTest/testGetInvalidKeyAes128Cbc()", - "MySegmentsDaoTest/testUpdateGetAes128Cbc()", - "MySegmentsDaoTest/testUpdateGetPlainText()", + "MySegmentsDaoTest\/testDataIsEncryptedInDb()", + "MySegmentsDaoTest\/testGetInvalidKeyAes128Cbc()", + "MySegmentsDaoTest\/testUpdateGetAes128Cbc()", + "MySegmentsDaoTest\/testUpdateGetPlainText()", "MySegmentsPayloadDecoderTest", - "MySegmentsPayloadDecoderTest/testUserKeyHash()", + "MySegmentsPayloadDecoderTest\/testUserKeyHash()", "MySegmentsStorageTests", - "MySegmentsStorageTests/testChangeNumber()", - "MySegmentsStorageTests/testClear()", - "MySegmentsStorageTests/testGetMySegmentsAfterLoad()", - "MySegmentsStorageTests/testNoLoaded()", - "MySegmentsStorageTests/testUpdateEmptySegments()", - "MySegmentsStorageTests/testUpdateSegments()", + "MySegmentsStorageTests\/testChangeNumber()", + "MySegmentsStorageTests\/testClear()", + "MySegmentsStorageTests\/testGetMySegmentsAfterLoad()", + "MySegmentsStorageTests\/testNoLoaded()", + "MySegmentsStorageTests\/testUpdateEmptySegments()", + "MySegmentsStorageTests\/testUpdateSegments()", "MySegmentsSyncWorkerTest", - "MySegmentsSyncWorkerTest/testNoCacheHeader()", - "MySegmentsSyncWorkerTest/testOneTimeFetchSuccess()", - "MySegmentsSyncWorkerTest/testRetryAndSuccess()", - "MySegmentsSyncWorkerTest/testStopNoSuccess()", + "MySegmentsSyncWorkerTest\/testNoCacheHeader()", + "MySegmentsSyncWorkerTest\/testOneTimeFetchSuccess()", + "MySegmentsSyncWorkerTest\/testRetryAndSuccess()", + "MySegmentsSyncWorkerTest\/testStopNoSuccess()", "MySegmentsSynchronizerTest", - "MySegmentsSynchronizerTest/testDestroy()", - "MySegmentsSynchronizerTest/testForceSync()", - "MySegmentsSynchronizerTest/testLoadMySegmentsFromCache()", - "MySegmentsSynchronizerTest/testNoPeriodicSync()", - "MySegmentsSynchronizerTest/testPeriodicStartPauseResumeStop()", - "MySegmentsSynchronizerTest/testPeriodicStartStop()", - "MySegmentsSynchronizerTest/testSynchronize()", + "MySegmentsSynchronizerTest\/testDestroy()", + "MySegmentsSynchronizerTest\/testForceSync()", + "MySegmentsSynchronizerTest\/testLoadMySegmentsFromCache()", + "MySegmentsSynchronizerTest\/testNoPeriodicSync()", + "MySegmentsSynchronizerTest\/testPeriodicStartPauseResumeStop()", + "MySegmentsSynchronizerTest\/testPeriodicStartStop()", + "MySegmentsSynchronizerTest\/testSynchronize()", "MySegmentsV2PayloaDecoderTest", - "MySegmentsV2PayloaDecoderTest/testBoundedGzipPayload()", - "MySegmentsV2PayloaDecoderTest/testBoundedZlibPayload()", - "MySegmentsV2PayloaDecoderTest/testKeyListGzipPayload()", + "MySegmentsV2PayloaDecoderTest\/testBoundedGzipPayload()", + "MySegmentsV2PayloaDecoderTest\/testBoundedZlibPayload()", + "MySegmentsV2PayloaDecoderTest\/testKeyListGzipPayload()", "NotificationManagerKeeperTest", - "NotificationManagerKeeperTest/testIncomingControlStreamingDisabled()", - "NotificationManagerKeeperTest/testIncomingControlStreamingEnabledNoPublishers()", - "NotificationManagerKeeperTest/testIncomingControlStreamingPaused()", - "NotificationManagerKeeperTest/testIncomingControlStreamingReset()", - "NotificationManagerKeeperTest/testNoAvailablePublishers()", - "NotificationManagerKeeperTest/testNoAvailablePublishersInPriButAvailableInSec()", - "NotificationManagerKeeperTest/testNoAvailablePublishersOldTimestamp()", - "NotificationManagerKeeperTest/testSecondaryAvailableNotificationReceivedWhenNoPublishers()", - "NotificationManagerKeeperTest/testSecondaryAvailableNotificationReceivedWhenNoPublishersOldTimestamp()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingDisabled()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingEnabledNoPublishers()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingPaused()", + "NotificationManagerKeeperTest\/testIncomingControlStreamingReset()", + "NotificationManagerKeeperTest\/testNoAvailablePublishers()", + "NotificationManagerKeeperTest\/testNoAvailablePublishersInPriButAvailableInSec()", + "NotificationManagerKeeperTest\/testNoAvailablePublishersOldTimestamp()", + "NotificationManagerKeeperTest\/testSecondaryAvailableNotificationReceivedWhenNoPublishers()", + "NotificationManagerKeeperTest\/testSecondaryAvailableNotificationReceivedWhenNoPublishersOldTimestamp()", "NotificationParserTest", - "NotificationParserTest/testProcessControl()", - "NotificationParserTest/testProcessError()", - "NotificationParserTest/testProcessMyLargeSegmentUpdateAllFields()", - "NotificationParserTest/testProcessMyLargeSegmentUpdateUnbounded()", - "NotificationParserTest/testProcessMySegmentUpdateAllFields()", - "NotificationParserTest/testProcessMySegmentUpdateRemoval()", - "NotificationParserTest/testProcessMySegmentUpdateUnbounded()", - "NotificationParserTest/testProcessOccupancy()", - "NotificationParserTest/testProcessSplitKill()", - "NotificationParserTest/testProcessSplitUpdate()", - "NotificationParserTest/testProcessSplitUpdateWithPayload()", - "PeriodicMySegmentsSyncWorkerTest/testFetchWhenNoSegmentsReadyYet()", - "PeriodicMySegmentsSyncWorkerTest/testNormalFetchSdkIsReady()", + "NotificationParserTest\/testProcessControl()", + "NotificationParserTest\/testProcessError()", + "NotificationParserTest\/testProcessMyLargeSegmentUpdateAllFields()", + "NotificationParserTest\/testProcessMyLargeSegmentUpdateUnbounded()", + "NotificationParserTest\/testProcessMySegmentUpdateAllFields()", + "NotificationParserTest\/testProcessMySegmentUpdateRemoval()", + "NotificationParserTest\/testProcessMySegmentUpdateUnbounded()", + "NotificationParserTest\/testProcessOccupancy()", + "NotificationParserTest\/testProcessSplitKill()", + "NotificationParserTest\/testProcessSplitUpdate()", + "NotificationParserTest\/testProcessSplitUpdateWithPayload()", + "PeriodicMySegmentsSyncWorkerTest\/testFetchWhenNoSegmentsReadyYet()", + "PeriodicMySegmentsSyncWorkerTest\/testNormalFetchSdkIsReady()", "PeriodicSplitsSyncWorkerTest", - "PeriodicSplitsSyncWorkerTest/testNoSdkReadyFetch()", - "PeriodicSplitsSyncWorkerTest/testNormalFetch()", + "PeriodicSplitsSyncWorkerTest\/testNoSdkReadyFetch()", + "PeriodicSplitsSyncWorkerTest\/testNormalFetch()", "PersistentAttributesStorageTests", - "PersistentAttributesStorageTests/testAll()", - "PersistentAttributesStorageTests/testClear()", - "PersistentAttributesStorageTests/testSet()", + "PersistentAttributesStorageTests\/testAll()", + "PersistentAttributesStorageTests\/testClear()", + "PersistentAttributesStorageTests\/testSet()", "PersistentMyLargeSegmentsStorageTests", - "PersistentMyLargeSegmentsStorageTests/testClear()", - "PersistentMyLargeSegmentsStorageTests/testGetSnapshot()", - "PersistentMyLargeSegmentsStorageTests/testGetSnapshotMultiKey()", - "PersistentMyLargeSegmentsStorageTests/testSet()", - "PersistentMyLargeSegmentsStorageTests/testSetMultiKey()", + "PersistentMyLargeSegmentsStorageTests\/testClear()", + "PersistentMyLargeSegmentsStorageTests\/testGetSnapshot()", + "PersistentMyLargeSegmentsStorageTests\/testGetSnapshotMultiKey()", + "PersistentMyLargeSegmentsStorageTests\/testSet()", + "PersistentMyLargeSegmentsStorageTests\/testSetMultiKey()", "PersistentMySegmentsStorageTests", - "PersistentMySegmentsStorageTests/testGetSnapshot()", - "PersistentMySegmentsStorageTests/testGetSnapshotMultiKey()", - "PersistentMySegmentsStorageTests/testSet()", - "PersistentMySegmentsStorageTests/testSetMultiKey()", + "PersistentMySegmentsStorageTests\/testGetSnapshot()", + "PersistentMySegmentsStorageTests\/testGetSnapshotMultiKey()", + "PersistentMySegmentsStorageTests\/testSet()", + "PersistentMySegmentsStorageTests\/testSetMultiKey()", "PersistentUniqueKeysStorageTests", - "PersistentUniqueKeysStorageTests/testDelete()", - "PersistentUniqueKeysStorageTests/testPop()", - "PersistentUniqueKeysStorageTests/testSetActive()", + "PersistentUniqueKeysStorageTests\/testDelete()", + "PersistentUniqueKeysStorageTests\/testPop()", + "PersistentUniqueKeysStorageTests\/testSetActive()", "PushManagerEventBroadcasterTest", - "PushManagerEventBroadcasterTest/testRegister()", - "PushManagerEventBroadcasterTest/testStop()", + "PushManagerEventBroadcasterTest\/testRegister()", + "PushManagerEventBroadcasterTest\/testStop()", "PushNotificationManagerTest", - "PushNotificationManagerTest/testResetConnectionOk()", - "PushNotificationManagerTest/testStartAuthReintent()", - "PushNotificationManagerTest/testStartFullConnectionOk()", - "PushNotificationManagerTest/testStartSseReintent()", - "PushNotificationManagerTest/testStop()", - "PushNotificationManagerTest/testStreamingDisabled()", + "PushNotificationManagerTest\/testResetConnectionOk()", + "PushNotificationManagerTest\/testStartAuthReintent()", + "PushNotificationManagerTest\/testStartFullConnectionOk()", + "PushNotificationManagerTest\/testStartSseReintent()", + "PushNotificationManagerTest\/testStop()", + "PushNotificationManagerTest\/testStreamingDisabled()", "ReadyFromCacheTest", - "ReadyFromCacheTest/testExistingSplitsAndConnectionOk()", - "ReadyFromCacheTest/testExistingSplitsAndNoConnection()", - "ReadyFromCacheTest/testLargeSegmentsEnabled()", - "ReadyFromCacheTest/testNotExistingSplitsAndConnectionOk()", - "ReadyFromCacheTest/testPersistentAttributesDisabled()", - "ReadyFromCacheTest/testPersistentAttributesEnabled()", - "ReadyFromCacheTest/testSplitsAndConnOk_FromNoSplitFilterToFilter()", - "ReadyFromCacheTest/testSplitsAndConnOk_FromSplitFilterToNoFilter()", + "ReadyFromCacheTest\/testExistingSplitsAndConnectionOk()", + "ReadyFromCacheTest\/testExistingSplitsAndNoConnection()", + "ReadyFromCacheTest\/testLargeSegmentsEnabled()", + "ReadyFromCacheTest\/testNotExistingSplitsAndConnectionOk()", + "ReadyFromCacheTest\/testPersistentAttributesDisabled()", + "ReadyFromCacheTest\/testPersistentAttributesEnabled()", + "ReadyFromCacheTest\/testSplitsAndConnOk_FromNoSplitFilterToFilter()", + "ReadyFromCacheTest\/testSplitsAndConnOk_FromSplitFilterToNoFilter()", "ReconnectBackoffCounterTest", - "ReconnectBackoffCounterTest/testBase1()", - "ReconnectBackoffCounterTest/testBase2()", - "ReconnectBackoffCounterTest/testBase3()", - "ReconnectBackoffCounterTest/testBase8()", + "ReconnectBackoffCounterTest\/testBase1()", + "ReconnectBackoffCounterTest\/testBase2()", + "ReconnectBackoffCounterTest\/testBase3()", + "ReconnectBackoffCounterTest\/testBase8()", "RecorderFlusherCheckerTests", - "RecorderFlusherCheckerTests/testBytesLimit()", - "RecorderFlusherCheckerTests/testCountLimit()", + "RecorderFlusherCheckerTests\/testBytesLimit()", + "RecorderFlusherCheckerTests\/testCountLimit()", "RegexTest", - "RegexTest/testsRegex()", + "RegexTest\/testsRegex()", "RolloutCacheConfigurationTest", - "RolloutCacheConfigurationTest/testClearOnInitIsCorrectlySet()", - "RolloutCacheConfigurationTest/testDefaultValues()", - "RolloutCacheConfigurationTest/testExpirationIsCorrectlySet()", - "RolloutCacheConfigurationTest/testNegativeExpirationIsSetToDefault()", + "RolloutCacheConfigurationTest\/testClearOnInitIsCorrectlySet()", + "RolloutCacheConfigurationTest\/testDefaultValues()", + "RolloutCacheConfigurationTest\/testExpirationIsCorrectlySet()", + "RolloutCacheConfigurationTest\/testNegativeExpirationIsSetToDefault()", "RolloutCacheManagerIntegrationTest", - "RolloutCacheManagerIntegrationTest/testClearOnInitClearCacheOnStartup()", - "RolloutCacheManagerIntegrationTest/testExpirationPeriodIsUsed()", - "RolloutCacheManagerIntegrationTest/testRepeatedInitWithClearOnInitSetToTrueDoesNotClearIfMinDaysHasNotElapsed()", + "RolloutCacheManagerIntegrationTest\/testClearOnInitClearCacheOnStartup()", + "RolloutCacheManagerIntegrationTest\/testExpirationPeriodIsUsed()", + "RolloutCacheManagerIntegrationTest\/testRepeatedInitWithClearOnInitSetToTrueDoesNotClearIfMinDaysHasNotElapsed()", "RolloutCacheManagerTest", - "RolloutCacheManagerTest/testDefaultValueForLastClearTimestampClearsCacheWhenClearOnInitIsTrue()", - "RolloutCacheManagerTest/testDefaultValueForUpdateTimestampDoesNotClearCache()", - "RolloutCacheManagerTest/testValidateCacheCallsClearOnStorageOnlyOnceWhenExecutedConsecutively()", - "RolloutCacheManagerTest/testValidateCacheCallsClearOnStoragesWhenExpirationIsNotSurpassedAndClearOnInitIsTrue()", - "RolloutCacheManagerTest/testValidateCacheCallsClearOnStoragesWhenExpirationIsSurpassed()", - "RolloutCacheManagerTest/testValidateCacheCallsListener()", - "RolloutCacheManagerTest/testValidateCacheDoesNotCallClearOnStoragesWhenExpirationIsNotSurpassedAndClearOnInitIsFalse()", - "RolloutCacheManagerTest/testValidateCacheDoesNotUpdateLastClearTimestampWhenStoragesAreNotCleared()", - "SdkUpdateStreamingTest/testReady()", - "SdkUpdateStreamingTest/testSdkUpdateMySegmentsWhenNotificationArrives()", + "RolloutCacheManagerTest\/testDefaultValueForLastClearTimestampClearsCacheWhenClearOnInitIsTrue()", + "RolloutCacheManagerTest\/testDefaultValueForUpdateTimestampDoesNotClearCache()", + "RolloutCacheManagerTest\/testValidateCacheCallsClearOnStorageOnlyOnceWhenExecutedConsecutively()", + "RolloutCacheManagerTest\/testValidateCacheCallsClearOnStoragesWhenExpirationIsNotSurpassedAndClearOnInitIsTrue()", + "RolloutCacheManagerTest\/testValidateCacheCallsClearOnStoragesWhenExpirationIsSurpassed()", + "RolloutCacheManagerTest\/testValidateCacheCallsListener()", + "RolloutCacheManagerTest\/testValidateCacheDoesNotCallClearOnStoragesWhenExpirationIsNotSurpassedAndClearOnInitIsFalse()", + "RolloutCacheManagerTest\/testValidateCacheDoesNotUpdateLastClearTimestampWhenStoragesAreNotCleared()", + "SdkUpdateStreamingTest\/testReady()", + "SdkUpdateStreamingTest\/testSdkUpdateMySegmentsWhenNotificationArrives()", "SegmentsSyncHelperTests", - "SegmentsSyncHelperTests/testCdnByPassNoTillChange()", - "SegmentsSyncHelperTests/testCdnByPassTill()", - "SegmentsSyncHelperTests/testDidffGoallCnMs()", - "SegmentsSyncHelperTests/testDiffGoalCnMls()", + "SegmentsSyncHelperTests\/testCdnByPassNoTillChange()", + "SegmentsSyncHelperTests\/testCdnByPassTill()", + "SegmentsSyncHelperTests\/testDidffGoallCnMs()", + "SegmentsSyncHelperTests\/testDiffGoalCnMls()", "SegmentsUpdateWorkerTests", - "SegmentsUpdateWorkerTests/testLargeSegmentsKeyListAdd()", - "SegmentsUpdateWorkerTests/testLargeSegmentsKeyListNoAction()", - "SegmentsUpdateWorkerTests/testLargeSegmentsKeyListRemoval()", - "SegmentsUpdateWorkerTests/testMyLargeSegmentsNonRemoval()", - "SegmentsUpdateWorkerTests/testMyLargeSegmentsRemoval()", - "SegmentsUpdateWorkerTests/testMySegmentsNonRemoval()", - "SegmentsUpdateWorkerTests/testMySegmentsRemoval()", - "SegmentsUpdateWorkerTests/testSegmentsKeyListAdd()", - "SegmentsUpdateWorkerTests/testSegmentsKeyListNoAction()", - "SegmentsUpdateWorkerTests/testSegmentsKeyListRemove()", - "SegmentsUpdateWorkerTests/testUnboundedLarge()", + "SegmentsUpdateWorkerTests\/testLargeSegmentsKeyListAdd()", + "SegmentsUpdateWorkerTests\/testLargeSegmentsKeyListNoAction()", + "SegmentsUpdateWorkerTests\/testLargeSegmentsKeyListRemoval()", + "SegmentsUpdateWorkerTests\/testMyLargeSegmentsNonRemoval()", + "SegmentsUpdateWorkerTests\/testMyLargeSegmentsRemoval()", + "SegmentsUpdateWorkerTests\/testMySegmentsNonRemoval()", + "SegmentsUpdateWorkerTests\/testMySegmentsRemoval()", + "SegmentsUpdateWorkerTests\/testSegmentsKeyListAdd()", + "SegmentsUpdateWorkerTests\/testSegmentsKeyListNoAction()", + "SegmentsUpdateWorkerTests\/testSegmentsKeyListRemove()", + "SegmentsUpdateWorkerTests\/testUnboundedLarge()", "SemverIntegrationTest", - "SemverIntegrationTest/testBetweenSemverMatcher()", - "SemverIntegrationTest/testGreaterThanOrEqualToSemverMatcher()", - "SemverIntegrationTest/testInListSemverMatcher()", - "SemverIntegrationTest/testLessThanOrEqualToSemverMatcher()", + "SemverIntegrationTest\/testBetweenSemverMatcher()", + "SemverIntegrationTest\/testGreaterThanOrEqualToSemverMatcher()", + "SemverIntegrationTest\/testInListSemverMatcher()", + "SemverIntegrationTest\/testLessThanOrEqualToSemverMatcher()", "SemverTest", - "SemverTest/testBetween()", - "SemverTest/testEqualTo()", - "SemverTest/testGreaterThanOrEqualTo()", - "SemverTest/testInvalidFormats()", + "SemverTest\/testBetween()", + "SemverTest\/testEqualTo()", + "SemverTest\/testGreaterThanOrEqualTo()", + "SemverTest\/testInvalidFormats()", "ServiceEndpointsTests", - "ServiceEndpointsTests/testBuilderValidationAuthError()", - "ServiceEndpointsTests/testBuilderValidationEventsError()", - "ServiceEndpointsTests/testBuilderValidationOk()", - "ServiceEndpointsTests/testBuilderValidationSdkError()", - "ServiceEndpointsTests/testBuilderValidationStreamingError()", - "ServiceEndpointsTests/testBuilderValidationTelemetryError()", + "ServiceEndpointsTests\/testBuilderValidationAuthError()", + "ServiceEndpointsTests\/testBuilderValidationEventsError()", + "ServiceEndpointsTests\/testBuilderValidationOk()", + "ServiceEndpointsTests\/testBuilderValidationSdkError()", + "ServiceEndpointsTests\/testBuilderValidationStreamingError()", + "ServiceEndpointsTests\/testBuilderValidationTelemetryError()", "SingleSyncTest", - "SingleSyncTest/testSingleSyncEnabledImpressionsDebug()", - "SingleSyncTest/testSingleSyncEnabledImpressionsNone()", - "SingleSyncTest/testSingleSyncEnabledImpressionsOptmized()", + "SingleSyncTest\/testSingleSyncEnabledImpressionsDebug()", + "SingleSyncTest\/testSingleSyncEnabledImpressionsNone()", + "SingleSyncTest\/testSingleSyncEnabledImpressionsOptmized()", "SplitChangeProcessorTests", - "SplitChangeProcessorTests/testProcessNoSets()", - "SplitChangeProcessorTests/testProcessWithSets()", - "SplitChangesServerErrorTest/testChangesError()", + "SplitChangeProcessorTests\/testProcessNoSets()", + "SplitChangeProcessorTests\/testProcessWithSets()", + "SplitChangesServerErrorTest\/testChangesError()", "SplitChangesTest", - "SplitChangesTest/test()", + "SplitChangesTest\/test()", "SplitClientManagerTest", - "SplitClientManagerTest/testAddClient()", - "SplitClientManagerTest/testDestroyForKey()", - "SplitClientManagerTest/testDestroyLastKey()", - "SplitClientManagerTest/testFlush()", - "SplitClientManagerTest/testInit()", + "SplitClientManagerTest\/testAddClient()", + "SplitClientManagerTest\/testDestroyForKey()", + "SplitClientManagerTest\/testDestroyLastKey()", + "SplitClientManagerTest\/testFlush()", + "SplitClientManagerTest\/testInit()", "SplitClientTests", - "SplitClientTests/testOnBg()", - "SplitClientTests/testOnMain()", - "SplitClientTests/testOnQueue()", + "SplitClientTests\/testOnBg()", + "SplitClientTests\/testOnMain()", + "SplitClientTests\/testOnQueue()", "SplitConfigurationsParsingTest", - "SplitConfigurationsParsingTest/testDecodingArrayAndMapConfig()", - "SplitConfigurationsParsingTest/testDecodingSimpleConfig()", - "SplitConfigurationsParsingTest/testEncodingAllValueTypesConfig()", - "SplitConfigurationsParsingTest/testEncodingBasicArrayConfig()", - "SplitConfigurationsParsingTest/testEncodingMapArrayConfig()", - "SplitConfigurationsParsingTest/testEncodingMultiTreatmentConfig()", - "SplitConfigurationsParsingTest/testEncodingNestedMultiConfig()", - "SplitConfigurationsParsingTest/testEncodingNullConfig()", - "SplitConfigurationsParsingTest/testEncodingOneBasicConfig()", + "SplitConfigurationsParsingTest\/testDecodingArrayAndMapConfig()", + "SplitConfigurationsParsingTest\/testDecodingSimpleConfig()", + "SplitConfigurationsParsingTest\/testEncodingAllValueTypesConfig()", + "SplitConfigurationsParsingTest\/testEncodingBasicArrayConfig()", + "SplitConfigurationsParsingTest\/testEncodingMapArrayConfig()", + "SplitConfigurationsParsingTest\/testEncodingMultiTreatmentConfig()", + "SplitConfigurationsParsingTest\/testEncodingNestedMultiConfig()", + "SplitConfigurationsParsingTest\/testEncodingNullConfig()", + "SplitConfigurationsParsingTest\/testEncodingOneBasicConfig()", "SplitDaoTest", - "SplitDaoTest/testCreateGetAes128Cbc()", - "SplitDaoTest/testCreateGetPlainText()", - "SplitDaoTest/testDataIsEncryptedInDb()", - "SplitDaoTest/testDeleteAllAes128Cbc()", - "SplitDaoTest/testDeleteAllPlainText()", - "SplitDaoTest/testGetUpdate()", - "SplitDaoTest/testGetUpdateAes128Cbc()", - "SplitDaoTest/testGetUpdateSeveralAes128Cbc()", - "SplitDaoTest/testGetUpdateSeveralPlainText()", + "SplitDaoTest\/testCreateGetAes128Cbc()", + "SplitDaoTest\/testCreateGetPlainText()", + "SplitDaoTest\/testDataIsEncryptedInDb()", + "SplitDaoTest\/testDeleteAllAes128Cbc()", + "SplitDaoTest\/testDeleteAllPlainText()", + "SplitDaoTest\/testGetUpdate()", + "SplitDaoTest\/testGetUpdateAes128Cbc()", + "SplitDaoTest\/testGetUpdateSeveralAes128Cbc()", + "SplitDaoTest\/testGetUpdateSeveralPlainText()", "SplitEventsCoordinatorTest", - "SplitEventsCoordinatorTest/testAddNotifyRemoveManager()", - "SplitEventsCoordinatorTest/testEventsAfterAdd()", - "SplitEventsCoordinatorTest/testEventsAfterRemove()", - "SplitEventsCoordinatorTest/testEventsBeforeAdd()", - "SplitEventsCoordinatorTest/testStop()", + "SplitEventsCoordinatorTest\/testAddNotifyRemoveManager()", + "SplitEventsCoordinatorTest\/testEventsAfterAdd()", + "SplitEventsCoordinatorTest\/testEventsAfterRemove()", + "SplitEventsCoordinatorTest\/testEventsBeforeAdd()", + "SplitEventsCoordinatorTest\/testStop()", "SplitEventsManagerTest", - "SplitEventsManagerTest/testSdkReady()", - "SplitEventsManagerTest/testSdkReadyAndReadyTimeOut()", - "SplitEventsManagerTest/testSdkReadyFromCacheAndReady()", - "SplitEventsManagerTest/testSdkReadyFromCacheAndReadyTimeout()", - "SplitEventsManagerTest/testSdkReadyTimeOut()", - "SplitEventsManagerTest/testSdkUpdateMySegments()", - "SplitEventsManagerTest/testSdkUpdateSplits()", - "SplitEventsManagerTest/testSplitKilledNoSdkReady()", - "SplitEventsManagerTest/testSplitKilledWhenReady()", + "SplitEventsManagerTest\/testSdkReady()", + "SplitEventsManagerTest\/testSdkReadyAndReadyTimeOut()", + "SplitEventsManagerTest\/testSdkReadyFromCacheAndReady()", + "SplitEventsManagerTest\/testSdkReadyFromCacheAndReadyTimeout()", + "SplitEventsManagerTest\/testSdkReadyTimeOut()", + "SplitEventsManagerTest\/testSdkUpdateMySegments()", + "SplitEventsManagerTest\/testSdkUpdateSplits()", + "SplitEventsManagerTest\/testSplitKilledNoSdkReady()", + "SplitEventsManagerTest\/testSplitKilledWhenReady()", "SplitFactoryBuilderTests", - "SplitFactoryBuilderTests/testEmptyApiKey()", - "SplitFactoryBuilderTests/testKey()", - "SplitFactoryBuilderTests/testLongBucketingKey()", - "SplitFactoryBuilderTests/testLongMatchingKey()", - "SplitFactoryBuilderTests/testMultiFactoryDifferentKey()", - "SplitFactoryBuilderTests/testMultiFactorySameKey()", - "SplitFactoryBuilderTests/testMultiFactoryTwoSameKey()", - "SplitFactoryBuilderTests/testNullApiKey()", - "SplitFactoryBuilderTests/testNullKey()", - "SplitFactoryBuilderTests/testNullMatchingKey()", - "SplitFactoryBuilderTests/testNullValues()", + "SplitFactoryBuilderTests\/testEmptyApiKey()", + "SplitFactoryBuilderTests\/testKey()", + "SplitFactoryBuilderTests\/testLongBucketingKey()", + "SplitFactoryBuilderTests\/testLongMatchingKey()", + "SplitFactoryBuilderTests\/testMultiFactoryDifferentKey()", + "SplitFactoryBuilderTests\/testMultiFactorySameKey()", + "SplitFactoryBuilderTests\/testMultiFactoryTwoSameKey()", + "SplitFactoryBuilderTests\/testNullApiKey()", + "SplitFactoryBuilderTests\/testNullKey()", + "SplitFactoryBuilderTests\/testNullMatchingKey()", + "SplitFactoryBuilderTests\/testNullValues()", "SplitIntegrationTests", - "SplitIntegrationTests/testControlTreatment()", - "SplitIntegrationTests/testImpressionsCount()", - "SplitIntegrationTests/testReadyMyLargeSegmentsEnabledError()", - "SplitIntegrationTests/testReadyMyLargeSegmentsEnabledWaitMls()", - "SplitIntegrationTests/testReadyNoRef()", + "SplitIntegrationTests\/testControlTreatment()", + "SplitIntegrationTests\/testImpressionsCount()", + "SplitIntegrationTests\/testReadyMyLargeSegmentsEnabledError()", + "SplitIntegrationTests\/testReadyMyLargeSegmentsEnabledWaitMls()", + "SplitIntegrationTests\/testReadyNoRef()", "SplitManagerTest", - "SplitManagerTest/testAddOneSplit()", - "SplitManagerTest/testEmptyName()", - "SplitManagerTest/testInitialSplitLoaded()", - "SplitManagerTest/testSplitInfo()", + "SplitManagerTest\/testAddOneSplit()", + "SplitManagerTest\/testEmptyName()", + "SplitManagerTest\/testInitialSplitLoaded()", + "SplitManagerTest\/testSplitInfo()", "SplitSdkUpdatePollingTest", - "SplitSdkUpdatePollingTest/testSdkReadyOnly()", - "SplitSdkUpdatePollingTest/testSdkUpdateMySegments()", - "SplitSdkUpdatePollingTest/testSdkUpdateSplits()", + "SplitSdkUpdatePollingTest\/testSdkReadyOnly()", + "SplitSdkUpdatePollingTest\/testSdkUpdateMySegments()", + "SplitSdkUpdatePollingTest\/testSdkUpdateSplits()", "SplitValidatorTests", - "SplitValidatorTests/testExistingSplit()", - "SplitValidatorTests/testLeadingSpacesName()", - "SplitValidatorTests/testNoExistingSplit()", - "SplitValidatorTests/testNullName()", - "SplitValidatorTests/testTrailingSpacesName()", - "SplitValidatorTests/testValidName()", + "SplitValidatorTests\/testExistingSplit()", + "SplitValidatorTests\/testLeadingSpacesName()", + "SplitValidatorTests\/testNoExistingSplit()", + "SplitValidatorTests\/testNullName()", + "SplitValidatorTests\/testTrailingSpacesName()", + "SplitValidatorTests\/testValidName()", "SplitsBgSyncWorkerTest", - "SplitsBgSyncWorkerTest/testClearExpiredCache()", - "SplitsBgSyncWorkerTest/testFetchSuccess()", + "SplitsBgSyncWorkerTest\/testClearExpiredCache()", + "SplitsBgSyncWorkerTest\/testFetchSuccess()", "SplitsChangesCheckerTest", - "SplitsChangesCheckerTest/testSplitsChangesArrived()", - "SplitsChangesCheckerTest/testSplitsNoChangesEqualChangeNumber()", - "SplitsChangesCheckerTest/testSplitsNoChangesMinorChangeNumber()", + "SplitsChangesCheckerTest\/testSplitsChangesArrived()", + "SplitsChangesCheckerTest\/testSplitsNoChangesEqualChangeNumber()", + "SplitsChangesCheckerTest\/testSplitsNoChangesMinorChangeNumber()", "SplitsDecoderTest", - "SplitsDecoderTest/testDecodeMultiThreads()", - "SplitsDecoderTest/testDecodeOneThread()", - "SplitsDecoderTest/testDecodeTwoThreads()", + "SplitsDecoderTest\/testDecodeMultiThreads()", + "SplitsDecoderTest\/testDecodeOneThread()", + "SplitsDecoderTest\/testDecodeTwoThreads()", "SplitsEncoderTest", - "SplitsEncoderTest/testDecodeMultiThread()", - "SplitsEncoderTest/testDecodeOneThread()", - "SplitsEncoderTest/testDecodeTwoThread()", + "SplitsEncoderTest\/testDecodeMultiThread()", + "SplitsEncoderTest\/testDecodeOneThread()", + "SplitsEncoderTest\/testDecodeTwoThread()", "SplitsStorageTrafficTypesTests", - "SplitsStorageTrafficTypesTests/testChangedTrafficTypeForSplit()", - "SplitsStorageTrafficTypesTests/testExistingChangedTrafficTypeForSplit()", - "SplitsStorageTrafficTypesTests/testInitialtrafficTypes()", - "SplitsStorageTrafficTypesTests/testRemove2TrafficTypes()", - "SplitsStorageTrafficTypesTests/testSeveralTrafficTypeUpdatesFinalActive()", - "SplitsStorageTrafficTypesTests/testSeveralTrafficTypeUpdatesFinalArchived()", - "SplitsStorageTrafficTypesTests/testUpdatedSplitTrafficType()", + "SplitsStorageTrafficTypesTests\/testChangedTrafficTypeForSplit()", + "SplitsStorageTrafficTypesTests\/testExistingChangedTrafficTypeForSplit()", + "SplitsStorageTrafficTypesTests\/testInitialtrafficTypes()", + "SplitsStorageTrafficTypesTests\/testRemove2TrafficTypes()", + "SplitsStorageTrafficTypesTests\/testSeveralTrafficTypeUpdatesFinalActive()", + "SplitsStorageTrafficTypesTests\/testSeveralTrafficTypeUpdatesFinalArchived()", + "SplitsStorageTrafficTypesTests\/testUpdatedSplitTrafficType()", "SplitsSyncWorkerTest", - "SplitsSyncWorkerTest/testChangedFlagsSpecString()", - "SplitsSyncWorkerTest/testChangedQueryString()", - "SplitsSyncWorkerTest/testClearExpiredCache()", - "SplitsSyncWorkerTest/testNoChangedQueryString()", - "SplitsSyncWorkerTest/testNoClearNonExpiredCache()", - "SplitsSyncWorkerTest/testOneTimeFetchSuccess()", - "SplitsSyncWorkerTest/testRetryAndSuccess()", - "SplitsSyncWorkerTest/testStopNoSuccess()", - "SplitsSyncWorkerTest/testUriTooLongError()", + "SplitsSyncWorkerTest\/testChangedFlagsSpecString()", + "SplitsSyncWorkerTest\/testChangedQueryString()", + "SplitsSyncWorkerTest\/testClearExpiredCache()", + "SplitsSyncWorkerTest\/testNoChangedQueryString()", + "SplitsSyncWorkerTest\/testNoClearNonExpiredCache()", + "SplitsSyncWorkerTest\/testOneTimeFetchSuccess()", + "SplitsSyncWorkerTest\/testRetryAndSuccess()", + "SplitsSyncWorkerTest\/testStopNoSuccess()", + "SplitsSyncWorkerTest\/testUriTooLongError()", "SplitsUpdateWorkerTest", - "SplitsUpdateWorkerTest/testOldChangeNumber()", - "SplitsUpdateWorkerTest/testOneTimeFetchSuccess()", - "SplitsUpdateWorkerTest/testRetryAndSuccess()", - "SplitsUpdateWorkerTest/testStopNoSuccess()", + "SplitsUpdateWorkerTest\/testOldChangeNumber()", + "SplitsUpdateWorkerTest\/testOneTimeFetchSuccess()", + "SplitsUpdateWorkerTest\/testRetryAndSuccess()", + "SplitsUpdateWorkerTest\/testStopNoSuccess()", "SseAuthenticatorTest", - "SseAuthenticatorTest/testNoRecoverableError()", - "SseAuthenticatorTest/testNullTokenResponse()", - "SseAuthenticatorTest/testRecoverableError()", - "SseAuthenticatorTest/testSuccesfulMultiUserKeyRequest()", - "SseAuthenticatorTest/testSuccesfulRequest()", + "SseAuthenticatorTest\/testNoRecoverableError()", + "SseAuthenticatorTest\/testNullTokenResponse()", + "SseAuthenticatorTest\/testRecoverableError()", + "SseAuthenticatorTest\/testSuccesfulMultiUserKeyRequest()", + "SseAuthenticatorTest\/testSuccesfulRequest()", "SseClientTest", - "SseClientTest/testConnect()", - "SseClientTest/testDisconnect()", - "SseClientTest/testDisconnectFromServer()", - "SseClientTest/testOnErrorAfterConnectionSuccess()", - "SseClientTest/testOnErrorExceptionWhileRequest()", - "SseClientTest/testOnErrorNonRecoverable()", - "SseClientTest/testOnErrorRecoverable()", - "SseClientTest/testOnMessage()", + "SseClientTest\/testConnect()", + "SseClientTest\/testDisconnect()", + "SseClientTest\/testDisconnectFromServer()", + "SseClientTest\/testOnErrorAfterConnectionSuccess()", + "SseClientTest\/testOnErrorExceptionWhileRequest()", + "SseClientTest\/testOnErrorNonRecoverable()", + "SseClientTest\/testOnErrorRecoverable()", + "SseClientTest\/testOnMessage()", "SseHandlerTest", - "SseHandlerTest/testIncomingControlStreaming()", - "SseHandlerTest/testIncomingHightNonRetryableSseError()", - "SseHandlerTest/testIncomingHightRetryableSseError()", - "SseHandlerTest/testIncomingIgnorableSseErrorTest()", - "SseHandlerTest/testIncomingLowNonRetryableSseError()", - "SseHandlerTest/testIncomingLowRetryableSseError()", - "SseHandlerTest/testIncomingMySegmentsUpdate()", - "SseHandlerTest/testIncomingOccupancy()", - "SseHandlerTest/testIncomingSplitKill()", - "SseHandlerTest/testIncomingSplitUpdate()", - "SseHandlerTest/testNoProcessIncomingWhenStreamingInactive()", + "SseHandlerTest\/testIncomingControlStreaming()", + "SseHandlerTest\/testIncomingHightNonRetryableSseError()", + "SseHandlerTest\/testIncomingHightRetryableSseError()", + "SseHandlerTest\/testIncomingIgnorableSseErrorTest()", + "SseHandlerTest\/testIncomingLowNonRetryableSseError()", + "SseHandlerTest\/testIncomingLowRetryableSseError()", + "SseHandlerTest\/testIncomingMySegmentsUpdate()", + "SseHandlerTest\/testIncomingOccupancy()", + "SseHandlerTest\/testIncomingSplitKill()", + "SseHandlerTest\/testIncomingSplitUpdate()", + "SseHandlerTest\/testNoProcessIncomingWhenStreamingInactive()", "SseNotificationProcessorTest", - "SseNotificationProcessorTest/testProcessMyLargeSegmentsUpdateBoundedRequest()", - "SseNotificationProcessorTest/testProcessMyLargeSegmentsUpdateKeyListRequest()", - "SseNotificationProcessorTest/testProcessMyLargeSegmentsUpdateUnboundedFetchRequest()", - "SseNotificationProcessorTest/testProcessMySegmentsUpdateBoundedRequest()", - "SseNotificationProcessorTest/testProcessMySegmentsUpdateKeyListRequest()", - "SseNotificationProcessorTest/testProcessMySegmentsUpdateUnboundedFetchRequest()", - "SseNotificationProcessorTest/testProcessSplitKill()", - "SseNotificationProcessorTest/testProcessSplitKillException()", - "SseNotificationProcessorTest/testProcessSplitKillNullJson()", - "SseNotificationProcessorTest/testProcessSplitUpdate()", - "SseNotificationProcessorTest/testProcessSplitUpdateException()", - "SseNotificationProcessorTest/testProcessSplitUpdateNullJson()", + "SseNotificationProcessorTest\/testProcessMyLargeSegmentsUpdateBoundedRequest()", + "SseNotificationProcessorTest\/testProcessMyLargeSegmentsUpdateKeyListRequest()", + "SseNotificationProcessorTest\/testProcessMyLargeSegmentsUpdateUnboundedFetchRequest()", + "SseNotificationProcessorTest\/testProcessMySegmentsUpdateBoundedRequest()", + "SseNotificationProcessorTest\/testProcessMySegmentsUpdateKeyListRequest()", + "SseNotificationProcessorTest\/testProcessMySegmentsUpdateUnboundedFetchRequest()", + "SseNotificationProcessorTest\/testProcessSplitKill()", + "SseNotificationProcessorTest\/testProcessSplitKillException()", + "SseNotificationProcessorTest\/testProcessSplitKillNullJson()", + "SseNotificationProcessorTest\/testProcessSplitUpdate()", + "SseNotificationProcessorTest\/testProcessSplitUpdateException()", + "SseNotificationProcessorTest\/testProcessSplitUpdateNullJson()", "StreamingAuthFail4xxTest", - "StreamingAuthFail4xxTest/testInit()", - "StreamingAuthFail5xxTest/testInit()", + "StreamingAuthFail4xxTest\/testInit()", + "StreamingAuthFail5xxTest\/testInit()", "StreamingBgReconnectTest", - "StreamingBgReconnectTest/testReconnect()", + "StreamingBgReconnectTest\/testReconnect()", "StreamingConnFail5xxTest", - "StreamingConnFail5xxTest/testInit()", + "StreamingConnFail5xxTest\/testInit()", "StreamingControlResetTest", - "StreamingControlResetTest/testStreamingReset()", + "StreamingControlResetTest\/testStreamingReset()", "StreamingControlTest", - "StreamingControlTest/testControl()", + "StreamingControlTest\/testControl()", "StreamingDelaytTest", - "StreamingDelaytTest/testDelayOnReconnect()", - "StreamingDelaytTest/testDelayOnReconnectStress()", - "StreamingDelaytTest/testNoStreamingDelay()", - "StreamingDelaytTest/testStreamingDelay()", + "StreamingDelaytTest\/testDelayOnReconnect()", + "StreamingDelaytTest\/testDelayOnReconnectStress()", + "StreamingDelaytTest\/testNoStreamingDelay()", + "StreamingDelaytTest\/testStreamingDelay()", "StreamingDisabledTest", "StreamingInitTest", - "StreamingInitTest/testInit()", - "StreamingInitTest/testInitWithoutSpec()", + "StreamingInitTest\/testInit()", + "StreamingInitTest\/testInitWithoutSpec()", "StreamingMySegmentsSyncTest", - "StreamingMySegmentsSyncTest/testInit()", + "StreamingMySegmentsSyncTest\/testInit()", "StreamingNoReconectWhenPollingTest", - "StreamingNoReconectWhenPollingTest/testShouldNoReconnect()", - "StreamingNoReconectWhenPollingTest/testShouldReconnect()", + "StreamingNoReconectWhenPollingTest\/testShouldNoReconnect()", + "StreamingNoReconectWhenPollingTest\/testShouldReconnect()", "StreamingOccupancyTest", - "StreamingOccupancyTest/testOccupancy()", + "StreamingOccupancyTest\/testOccupancy()", "StreamingSplitKillTest", - "StreamingSplitKillTest/testSplitKill()", + "StreamingSplitKillTest\/testSplitKill()", "StreamingSplitsSyncTest", - "StreamingSplitsSyncTest/testInit()", + "StreamingSplitsSyncTest\/testInit()", "SyncConfigTest", - "SyncConfigTest/testEmptyFilterValuesDiscarded()", - "SyncConfigTest/testFilterByPrefix()", - "SyncConfigTest/testFilterName()", - "SyncConfigTest/testInvalidFilterValuesDiscarded()", - "SyncConfigTest/testSyncBuilder()", + "SyncConfigTest\/testEmptyFilterValuesDiscarded()", + "SyncConfigTest\/testFilterByPrefix()", + "SyncConfigTest\/testFilterName()", + "SyncConfigTest\/testInvalidFilterValuesDiscarded()", + "SyncConfigTest\/testSyncBuilder()", "SyncDictionaryCollectionWrapperTest", - "SyncDictionaryCollectionWrapperTest/testAllValues()", - "SyncDictionaryCollectionWrapperTest/testInitialAppend()", - "SyncDictionaryCollectionWrapperTest/testRemoveValue()", + "SyncDictionaryCollectionWrapperTest\/testAllValues()", + "SyncDictionaryCollectionWrapperTest\/testInitialAppend()", + "SyncDictionaryCollectionWrapperTest\/testRemoveValue()", "SyncDictionarySingleWrapperTest", - "SyncDictionarySingleWrapperTest/testAllValues()", - "SyncDictionarySingleWrapperTest/testInitialSetup()", - "SyncDictionarySingleWrapperTest/testRemoveAllValues()", - "SyncDictionarySingleWrapperTest/testRemoveValue()", + "SyncDictionarySingleWrapperTest\/testAllValues()", + "SyncDictionarySingleWrapperTest\/testInitialSetup()", + "SyncDictionarySingleWrapperTest\/testRemoveAllValues()", + "SyncDictionarySingleWrapperTest\/testRemoveValue()", "SyncGuardianTest", - "SyncGuardianTest/testFirstUpdate()", - "SyncGuardianTest/testIncreaseAndDecreasePeriodValidation()", - "SyncGuardianTest/testMinPeriodValidation()", - "SyncGuardianTest/testMustNoSyncDisabled()", - "SyncGuardianTest/testMustNoSyncStreamingDisabled()", - "SyncGuardianTest/testMustSyncWhenTimeExceeds()", - "SyncGuardianTest/testUpdatePeriodValidation()", + "SyncGuardianTest\/testFirstUpdate()", + "SyncGuardianTest\/testIncreaseAndDecreasePeriodValidation()", + "SyncGuardianTest\/testMinPeriodValidation()", + "SyncGuardianTest\/testMustNoSyncDisabled()", + "SyncGuardianTest\/testMustNoSyncStreamingDisabled()", + "SyncGuardianTest\/testMustSyncWhenTimeExceeds()", + "SyncGuardianTest\/testUpdatePeriodValidation()", "SyncManagerTest", - "SyncManagerTest/testCredentialPinnedFailNotification()", - "SyncManagerTest/testPauseResume()", - "SyncManagerTest/testPushDelayReceived()", - "SyncManagerTest/testPushNonRetryableError()", - "SyncManagerTest/testPushReset()", - "SyncManagerTest/testPushRetryableError()", - "SyncManagerTest/testPushSubsystemUpReceived()", - "SyncManagerTest/testStartSingleModeStreamingDisabled()", - "SyncManagerTest/testStartSingleModeStreamingEnabled()", - "SyncManagerTest/testStartStreamingDisabled()", - "SyncManagerTest/testStartStreamingEnabled()", - "SyncManagerTest/testStop()", - "SyncManagerTest/testSyncExecutedReceived()", - "SyncPostBgTest/testSync()", + "SyncManagerTest\/testCredentialPinnedFailNotification()", + "SyncManagerTest\/testPauseResume()", + "SyncManagerTest\/testPushDelayReceived()", + "SyncManagerTest\/testPushNonRetryableError()", + "SyncManagerTest\/testPushReset()", + "SyncManagerTest\/testPushRetryableError()", + "SyncManagerTest\/testPushSubsystemUpReceived()", + "SyncManagerTest\/testStartSingleModeStreamingDisabled()", + "SyncManagerTest\/testStartSingleModeStreamingEnabled()", + "SyncManagerTest\/testStartStreamingDisabled()", + "SyncManagerTest\/testStartStreamingEnabled()", + "SyncManagerTest\/testStop()", + "SyncManagerTest\/testSyncExecutedReceived()", + "SyncPostBgTest\/testSync()", "SyncUpdateWorkerTest", - "SyncUpdateWorkerTest/testSplitUpdateWorkerNoPayload()", - "SyncUpdateWorkerTest/testSplitUpdateWorkerWithPayloadChangeNumberBigger()", - "SyncUpdateWorkerTest/testSplitUpdateWorkerWithPayloadChangeNumberSmaller()", + "SyncUpdateWorkerTest\/testSplitUpdateWorkerNoPayload()", + "SyncUpdateWorkerTest\/testSplitUpdateWorkerWithPayloadChangeNumberBigger()", + "SyncUpdateWorkerTest\/testSplitUpdateWorkerWithPayloadChangeNumberSmaller()", "SynchronizerTest", - "SynchronizerTest/testDisableEventsEndpoint()", - "SynchronizerTest/testDisableSdkEndpoint()", - "SynchronizerTest/testDisableTelemetry()", - "SynchronizerTest/testEventPush()", - "SynchronizerTest/testForceMySegmentsSyncSingleModeEnabled()", - "SynchronizerTest/testForceSynchronizeMySegments()", - "SynchronizerTest/testLoadMySegmentsFromCache()", - "SynchronizerTest/testLoadSplits()", - "SynchronizerTest/testStartByKey()", - "SynchronizerTest/testStartPeriodicFetching()", - "SynchronizerTest/testStartPeriodicFetchingSingleModeEnabled()", - "SynchronizerTest/testStartRecordingTelemetry()", - "SynchronizerTest/testStopPeriodicFetching()", - "SynchronizerTest/testStopRecordingTelemetry()", - "SynchronizerTest/testStopRecordingUserData()", - "SynchronizerTest/testSyncAll()", - "SynchronizerTest/testSynchronizeMySegments()", - "SynchronizerTest/testSynchronizeSplitsWithChangeNumber()", - "SynchronizerTest/testUpdateSplitsSingleModeEnabled()", - "TelemetryConfigRecorderWorkerTests/testFailedAttemptLimitExceded()", - "TelemetryConfigRecorderWorkerTests/testSendSuccess()", + "SynchronizerTest\/testDisableEventsEndpoint()", + "SynchronizerTest\/testDisableSdkEndpoint()", + "SynchronizerTest\/testDisableTelemetry()", + "SynchronizerTest\/testEventPush()", + "SynchronizerTest\/testForceMySegmentsSyncSingleModeEnabled()", + "SynchronizerTest\/testForceSynchronizeMySegments()", + "SynchronizerTest\/testLoadMySegmentsFromCache()", + "SynchronizerTest\/testLoadSplits()", + "SynchronizerTest\/testStartByKey()", + "SynchronizerTest\/testStartPeriodicFetching()", + "SynchronizerTest\/testStartPeriodicFetchingSingleModeEnabled()", + "SynchronizerTest\/testStartRecordingTelemetry()", + "SynchronizerTest\/testStopPeriodicFetching()", + "SynchronizerTest\/testStopRecordingTelemetry()", + "SynchronizerTest\/testStopRecordingUserData()", + "SynchronizerTest\/testSyncAll()", + "SynchronizerTest\/testSynchronizeMySegments()", + "SynchronizerTest\/testSynchronizeSplitsWithChangeNumber()", + "SynchronizerTest\/testUpdateSplitsSingleModeEnabled()", + "TelemetryConfigRecorderWorkerTests\/testFailedAttemptLimitExceded()", + "TelemetryConfigRecorderWorkerTests\/testSendSuccess()", "TelemetryIntegrationTest", - "TelemetryIntegrationTest/testConfigTelemetry()", - "TelemetryIntegrationTest/testHttpError()", - "TelemetryIntegrationTest/testRuntimeAndSyncTelemetry()", - "TelemetryIntegrationTest/testStreamingTelemetry()", + "TelemetryIntegrationTest\/testConfigTelemetry()", + "TelemetryIntegrationTest\/testHttpError()", + "TelemetryIntegrationTest\/testRuntimeAndSyncTelemetry()", + "TelemetryIntegrationTest\/testStreamingTelemetry()", "TelemetryStatsRecorderWorkerTests", - "TelemetryStatsRecorderWorkerTests/testConcurrentFlush()", - "TelemetryStatsRecorderWorkerTests/testEndpointNotReachable()", - "TelemetryStatsRecorderWorkerTests/testFailedAttemptLimit()", - "TelemetryStatsRecorderWorkerTests/testFailedAttemptLimitExceded()", - "TelemetryStatsRecorderWorkerTests/testSendSuccess()", + "TelemetryStatsRecorderWorkerTests\/testConcurrentFlush()", + "TelemetryStatsRecorderWorkerTests\/testEndpointNotReachable()", + "TelemetryStatsRecorderWorkerTests\/testFailedAttemptLimit()", + "TelemetryStatsRecorderWorkerTests\/testFailedAttemptLimitExceded()", + "TelemetryStatsRecorderWorkerTests\/testSendSuccess()", "TelemetryTest", - "TelemetryTest/testEvaluationRecording()", - "TelemetryTest/testNonReadyEvaluation()", - "TelemetryTest/testOnlyReadyTime()", - "TelemetryTest/testReadyTime()", + "TelemetryTest\/testEvaluationRecording()", + "TelemetryTest\/testNonReadyEvaluation()", + "TelemetryTest\/testOnlyReadyTime()", + "TelemetryTest\/testReadyTime()", "TelmetrySynchronizerTest", - "TelmetrySynchronizerTest/testStart()", + "TelmetrySynchronizerTest\/testStart()", "TimersManagerTest", - "TimersManagerTest/testAddAndCancelTimer()", - "TimersManagerTest/testAddTimer()", + "TimersManagerTest\/testAddAndCancelTimer()", + "TimersManagerTest\/testAddTimer()", "TlsPinningCheckerTests", - "TlsPinningCheckerTests/testEc256r1Spki()", - "TlsPinningCheckerTests/testEc384r1Spki()", - "TlsPinningCheckerTests/testEc521r1Spki()", - "TlsPinningCheckerTests/testInvalidChallengeMethod()", - "TlsPinningCheckerTests/testInvalidChallengeNoSecTrust()", - "TlsPinningCheckerTests/testRsa2048Spki()", - "TlsPinningCheckerTests/testRsa3072Spki()", - "TlsPinningCheckerTests/testRsa4096Spki()", - "TlsPinningCheckerTests/testUntrustedCertificate()", - "TlsPinningCheckerTests/testValidationParameter()", + "TlsPinningCheckerTests\/testEc256r1Spki()", + "TlsPinningCheckerTests\/testEc384r1Spki()", + "TlsPinningCheckerTests\/testEc521r1Spki()", + "TlsPinningCheckerTests\/testInvalidChallengeMethod()", + "TlsPinningCheckerTests\/testInvalidChallengeNoSecTrust()", + "TlsPinningCheckerTests\/testRsa2048Spki()", + "TlsPinningCheckerTests\/testRsa3072Spki()", + "TlsPinningCheckerTests\/testRsa4096Spki()", + "TlsPinningCheckerTests\/testUntrustedCertificate()", + "TlsPinningCheckerTests\/testValidationParameter()", "TrackTest", - "TrackTest/test()", + "TrackTest\/test()", "TreatmentManagerTest", - "TreatmentManagerTest/testBasicEvaluationNoConfig()", - "TreatmentManagerTest/testBasicEvaluationWithConfig()", - "TreatmentManagerTest/testBasicEvaluations()", - "TreatmentManagerTest/testBasicEvaluationsBySets()", - "TreatmentManagerTest/testEmptyKey()", - "TreatmentManagerTest/testEmptySplits()", - "TreatmentManagerTest/testKilledSplitWithConfig()", - "TreatmentManagerTest/testLongKey()", - "TreatmentManagerTest/testMergedAttributes()", - "TreatmentManagerTest/testNoStoredAttributes()", - "TreatmentManagerTest/testNonExistingSplits()", - "TreatmentManagerTest/testOnlyStoredAttributes()", - "TreatmentManagerTest/testRuntimeProducers()", + "TreatmentManagerTest\/testBasicEvaluationNoConfig()", + "TreatmentManagerTest\/testBasicEvaluationWithConfig()", + "TreatmentManagerTest\/testBasicEvaluations()", + "TreatmentManagerTest\/testBasicEvaluationsBySets()", + "TreatmentManagerTest\/testEmptyKey()", + "TreatmentManagerTest\/testEmptySplits()", + "TreatmentManagerTest\/testKilledSplitWithConfig()", + "TreatmentManagerTest\/testLongKey()", + "TreatmentManagerTest\/testMergedAttributes()", + "TreatmentManagerTest\/testNoStoredAttributes()", + "TreatmentManagerTest\/testNonExistingSplits()", + "TreatmentManagerTest\/testOnlyStoredAttributes()", + "TreatmentManagerTest\/testRuntimeProducers()", "UniqueKeyDaoTest", - "UniqueKeyDaoTest/testDataIsEncryptedInDb()", - "UniqueKeyDaoTest/testInsertGetAes128Cbc()", - "UniqueKeyDaoTest/testInsertGetPlainText()", - "UniqueKeyDaoTest/testLoadOutdatedAes128Cbc()", - "UniqueKeyDaoTest/testLoadOutdatedPlainText()", - "UniqueKeyDaoTest/testUpdateAes128Cbc()", - "UniqueKeyDaoTest/testUpdateAndIncrementCountAes128Cbc()", - "UniqueKeyDaoTest/testUpdateAndIncrementCountPlainText()", - "UniqueKeyDaoTest/testUpdatePlainText()", + "UniqueKeyDaoTest\/testDataIsEncryptedInDb()", + "UniqueKeyDaoTest\/testInsertGetAes128Cbc()", + "UniqueKeyDaoTest\/testInsertGetPlainText()", + "UniqueKeyDaoTest\/testLoadOutdatedAes128Cbc()", + "UniqueKeyDaoTest\/testLoadOutdatedPlainText()", + "UniqueKeyDaoTest\/testUpdateAes128Cbc()", + "UniqueKeyDaoTest\/testUpdateAndIncrementCountAes128Cbc()", + "UniqueKeyDaoTest\/testUpdateAndIncrementCountPlainText()", + "UniqueKeyDaoTest\/testUpdatePlainText()", "UniqueKeyTrackerTest", "UniqueKeysRecorderCountWorkerTests", - "UniqueKeysRecorderCountWorkerTests/testFailToSendSome()", - "UniqueKeysRecorderCountWorkerTests/testSendNoImpressions()", - "UniqueKeysRecorderCountWorkerTests/testSendOneImpression()", - "UniqueKeysRecorderCountWorkerTests/testSendSuccess()", + "UniqueKeysRecorderCountWorkerTests\/testFailToSendSome()", + "UniqueKeysRecorderCountWorkerTests\/testSendNoImpressions()", + "UniqueKeysRecorderCountWorkerTests\/testSendOneImpression()", + "UniqueKeysRecorderCountWorkerTests\/testSendSuccess()", "UnsupportedMatcherIntegrationTest", - "UnsupportedMatcherIntegrationTest/testFeatureFlagWithUnsupportedMatcherIsPresentInManager()", - "UnsupportedMatcherIntegrationTest/testGetTreatmentForUnsupportedMatcherFeatureFlagReturnsControl()", - "UnsupportedMatcherIntegrationTest/testGetTreatmentWithConfigForUnsupportedMatcherFeatureFlagReturnsControl()", - "UnsupportedMatcherIntegrationTest/testImpressionInListenerHasUnsupportedLabel()", - "UnsupportedMatcherIntegrationTest/testStoredImpressionHasUnsupportedLabel()", + "UnsupportedMatcherIntegrationTest\/testFeatureFlagWithUnsupportedMatcherIsPresentInManager()", + "UnsupportedMatcherIntegrationTest\/testGetTreatmentForUnsupportedMatcherFeatureFlagReturnsControl()", + "UnsupportedMatcherIntegrationTest\/testGetTreatmentWithConfigForUnsupportedMatcherFeatureFlagReturnsControl()", + "UnsupportedMatcherIntegrationTest\/testImpressionInListenerHasUnsupportedLabel()", + "UnsupportedMatcherIntegrationTest\/testStoredImpressionHasUnsupportedLabel()", "UserConsentManagerTest", - "UserConsentManagerTest/testSetDeclined()", - "UserConsentManagerTest/testSetGranted()", - "UserConsentManagerTest/testSetUnknown()", + "UserConsentManagerTest\/testSetDeclined()", + "UserConsentManagerTest\/testSetGranted()", + "UserConsentManagerTest\/testSetUnknown()", "UserConsentModeDebugTest", - "UserConsentModeDebugTest/testUserConsentDeclined()", - "UserConsentModeDebugTest/testUserConsentGranted()", - "UserConsentModeDebugTest/testUserConsentUnknownThenDeclined()", - "UserConsentModeDebugTest/testUserConsentUnknownThenGranted()", + "UserConsentModeDebugTest\/testUserConsentDeclined()", + "UserConsentModeDebugTest\/testUserConsentGranted()", + "UserConsentModeDebugTest\/testUserConsentUnknownThenDeclined()", + "UserConsentModeDebugTest\/testUserConsentUnknownThenGranted()", "UserConsentModeNoneTest", - "UserConsentModeNoneTest/testUserConsentDeclined()", - "UserConsentModeNoneTest/testUserConsentGranted()", - "UserConsentModeNoneTest/testUserConsentUnknownThenDeclined()", - "UserConsentModeNoneTest/testUserConsentUnknownThenGranted()", + "UserConsentModeNoneTest\/testUserConsentDeclined()", + "UserConsentModeNoneTest\/testUserConsentGranted()", + "UserConsentModeNoneTest\/testUserConsentUnknownThenDeclined()", + "UserConsentModeNoneTest\/testUserConsentUnknownThenGranted()", "UserConsentModeOptimizedTest", - "UserConsentModeOptimizedTest/testUserConsentDeclined()", - "UserConsentModeOptimizedTest/testUserConsentGranted()", - "UserConsentModeOptimizedTest/testUserConsentUnknownThenDeclined()", - "UserConsentModeOptimizedTest/testUserConsentUnknownThenGranted()", + "UserConsentModeOptimizedTest\/testUserConsentDeclined()", + "UserConsentModeOptimizedTest\/testUserConsentGranted()", + "UserConsentModeOptimizedTest\/testUserConsentUnknownThenDeclined()", + "UserConsentModeOptimizedTest\/testUserConsentUnknownThenGranted()", "UserKeyEncondingTest", - "UserKeyEncondingTest/testKey()", + "UserKeyEncondingTest\/testKey()", "VersionTest", - "VersionTest/testFactoryVersion()", - "VersionTest/testSemanticVersion()" + "VersionTest\/testFactoryVersion()", + "VersionTest\/testSemanticVersion()" ], - "target": { - "containerPath": "container:Split.xcodeproj", - "identifier": "592C6AA4211B6C99002D120C", - "name": "SplitTests" + "target" : { + "containerPath" : "container:Split.xcodeproj", + "identifier" : "592C6AA4211B6C99002D120C", + "name" : "SplitTests" } } ], - "version": 1 -} \ No newline at end of file + "version" : 1 +}