Alex Rea
804c5fb428
Change approach to instrumentation of statements
...
Previously, we traversed the whole AST, and when we encountered a
statement we checked if we could instrument it i.e. if it was
standalone. This introduced a bunch of cases that we wanted to check
(is it in a block? it is immediately after a block? etc.) and some edge
cases that didn’t work properly (comments).
Instead, this stops traversing the AST in situations where we know we
can’t instrument. We can’t instrument `f(x)` easily (see below) in
these situations, so we don’t traverse them:
* `if (f(x))`
* `arr[f(x)`
* `var x = f(x)`
* `g(f(x))`
Of course, going forward we might ‘decide’ that we *can* in fact
instrument these. e.g. `arr[f(x)]` could be replaced by
```
var _some_unique_id = f(x);
arr[_some_unique_id];
```
and then instrumented as appropriate.
8 years ago
Alex Rea
4f1ad6e133
First crack at improving statement coverage accuracy
8 years ago
Alex Rea
1352caaee6
Instrument if else statements
8 years ago
Alex Rea
5163a6cbd8
Revert "Remove unneeded argument"
...
This reverts commit f4457fbec31caa80e594ff4a34cdc14f670b9e2a.
8 years ago
Alex Rea
844fdc17c1
Remove unneeded argument
8 years ago
area
a1175b8eca
Merge pull request #41 from JoinColony/self-coverage
...
Self coverage
8 years ago
Alex Rea
dbfebd9c1a
Add coverage badge to README
...
Make ourselves accountable, I guess..
8 years ago
Alex Rea
427c9a60c0
Let's cover ourselves with istanbul
...
Also includes the fix for #39 , albeit with a changed path to the
index file (README updated appropriately)
8 years ago
area
6982d5f34a
Merge pull request #40 from JoinColony/feature/contract-directories2
...
Cover nested contracts
8 years ago
Alex Rea
765bab8128
Bump Mocha timeout for CircleCI
8 years ago
Alex Rea
80d837d27d
Tests should now use full path
8 years ago
Alex Rea
a8bc98848c
Merge branch 'master' into feature/contract-directories2
8 years ago
area
13aba8aab5
Merge pull request #35 from JoinColony/solidity-parser-pkg
...
Fix solidity-parser pkg version
8 years ago
cgewecke
05e75be6e8
Fix solidity-parser pkg version
8 years ago
Alex Rea
3fa1afaffd
Allow nested contract directories
8 years ago
Alex Rea
83181ce642
Remove an it.only that crept through
8 years ago
Alex Rea
b2420ec1ca
Allow nested contract directories
8 years ago
area
e118454511
Merge pull request #33 from JoinColony/bugfixes
...
Misc Bugfixes
8 years ago
Alex Rea
50570c8b24
Instrument statements after a closing brace
8 years ago
Alex Rea
22bf771a99
Add .catch to all promise-based tests
8 years ago
area
e810429ddb
Merge pull request #31 from JoinColony/PR30-redux
...
Start to add proper tests i.e. making sure coverage is as expected.
Closes #26
Closes #27
Has a known issue regarding highlighting (see #32 ).
8 years ago
Alex Rea
34c7918c4c
Have runCoveredTests.js use coverageMap.js
8 years ago
cgewecke
24756e3980
Istanbul-style tests ( #13 ), fix If bug ( #26 ), loop statement support ( #27 )
8 years ago
-c-g-
74583be561
Merge pull request #8 from JoinColony/master
...
Update real_master
8 years ago
area
2b7c0062fd
Merge pull request #23 from JoinColony/circle-yml
...
Add circle.yml
8 years ago
Alex Rea
8a6f6f8a2c
Add circle.yml
8 years ago
area
e58a779cc5
Merge pull request #19 from cgewecke/update-vm-and-patch
...
Update testrpc, vm, and re-patch
8 years ago
cgewecke
b3f88710ea
Update testrpc, vm, and re-patch
8 years ago
area
b8e5afe577
Merge pull request #12 from JoinColony/add-solc-to-package
...
Add solc to package.json
8 years ago
Alex Rea
e2c76a5ac5
Add CircleCI status badge
8 years ago
Alex Rea
b8944d7b1c
We need solc to run our tests.
8 years ago
area
cd4d457945
Merge pull request #11 from cgewecke/handle-empty-function-body
...
Handle empty function body edge case
8 years ago
area
0ede891e54
Merge pull request #10 from cgewecke/switch-to-solidity-parser
...
Switch from solparse to solidity-parser
8 years ago
area
eecbcc3e2f
Merge pull request #9 from cgewecke/handle-null-return-argument
...
Check for null argument in returnStatement parsing
8 years ago
area
fba1fd28c5
Merge pull request #5 from cgewecke/fix-else-statement-handling
...
Fix injection issue for else's without brackets
8 years ago
area
ead7ef8198
Merge pull request #4 from cgewecke/fix-instrument-statement
...
Remove newline condition for statement coverage
8 years ago
area
ac33aa341a
Merge pull request #3 from cgewecke/add-unhandled-expression-types
...
Add unhandled expression types to instrumentSolidity.js
8 years ago
area
fe42d147b9
Merge pull request #8 from cgewecke/draft-tests
...
Draft test suite
8 years ago
cgewecke
2490170aac
Handle empty function body edge case
8 years ago
cgewecke
f58b3bd99b
Switch from solparse to solidity-parser
8 years ago
cgewecke
82ac391803
Check for null argument in returnStatement parsing
8 years ago
cgewecke
10254a4790
Draft test suite
8 years ago
cgewecke
971e65272d
Fix injection issue with else statements without brackets
8 years ago
cgewecke
fe151dacba
Remove newline condition for statement coverage
8 years ago
cgewecke
d5cce3bf35
Adds unhandled expression types
8 years ago
area
f0c5f08f09
Add link to blogpost in README
8 years ago
Alex Rea
622cac81ab
Move from area to JoinColony
8 years ago
Alex Rea
763d6dabca
Add image to README
8 years ago
Alex Rea
74a8e7c68e
Make clear SolCover runs its own TestRPC
8 years ago
Alex Rea
d2fb643151
let -> var in testrpc patch
...
Means that older versions of node don't balk
8 years ago