aboutsummaryrefslogtreecommitdiffstats
path: root/packages/sol-cov/test
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sol-cov/test')
-rw-r--r--packages/sol-cov/test/collect_coverage_entries_test.ts30
-rw-r--r--packages/sol-cov/test/fixtures/contracts/SolcovIgnore.sol22
2 files changed, 52 insertions, 0 deletions
diff --git a/packages/sol-cov/test/collect_coverage_entries_test.ts b/packages/sol-cov/test/collect_coverage_entries_test.ts
index f88f3b3c3..7832ec316 100644
--- a/packages/sol-cov/test/collect_coverage_entries_test.ts
+++ b/packages/sol-cov/test/collect_coverage_entries_test.ts
@@ -121,5 +121,35 @@ describe('Collect coverage entries', () => {
const branchTypes = _.map(branchDescriptions, branchDescription => branchDescription.type);
expect(branchTypes).to.be.deep.equal(['if', 'if', 'if', 'if', 'binary-expr', 'if']);
});
+
+ it('correctly ignores all coverage entries for Ignore contract', () => {
+ const solcovIgnoreContractBaseName = 'SolcovIgnore.sol';
+ const solcovIgnoreContractFileName = path.resolve(
+ __dirname,
+ 'fixtures/contracts',
+ solcovIgnoreContractBaseName,
+ );
+ const solcovIgnoreContract = fs.readFileSync(solcovIgnoreContractFileName).toString();
+ const coverageEntries = collectCoverageEntries(solcovIgnoreContract);
+ const fnIds = _.keys(coverageEntries.fnMap);
+
+ expect(fnIds.length).to.be.equal(1);
+ expect(coverageEntries.fnMap[fnIds[0]].name).to.be.equal('set');
+ // tslint:disable-next-line:custom-no-magic-numbers
+ expect(coverageEntries.fnMap[fnIds[0]].line).to.be.equal(6);
+ const setFunction = `function set(uint x) public {
+ /* solcov ignore next */
+ storedData = x;
+ }`;
+ expect(utils.getRange(solcovIgnoreContract, coverageEntries.fnMap[fnIds[0]].loc)).to.be.equal(setFunction);
+
+ expect(coverageEntries.branchMap).to.be.deep.equal({});
+ const statementIds = _.keys(coverageEntries.statementMap);
+ expect(utils.getRange(solcovIgnoreContract, coverageEntries.statementMap[statementIds[0]])).to.be.equal(
+ setFunction,
+ );
+ expect(statementIds.length).to.be.equal(1);
+ expect(coverageEntries.modifiersStatementIds.length).to.be.equal(0);
+ });
});
});
diff --git a/packages/sol-cov/test/fixtures/contracts/SolcovIgnore.sol b/packages/sol-cov/test/fixtures/contracts/SolcovIgnore.sol
new file mode 100644
index 000000000..a7977ffb4
--- /dev/null
+++ b/packages/sol-cov/test/fixtures/contracts/SolcovIgnore.sol
@@ -0,0 +1,22 @@
+pragma solidity ^0.4.21;
+
+contract SolcovIgnore {
+ uint public storedData;
+
+ function set(uint x) public {
+ /* solcov ignore next */
+ storedData = x;
+ }
+
+ /* solcov ignore next */
+ function get() constant public returns (uint retVal) {
+ return storedData;
+ }
+}
+
+/* solcov ignore next */
+contract Ignore {
+ function ignored() public returns (bool) {
+ return false;
+ }
+}