object ICache.Load(IProgressIndicator progress, bool enablePersistence) { if (enablePersistence) { _persistentCache = new SimplePersistentCache <string>(_shellLocks, 1, "KarmaTest", _psiConfiguration); if (_persistentCache.Load(progress, _persistentIndexManager, (file, reader) => reader.ReadString(), (file, serialized) => { lock (_lock) { var info = new PersistentUnitTestSessionInfo(_solution, serialized); foreach (var element in info.Elements) { _elementsInFiles.AddValue(file, element); } _processedFiles.Add(file); _persistentCache.AddDataToSave(file, serialized); } }) != LoadResult.OK) { lock (_lock) { _elementsInFiles.Clear(); _processedFiles.Clear(); } } } return(null); }
public void ReanalyzeDirtyFiles() { lock (_lock) { foreach (var file in _dirtyFiles.Where(x => x.IsValid())) { using (_shellLocks.UsingReadLock()) { ICache cache = this; cache.Merge(file, cache.Build(file, false)); } } _dirtyFiles.Clear(); } }
private List <IMetadataMethod> GetAllTestMethods(IMetadataTypeInfo type) { myTempMethods.Clear(); myTempMethodsNames.Clear(); var currentType = type; while (currentType != null) { foreach (var method in currentType.GetMethods()) { if (method.IsVirtual) { if (myTempMethodsNames.Contains(method.Name)) { continue; } if (!method.IsNewSlot) { myTempMethodsNames.Add(method.Name); } } if (IsTestMethod(method)) { myTempMethods.Add(method); } } var baseOfCurrentType = currentType.Base; currentType = (baseOfCurrentType != null) ? baseOfCurrentType.Type : null; } return(myTempMethods); }
public void Explore(IMetadataAssembly assembly, CancellationToken token) { try { myTempMethods = new List <IMetadataMethod>(200); myTempMethodsNames = new JetHashSet <string>(200); foreach (var type in assembly.GetTypes()) { ExploreType(type, assembly, token); } } finally { if (myTempMethods != null) { myTempMethods.Clear(); myTempMethods = null; } if (myTempMethodsNames != null) { myTempMethodsNames.Clear(); myTempMethods = null; } } }
void ICache.SyncUpdate(bool underTransaction) { lock (lockObject) { foreach (var psiSourceFile in dirtyFiles) { registrationsMap.RemoveKey(psiSourceFile); } dirtyFiles.Clear(); } }
public void SyncUpdate(bool underTransaction) { if (underTransaction) { return; } lock (_lockObject) { foreach (var sourceFile in _dirtyFiles.ToList()) { if (sourceFile.IsValid()) { Merge(sourceFile, BuildData(sourceFile)); } } _dirtyFiles.Clear(); } }
public void Clear() { myInputElements.Clear(); }