diff options
Diffstat (limited to 'packages/sol-tracing-utils/src/collect_coverage_entries.ts')
-rw-r--r-- | packages/sol-tracing-utils/src/collect_coverage_entries.ts | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/packages/sol-tracing-utils/src/collect_coverage_entries.ts b/packages/sol-tracing-utils/src/collect_coverage_entries.ts deleted file mode 100644 index d5045b106..000000000 --- a/packages/sol-tracing-utils/src/collect_coverage_entries.ts +++ /dev/null @@ -1,41 +0,0 @@ -import * as ethUtil from 'ethereumjs-util'; -import * as _ from 'lodash'; -import * as parser from 'solidity-parser-antlr'; - -import { ASTVisitor, CoverageEntriesDescription } from './ast_visitor'; -import { getOffsetToLocation } from './source_maps'; - -// Parsing source code for each transaction/code is slow and therefore we cache it -const sourceHashToCoverageEntries: { [sourceHash: string]: CoverageEntriesDescription } = {}; - -export const collectCoverageEntries = (contractSource: string, ignoreRegexp?: RegExp) => { - const sourceHash = ethUtil.sha3(contractSource).toString('hex'); - if (_.isUndefined(sourceHashToCoverageEntries[sourceHash]) && !_.isUndefined(contractSource)) { - const ast = parser.parse(contractSource, { range: true }); - const offsetToLocation = getOffsetToLocation(contractSource); - const ignoreRangesBeginningAt = _.isUndefined(ignoreRegexp) - ? [] - : gatherRangesToIgnore(contractSource, ignoreRegexp); - const visitor = new ASTVisitor(offsetToLocation, ignoreRangesBeginningAt); - parser.visit(ast, visitor); - sourceHashToCoverageEntries[sourceHash] = visitor.getCollectedCoverageEntries(); - } - const coverageEntriesDescription = sourceHashToCoverageEntries[sourceHash]; - return coverageEntriesDescription; -}; - -// Gather the start index of all code blocks preceeded by "/* solcov ignore next */" -function gatherRangesToIgnore(contractSource: string, ignoreRegexp: RegExp): number[] { - const ignoreRangesStart = []; - - let match; - do { - match = ignoreRegexp.exec(contractSource); - if (match) { - const matchLen = match[0].length; - ignoreRangesStart.push(match.index + matchLen); - } - } while (match); - - return ignoreRangesStart; -} |