You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Will go a bit through the current mastercoverage build to roughly identify uncovered code parts to get a bit more of the total picture.
Goals are a bit in both directions:
to identify where coverage is still low and how this can be improved, but also
to identify unused or unoptimized code parts, (non-)coverage is also often an indicator here that code parts are not that much in production or even unnecessary
Some first things:
We were still running blockchain and coverage test runs towards Byzantium leaving the new opcodes oncovered (or reported to be covered at least), this PR is addressing this: Complete switch to Petersburg on tests | Fix coverage #448
Since we are not running Constantinople (the old one) fork rules for coverage the whole new SSTORE test is now left completely untested, we actually do might want to reintegrate some of just removed constantinopleSstoreTest test cases (see Test cleanup #437) to get some basic coverage, but maybe just as some single test cases in the new runCode API tests in some adopted format. Eventually these tests need also some modified setup to be a bit more flexible on adding new test cases, nevertheless a superb start that we have that at all
The vm/logTable.js file significantly adds to non-coverage. This is actually some static value setup for the EXP opcode. At the moment I see no reason why it shouldn't be possible to just inline a dynamic 1-2 line version of this into the EXP opcode and get rid of the file. I did a short test because I thought if there might be some performance reason for the code, but even running this for (let i=0; i<1000000; i++) { pow32 = new BN('010000000000000000000000000000000000000000000000000000000000000000', 16) } doesn't take a significant amount of time, addressed in Replaced static vm logTable with dynamic inline version in EXP opcode #450
List is likely not complete, if you have additions feel free to directly edit the post, eventually with closing with your GitHub name on the list item.
The text was updated successfully, but these errors were encountered:
Will go a bit through the current
master
coverage build to roughly identify uncovered code parts to get a bit more of the total picture.Goals are a bit in both directions:
Some first things:
Byzantium
leaving the new opcodes oncovered (or reported to be covered at least), this PR is addressing this: Complete switch to Petersburg on tests | Fix coverage #448Constantinople
(the old one) fork rules for coverage the whole newSSTORE
test is now left completely untested, we actually do might want to reintegrate some of just removedconstantinopleSstoreTest
test cases (see Test cleanup #437) to get some basic coverage, but maybe just as some single test cases in the new runCode API tests in some adopted format. Eventually these tests need also some modified setup to be a bit more flexible on adding new test cases, nevertheless a superb start that we have that at allEXP
opcode and get rid of the file. I did a short test because I thought if there might be some performance reason for the code, but even running thisfor (let i=0; i<1000000; i++) { pow32 = new BN('010000000000000000000000000000000000000000000000000000000000000000', 16) }
doesn't take a significant amount of time, addressed in Replaced static vm logTable with dynamic inline version in EXP opcode #450List is likely not complete, if you have additions feel free to directly edit the post, eventually with closing with your GitHub name on the list item.
The text was updated successfully, but these errors were encountered: