public void TestIsValidFilterExpression() { Assert.True(_instrumentationHelper.IsValidFilterExpression("[*]*")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[*]*core")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[assembly]*")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[*]type")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[assembly]type")); Assert.False(_instrumentationHelper.IsValidFilterExpression("[*]")); Assert.False(_instrumentationHelper.IsValidFilterExpression("[-]*")); Assert.False(_instrumentationHelper.IsValidFilterExpression("*")); Assert.False(_instrumentationHelper.IsValidFilterExpression("][")); Assert.False(_instrumentationHelper.IsValidFilterExpression(null)); }
public void PrepareModules() { string[] modules = InstrumentationHelper.GetCoverableModules(_module, _includeDirectories); string[] excludes = InstrumentationHelper.GetExcludedFiles(_excludedSourceFiles); _excludeFilters = _excludeFilters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); _includeFilters = _includeFilters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); foreach (var module in modules) { if (InstrumentationHelper.IsModuleExcluded(module, _excludeFilters) || !InstrumentationHelper.IsModuleIncluded(module, _includeFilters)) { continue; } var instrumenter = new Instrumenter(module, _identifier, _excludeFilters, _includeFilters, excludes, _excludeAttributes); if (instrumenter.CanInstrument()) { InstrumentationHelper.BackupOriginalModule(module, _identifier); // Guard code path and restore if instrumentation fails. try { var result = instrumenter.Instrument(); _results.Add(result); } catch (Exception) { // TODO: With verbose logging we should note that instrumentation failed. InstrumentationHelper.RestoreOriginalModule(module, _identifier); } } } }
public void PrepareModules() { string[] modules = InstrumentationHelper.GetCoverableModules(_module, _includeDirectories); string[] excludes = InstrumentationHelper.GetExcludedFiles(_excludedSourceFiles); _excludeFilters = _excludeFilters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); _includeFilters = _includeFilters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); foreach (var module in modules) { if (InstrumentationHelper.IsModuleExcluded(module, _excludeFilters) || !InstrumentationHelper.IsModuleIncluded(module, _includeFilters)) { continue; } var instrumenter = new Instrumenter(module, _identifier, _excludeFilters, _includeFilters, excludes, _excludeAttributes, _singleHit); if (instrumenter.CanInstrument()) { InstrumentationHelper.BackupOriginalModule(module, _identifier); // Guard code path and restore if instrumentation fails. try { var result = instrumenter.Instrument(); _results.Add(result); } catch (Exception ex) { _logger.LogWarning($"Unable to instrument module: {module} because : {ex.Message}"); InstrumentationHelper.RestoreOriginalModule(module, _identifier); } } } }
public void PrepareModules() { string[] modules = InstrumentationHelper.GetCoverableModules(_module, _includeDirectories); string[] excludes = InstrumentationHelper.GetExcludedFiles(_excludedSourceFiles); _excludeFilters = _excludeFilters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); _includeFilters = _includeFilters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); foreach (var module in modules) { if (InstrumentationHelper.IsModuleExcluded(module, _excludeFilters) || !InstrumentationHelper.IsModuleIncluded(module, _includeFilters)) { continue; } var instrumenter = new Instrumenter(module, _identifier, _excludeFilters, _includeFilters, excludes, _excludeAttributes); if (instrumenter.CanInstrument()) { InstrumentationHelper.BackupOriginalModule(module, _identifier); // Guard code path and restore if instrumentation fails. try { var result = instrumenter.Instrument(); _results.Add(result); } catch (Exception) { // TODO: With verbose logging we should note that instrumentation failed. InstrumentationHelper.RestoreOriginalModule(module, _identifier); } } } foreach (var result in _results) { var size = (result.HitCandidates.Count + ModuleTrackerTemplate.HitsResultHeaderSize) * sizeof(int); MemoryMappedFile mmap; try { // Try using a named memory map not backed by a file (currently only supported on Windows) mmap = MemoryMappedFile.CreateNew(result.HitsResultGuid, size); } catch (PlatformNotSupportedException) { // Fall back on a file-backed memory map mmap = MemoryMappedFile.CreateFromFile(result.HitsFilePath, FileMode.CreateNew, null, size); } _resultMemoryMaps.Add(result.HitsResultGuid, mmap); } }
public CoveragePrepareResult PrepareModules() { string[] modules = InstrumentationHelper.GetCoverableModules(_module, _includeDirectories, _includeTestAssembly); string[] excludes = InstrumentationHelper.GetExcludedFiles(_excludedSourceFiles); Array.ForEach(_excludeFilters ?? Array.Empty <string>(), filter => _logger.LogVerbose($"Excluded module filter '{filter}'")); Array.ForEach(_includeFilters ?? Array.Empty <string>(), filter => _logger.LogVerbose($"Included module filter '{filter}'")); Array.ForEach(excludes ?? Array.Empty <string>(), filter => _logger.LogVerbose($"Excluded source files '{filter}'")); _excludeFilters = _excludeFilters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); _includeFilters = _includeFilters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); foreach (var module in modules) { if (InstrumentationHelper.IsModuleExcluded(module, _excludeFilters) || !InstrumentationHelper.IsModuleIncluded(module, _includeFilters)) { _logger.LogVerbose($"Excluded module: '{module}'"); continue; } var instrumenter = new Instrumenter(module, _identifier, _excludeFilters, _includeFilters, excludes, _excludeAttributes, _singleHit, _logger); if (instrumenter.CanInstrument()) { InstrumentationHelper.BackupOriginalModule(module, _identifier); // Guard code path and restore if instrumentation fails. try { var result = instrumenter.Instrument(); _results.Add(result); _logger.LogVerbose($"Instrumented module: '{module}'"); } catch (Exception ex) { _logger.LogWarning($"Unable to instrument module: {module} because : {ex.Message}"); InstrumentationHelper.RestoreOriginalModule(module, _identifier); } } } return(new CoveragePrepareResult() { Identifier = _identifier, Module = _module, MergeWith = _mergeWith, UseSourceLink = _useSourceLink, Results = _results.ToArray() }); }
public void PrepareModules() { string[] modules = InstrumentationHelper.GetCoverableModules(_module); string[] excludes = InstrumentationHelper.GetExcludedFiles(_excludes); _filters = _filters?.Where(f => InstrumentationHelper.IsValidFilterExpression(f)).ToArray(); foreach (var module in modules) { if (InstrumentationHelper.IsModuleExcluded(module, _filters)) { continue; } var instrumenter = new Instrumenter(module, _identifier, _filters, excludes); if (instrumenter.CanInstrument()) { InstrumentationHelper.BackupOriginalModule(module, _identifier); var result = instrumenter.Instrument(); _results.Add(result); } } }
public void TestIsValidFilterExpression() { Assert.True(_instrumentationHelper.IsValidFilterExpression("[*]*")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[*]*core")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[assembly]*")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[*]type")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[assembly]type")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[assembly]type{*methods?}")); Assert.True(_instrumentationHelper.IsValidFilterExpression("[assembly]type")); Assert.False(_instrumentationHelper.IsValidFilterExpression("[*]")); Assert.False(_instrumentationHelper.IsValidFilterExpression("[-]*")); Assert.False(_instrumentationHelper.IsValidFilterExpression("*")); Assert.False(_instrumentationHelper.IsValidFilterExpression("}{")); Assert.False(_instrumentationHelper.IsValidFilterExpression("{*}")); Assert.False(_instrumentationHelper.IsValidFilterExpression("*{-}*")); Assert.False(_instrumentationHelper.IsValidFilterExpression("{-}*[trndtrn]")); Assert.False(_instrumentationHelper.IsValidFilterExpression("{-}*[trndtrn]*")); Assert.False(_instrumentationHelper.IsValidFilterExpression("{-]*[trndtrn}*")); Assert.False(_instrumentationHelper.IsValidFilterExpression("*")); Assert.False(_instrumentationHelper.IsValidFilterExpression("}{")); Assert.False(_instrumentationHelper.IsValidFilterExpression(null)); }