Lint
This commit is contained in:
parent
543f883b7d
commit
824353fb32
|
@ -1,5 +1,3 @@
|
|||
const util = require('util');
|
||||
|
||||
const SourceMap = require('./source_map');
|
||||
|
||||
class ContractSource {
|
||||
|
@ -99,7 +97,7 @@ class ContractSource {
|
|||
}
|
||||
}
|
||||
|
||||
/*eslint complexity: ["error", 27]*/
|
||||
/*eslint complexity: ["error", 34]*/
|
||||
generateCodeCoverage(trace) {
|
||||
if(!this.ast || !this.contractBytecode) throw new Error('Error generating coverage: solc output was not assigned');
|
||||
|
||||
|
@ -135,7 +133,7 @@ class ContractSource {
|
|||
// We don't need to do anything with these. Just carry on.
|
||||
break;
|
||||
|
||||
case 'IfStatement':
|
||||
case 'IfStatement': {
|
||||
location = this.sourceMapToLocations(node.src);
|
||||
let trueBranchLocation = this.sourceMapToLocations(node.trueBody.src);
|
||||
|
||||
|
@ -173,10 +171,12 @@ class ContractSource {
|
|||
|
||||
sourceMapToNodeType[node.src] = [{type: 'b', id: node.id, body: {loc: location}}];
|
||||
break;
|
||||
}
|
||||
|
||||
case 'EmitStatement':
|
||||
case 'EmitStatement': {
|
||||
children = [node.eventCall];
|
||||
break;
|
||||
}
|
||||
|
||||
case 'BinaryOperation':
|
||||
case 'ExpressionStatement':
|
||||
|
@ -235,7 +235,7 @@ class ContractSource {
|
|||
markLocations = [location];
|
||||
break;
|
||||
|
||||
case 'ForStatement':
|
||||
case 'ForStatement': {
|
||||
// For statements will be a bit of a special case. We want to count the body
|
||||
// iterations but we only want to count the for loop being hit once. Because
|
||||
// of this, we cover the initialization on the node.
|
||||
|
@ -255,8 +255,9 @@ class ContractSource {
|
|||
children = node.body.statements;
|
||||
markLocations = [initializationLocation];
|
||||
break;
|
||||
}
|
||||
|
||||
case 'VariableDeclarationStatement':
|
||||
case 'VariableDeclarationStatement': {
|
||||
location = this.sourceMapToLocations(node.src);
|
||||
|
||||
coverage.s[node.id] = 0;
|
||||
|
@ -267,6 +268,7 @@ class ContractSource {
|
|||
sourceMapToNodeType[node.src].push({type: 's', id: node.id, body: {loc: location}, foo: 'bar'});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
console.log(`Don't know how to handle node type ${node.nodeType}`);
|
||||
|
|
|
@ -33,8 +33,8 @@ class SourceMap {
|
|||
|
||||
let [offset, length, id, jump] = sourceMapString.split(":");
|
||||
|
||||
(offset == '') ? offset = this.offset : offset = parseInt(offset, 10);
|
||||
(id == '' || id == undefined) ? id = this.id : id = parseInt(id, 10);
|
||||
offset = (offset == '') ? this.offset : parseInt(offset, 10);
|
||||
id = (id == '' || id == undefined) ? this.id : parseInt(id, 10);
|
||||
length = parseInt(length, 10);
|
||||
|
||||
return new SourceMap(offset, length, id, jump);
|
||||
|
@ -48,7 +48,7 @@ class SourceMap {
|
|||
let parts = [this.offset, this.length];
|
||||
|
||||
if(this.id !== undefined && this.id != '') {
|
||||
parts.push(this.id)
|
||||
parts.push(this.id);
|
||||
} else if(defaultId !== undefined) {
|
||||
parts.push(defaultId);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ describe('ContractSources', () => {
|
|||
it('should throw an error when the file does not exist', (done) => {
|
||||
assert.throws(() => {
|
||||
new ContractSources(['fixtures/404.sol']);
|
||||
}, 'Error loading fixtures/404.sol: ENOENT');
|
||||
}, "ENOENT: no such file or directory, open 'fixtures/404.sol'");
|
||||
|
||||
done();
|
||||
});
|
||||
|
@ -162,10 +162,10 @@ contract x {
|
|||
|
||||
var bytecode = contractSource.contractBytecode['x'];
|
||||
|
||||
assert.deepEqual({instruction: 'PUSH1', sourceMap: {offset: 26, length: 487, id: 0}, seen: false}, bytecode[0]);
|
||||
assert.deepEqual({instruction: 'PUSH1', sourceMap: SourceMap.empty(), seen: false}, bytecode[2]);
|
||||
assert.deepEqual({instruction: 'MSTORE', sourceMap: SourceMap.empty(), seen: false}, bytecode[4]);
|
||||
assert.deepEqual({instruction: 'PUSH1', sourceMap: SourceMap.empty(), seen: false}, bytecode[5]);
|
||||
assert.deepEqual({instruction: 'PUSH1', sourceMap: {offset: 26, length: 487, id: 0, jump: '-'}, jump: '-', seen: false}, bytecode[0]);
|
||||
assert.deepEqual({instruction: 'PUSH1', sourceMap: SourceMap.empty(), seen: false, jump: undefined}, bytecode[2]);
|
||||
assert.deepEqual({instruction: 'MSTORE', sourceMap: SourceMap.empty(), seen: false, jump: undefined}, bytecode[4]);
|
||||
assert.deepEqual({instruction: 'PUSH1', sourceMap: SourceMap.empty(), seen: false, jump: undefined}, bytecode[5]);
|
||||
|
||||
done();
|
||||
});
|
||||
|
@ -213,8 +213,8 @@ contract x {
|
|||
|
||||
// In the fixture, the branch has an ID of 61, and the function has the
|
||||
// ID of 63
|
||||
assert.deepEqual([1,1], coverage.b['61']);
|
||||
assert.equal(4, coverage.f['63']);
|
||||
assert.deepEqual([1,0], coverage.b['61']);
|
||||
assert.equal(6, coverage.f['63']);
|
||||
|
||||
done();
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue