2018-02-27 18:10:34 +00:00
|
|
|
VMTests
|
|
|
|
===
|
|
|
|
## vmArithmeticTest
|
|
|
|
```diff
|
2018-05-14 20:13:13 +00:00
|
|
|
+ add0.json OK
|
|
|
|
+ add1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ add2.json OK
|
|
|
|
+ add3.json OK
|
|
|
|
+ add4.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ addmod0.json OK
|
|
|
|
+ addmod1.json OK
|
2018-06-13 14:05:52 +00:00
|
|
|
+ addmod1_overflow2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ addmod1_overflow3.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ addmod1_overflow4.json OK
|
|
|
|
+ addmod1_overflowDiff.json OK
|
|
|
|
+ addmod2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ addmod2_0.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ addmod2_1.json OK
|
|
|
|
+ addmod3.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ addmod3_0.json OK
|
|
|
|
+ addmodBigIntCast.json OK
|
|
|
|
+ addmodDivByZero.json OK
|
|
|
|
+ addmodDivByZero1.json OK
|
|
|
|
+ addmodDivByZero2.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ addmodDivByZero3.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ arith1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ div1.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ divBoostBug.json OK
|
|
|
|
+ divByNonZero0.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ divByNonZero1.json OK
|
|
|
|
+ divByNonZero2.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ divByNonZero3.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ divByZero.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ divByZero_2.json OK
|
2018-05-15 09:23:45 +00:00
|
|
|
+ exp0.json OK
|
|
|
|
+ exp1.json OK
|
|
|
|
+ exp2.json OK
|
|
|
|
+ exp3.json OK
|
2018-05-16 08:41:34 +00:00
|
|
|
+ exp4.json OK
|
|
|
|
+ exp5.json OK
|
|
|
|
+ exp6.json OK
|
|
|
|
+ exp7.json OK
|
2018-05-15 09:23:45 +00:00
|
|
|
+ expPowerOf256Of256_0.json OK
|
2018-05-16 08:41:34 +00:00
|
|
|
+ expPowerOf256Of256_1.json OK
|
|
|
|
+ expPowerOf256Of256_10.json OK
|
|
|
|
+ expPowerOf256Of256_11.json OK
|
|
|
|
+ expPowerOf256Of256_12.json OK
|
|
|
|
+ expPowerOf256Of256_13.json OK
|
|
|
|
+ expPowerOf256Of256_14.json OK
|
|
|
|
+ expPowerOf256Of256_15.json OK
|
|
|
|
+ expPowerOf256Of256_16.json OK
|
|
|
|
+ expPowerOf256Of256_17.json OK
|
|
|
|
+ expPowerOf256Of256_18.json OK
|
|
|
|
+ expPowerOf256Of256_19.json OK
|
|
|
|
+ expPowerOf256Of256_2.json OK
|
|
|
|
+ expPowerOf256Of256_20.json OK
|
|
|
|
+ expPowerOf256Of256_21.json OK
|
|
|
|
+ expPowerOf256Of256_22.json OK
|
|
|
|
+ expPowerOf256Of256_23.json OK
|
|
|
|
+ expPowerOf256Of256_24.json OK
|
|
|
|
+ expPowerOf256Of256_25.json OK
|
|
|
|
+ expPowerOf256Of256_26.json OK
|
|
|
|
+ expPowerOf256Of256_27.json OK
|
|
|
|
+ expPowerOf256Of256_28.json OK
|
|
|
|
+ expPowerOf256Of256_29.json OK
|
|
|
|
+ expPowerOf256Of256_3.json OK
|
|
|
|
+ expPowerOf256Of256_30.json OK
|
|
|
|
+ expPowerOf256Of256_31.json OK
|
|
|
|
+ expPowerOf256Of256_32.json OK
|
|
|
|
+ expPowerOf256Of256_33.json OK
|
|
|
|
+ expPowerOf256Of256_4.json OK
|
|
|
|
+ expPowerOf256Of256_5.json OK
|
|
|
|
+ expPowerOf256Of256_6.json OK
|
|
|
|
+ expPowerOf256Of256_7.json OK
|
|
|
|
+ expPowerOf256Of256_8.json OK
|
|
|
|
+ expPowerOf256Of256_9.json OK
|
|
|
|
+ expPowerOf256_1.json OK
|
2018-05-15 09:23:45 +00:00
|
|
|
+ expPowerOf256_10.json OK
|
|
|
|
+ expPowerOf256_11.json OK
|
|
|
|
+ expPowerOf256_12.json OK
|
|
|
|
+ expPowerOf256_13.json OK
|
|
|
|
+ expPowerOf256_14.json OK
|
|
|
|
+ expPowerOf256_15.json OK
|
|
|
|
+ expPowerOf256_16.json OK
|
|
|
|
+ expPowerOf256_17.json OK
|
|
|
|
+ expPowerOf256_18.json OK
|
|
|
|
+ expPowerOf256_19.json OK
|
|
|
|
+ expPowerOf256_2.json OK
|
|
|
|
+ expPowerOf256_20.json OK
|
|
|
|
+ expPowerOf256_21.json OK
|
|
|
|
+ expPowerOf256_22.json OK
|
|
|
|
+ expPowerOf256_23.json OK
|
|
|
|
+ expPowerOf256_24.json OK
|
|
|
|
+ expPowerOf256_25.json OK
|
|
|
|
+ expPowerOf256_26.json OK
|
|
|
|
+ expPowerOf256_27.json OK
|
|
|
|
+ expPowerOf256_28.json OK
|
|
|
|
+ expPowerOf256_29.json OK
|
|
|
|
+ expPowerOf256_3.json OK
|
|
|
|
+ expPowerOf256_30.json OK
|
|
|
|
+ expPowerOf256_31.json OK
|
|
|
|
+ expPowerOf256_32.json OK
|
|
|
|
+ expPowerOf256_33.json OK
|
|
|
|
+ expPowerOf256_4.json OK
|
|
|
|
+ expPowerOf256_5.json OK
|
|
|
|
+ expPowerOf256_6.json OK
|
|
|
|
+ expPowerOf256_7.json OK
|
|
|
|
+ expPowerOf256_8.json OK
|
|
|
|
+ expPowerOf256_9.json OK
|
|
|
|
+ expPowerOf2_128.json OK
|
|
|
|
+ expPowerOf2_16.json OK
|
2018-05-16 08:41:34 +00:00
|
|
|
+ expPowerOf2_2.json OK
|
|
|
|
+ expPowerOf2_256.json OK
|
2018-05-15 09:23:45 +00:00
|
|
|
+ expPowerOf2_32.json OK
|
|
|
|
+ expPowerOf2_4.json OK
|
|
|
|
+ expPowerOf2_64.json OK
|
|
|
|
+ expPowerOf2_8.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
+ expXY.json OK
|
2018-05-24 10:01:59 +00:00
|
|
|
+ expXY_success.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ fibbonacci_unrolled.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ mod0.json OK
|
|
|
|
+ mod1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mod2.json OK
|
|
|
|
+ mod3.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ mod4.json OK
|
|
|
|
+ modByZero.json OK
|
|
|
|
+ mul0.json OK
|
|
|
|
+ mul1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mul2.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ mul3.json OK
|
|
|
|
+ mul4.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mul5.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ mul6.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mul7.json OK
|
2018-05-17 18:59:17 +00:00
|
|
|
+ mulUnderFlow.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mulmod0.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ mulmod1.json OK
|
2018-06-13 14:05:52 +00:00
|
|
|
+ mulmod1_overflow.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mulmod1_overflow2.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ mulmod1_overflow3.json OK
|
|
|
|
+ mulmod1_overflow4.json OK
|
|
|
|
+ mulmod2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mulmod2_0.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ mulmod2_1.json OK
|
|
|
|
+ mulmod3.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mulmod3_0.json OK
|
2018-06-06 18:40:44 +00:00
|
|
|
+ mulmod4.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ mulmoddivByZero.json OK
|
|
|
|
+ mulmoddivByZero1.json OK
|
|
|
|
+ mulmoddivByZero2.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ mulmoddivByZero3.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ not1.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ sdiv0.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ sdiv1.json OK
|
|
|
|
+ sdiv2.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ sdiv3.json OK
|
|
|
|
+ sdiv4.json OK
|
|
|
|
+ sdiv5.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ sdiv6.json OK
|
|
|
|
+ sdiv7.json OK
|
|
|
|
+ sdiv8.json OK
|
|
|
|
+ sdiv9.json OK
|
|
|
|
+ sdivByZero0.json OK
|
|
|
|
+ sdivByZero1.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ sdivByZero2.json OK
|
2018-05-17 18:59:17 +00:00
|
|
|
+ sdiv_dejavu.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ sdiv_i256min.json OK
|
|
|
|
+ sdiv_i256min2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ sdiv_i256min3.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ signextendInvalidByteNumber.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ signextend_00.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ signextend_0_BigByte.json OK
|
|
|
|
+ signextend_AlmostBiggestByte.json OK
|
|
|
|
+ signextend_BigByteBigByte.json OK
|
|
|
|
+ signextend_BigBytePlus1_2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ signextend_BigByte_0.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ signextend_BitIsNotSet.json OK
|
|
|
|
+ signextend_BitIsNotSetInHigherByte.json OK
|
|
|
|
+ signextend_BitIsSetInHigherByte.json OK
|
2018-06-12 15:33:47 +00:00
|
|
|
+ signextend_Overflow_dj42.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ signextend_bigBytePlus1.json OK
|
|
|
|
+ signextend_bitIsSet.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ smod0.json OK
|
|
|
|
+ smod1.json OK
|
|
|
|
+ smod2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ smod3.json OK
|
|
|
|
+ smod4.json OK
|
2018-06-13 14:05:52 +00:00
|
|
|
+ smod5.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ smod6.json OK
|
2018-06-13 14:05:52 +00:00
|
|
|
+ smod7.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ smod8_byZero.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ smod_i256min1.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ smod_i256min2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ stop.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ sub0.json OK
|
|
|
|
+ sub1.json OK
|
|
|
|
+ sub2.json OK
|
|
|
|
+ sub3.json OK
|
|
|
|
+ sub4.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
```
|
2018-07-18 09:14:28 +00:00
|
|
|
OK: 195/195 Fail: 0/195 Skip: 0/195
|
2018-02-27 18:10:34 +00:00
|
|
|
## vmBitwiseLogicOperation
|
|
|
|
```diff
|
2018-05-14 20:13:13 +00:00
|
|
|
+ and0.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ and1.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ and2.json OK
|
|
|
|
+ and3.json OK
|
|
|
|
+ and4.json OK
|
|
|
|
+ and5.json OK
|
2018-05-15 09:23:45 +00:00
|
|
|
+ byte0.json OK
|
|
|
|
+ byte1.json OK
|
|
|
|
+ byte10.json OK
|
|
|
|
+ byte11.json OK
|
|
|
|
+ byte2.json OK
|
|
|
|
+ byte3.json OK
|
|
|
|
+ byte4.json OK
|
|
|
|
+ byte5.json OK
|
|
|
|
+ byte6.json OK
|
|
|
|
+ byte7.json OK
|
|
|
|
+ byte8.json OK
|
|
|
|
+ byte9.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ eq0.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ eq1.json OK
|
|
|
|
+ eq2.json OK
|
|
|
|
+ gt0.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ gt1.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ gt2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ gt3.json OK
|
|
|
|
+ iszeo2.json OK
|
|
|
|
+ iszero0.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ iszero1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ lt0.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ lt1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ lt2.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ lt3.json OK
|
|
|
|
+ not0.json OK
|
|
|
|
+ not1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ not2.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ not3.json OK
|
|
|
|
+ not4.json OK
|
|
|
|
+ not5.json OK
|
|
|
|
+ or0.json OK
|
|
|
|
+ or1.json OK
|
|
|
|
+ or2.json OK
|
|
|
|
+ or3.json OK
|
|
|
|
+ or4.json OK
|
|
|
|
+ or5.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ sgt0.json OK
|
|
|
|
+ sgt1.json OK
|
|
|
|
+ sgt2.json OK
|
|
|
|
+ sgt3.json OK
|
|
|
|
+ sgt4.json OK
|
|
|
|
+ slt0.json OK
|
|
|
|
+ slt1.json OK
|
|
|
|
+ slt2.json OK
|
|
|
|
+ slt3.json OK
|
|
|
|
+ slt4.json OK
|
|
|
|
+ xor0.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ xor1.json OK
|
|
|
|
+ xor2.json OK
|
|
|
|
+ xor3.json OK
|
|
|
|
+ xor4.json OK
|
|
|
|
+ xor5.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
```
|
2018-05-15 09:23:45 +00:00
|
|
|
OK: 60/60 Fail: 0/60 Skip: 0/60
|
2018-02-27 18:10:34 +00:00
|
|
|
## vmBlockInfoTest
|
|
|
|
```diff
|
2018-06-12 15:33:47 +00:00
|
|
|
+ blockhash257Block.json OK
|
|
|
|
+ blockhash258Block.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
- blockhashInRange.json Fail
|
2018-06-12 15:33:47 +00:00
|
|
|
+ blockhashMyBlock.json OK
|
|
|
|
+ blockhashNotExistingBlock.json OK
|
|
|
|
+ blockhashOutOfRange.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ blockhashUnderFlow.json OK
|
2018-06-12 15:33:47 +00:00
|
|
|
+ coinbase.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ difficulty.json OK
|
|
|
|
+ gaslimit.json OK
|
|
|
|
+ number.json OK
|
|
|
|
+ timestamp.json OK
|
|
|
|
```
|
2018-07-05 12:41:01 +00:00
|
|
|
OK: 11/12 Fail: 1/12 Skip: 0/12
|
2018-02-27 18:10:34 +00:00
|
|
|
## vmEnvironmentalInfo
|
|
|
|
```diff
|
2018-07-05 12:41:01 +00:00
|
|
|
+ ExtCodeSizeAddressInputTooBigLeftMyAddress.json OK
|
|
|
|
+ ExtCodeSizeAddressInputTooBigRightMyAddress.json OK
|
|
|
|
+ address0.json OK
|
|
|
|
+ address1.json OK
|
|
|
|
+ balance0.json OK
|
2018-07-19 18:14:17 +00:00
|
|
|
+ balance01.json OK
|
2018-07-17 08:57:14 +00:00
|
|
|
+ balance1.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
+ balanceAddress2.json OK
|
|
|
|
+ balanceAddressInputTooBig.json OK
|
2018-07-17 08:57:14 +00:00
|
|
|
+ balanceAddressInputTooBigLeftMyAddress.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
balanceAddressInputTooBigRightMyAddress.json Skip
|
2018-07-05 12:41:01 +00:00
|
|
|
+ balanceCaller3.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
calldatacopy0.json Skip
|
|
|
|
calldatacopy0_return.json Skip
|
|
|
|
calldatacopy1.json Skip
|
|
|
|
calldatacopy1_return.json Skip
|
|
|
|
calldatacopy2.json Skip
|
|
|
|
calldatacopy2_return.json Skip
|
|
|
|
calldatacopyUnderFlow.json Skip
|
|
|
|
calldatacopyZeroMemExpansion.json Skip
|
|
|
|
calldatacopyZeroMemExpansion_return.json Skip
|
|
|
|
calldatacopy_DataIndexTooHigh.json Skip
|
|
|
|
calldatacopy_DataIndexTooHigh2.json Skip
|
|
|
|
calldatacopy_DataIndexTooHigh2_return.json Skip
|
|
|
|
calldatacopy_DataIndexTooHigh_return.json Skip
|
|
|
|
calldatacopy_sec.json Skip
|
2018-07-05 12:41:01 +00:00
|
|
|
+ calldataload0.json OK
|
|
|
|
+ calldataload1.json OK
|
|
|
|
+ calldataload2.json OK
|
Refactor interpreter dispatch (#65)
* move forks constants, rename errors
* Move vm/utils to vm/interpreter/utils
* initial opcodes refactoring
* Add refactored Comparison & Bitwise Logic Operations
* Add sha3 and address, simplify macro, support pop 0
* balance, origin, caller, callValue
* fix gas copy opcodes gas costs, add callDataLoad/Size/Copy, CodeSize/Copy and gas price opcode
* Update with 30s, 40s, 50s opcodes + impl of balance + stack improvement
* add push, dup, swap, log, create and call operations
* finish opcode implementation
* Add the new dispatching logic
* Pass the opcode test
* Make test_vm_json compile
* halt execution without exceptions for Return, Revert, selfdestruct (fix #62)
* Properly catch and recover from EVM exceptions (stack underflow ...)
* Fix byte op
* Fix jump regressions
* Update for latest devel, don't import old dispatch code as quasiBoolean macro is broken by latest devel
* Fix sha3 regression on empty memory slice and until end of range slice
* Fix padding / range error on expXY_success (gas computation left)
* update logging procs
* Add tracing - expXY_success is not a regression, sload stub was accidentally passing the test
* Reuse the same stub as OO implementation
* Delete previous opcode implementation
* Delete object oriented fork code
* Delete exceptions that were used as control flows
* delete base.nim :fire:, yet another OO remnants
* Delete opcode table
* Enable omputed gotos and compile-time gas fees
* Revert const gasCosts -> generates SIGSEGV
* inline push, swap and dup opcodes
* loggers are now template again, why does this pass new tests?
* Trigger CI rebuild after rocksdb fix https://github.com/status-im/nim-rocksdb/pull/5
* Address review comment on "push" + VMTests in debug mode (not release)
* Address review comment: don't tag fork by default, make opcode impl grepable
* Static compilation fixes after rebasing
* fix the initialization of the VM database
* add a missing import
* Deactivate balance and sload test following #59
* Reactivate stack check (deactivated in #59, necessary to pass tests)
* Merge remaining opcodes implementation from #59
* Merge callDataLoad and codeCopy fixes, todo simplify see #67
2018-07-06 07:52:31 +00:00
|
|
|
- calldataloadSizeTooHigh.json Fail
|
2018-07-05 12:41:01 +00:00
|
|
|
+ calldataloadSizeTooHighPartial.json OK
|
|
|
|
+ calldataload_BigOffset.json OK
|
|
|
|
+ calldatasize0.json OK
|
|
|
|
+ calldatasize1.json OK
|
|
|
|
+ calldatasize2.json OK
|
|
|
|
+ caller.json OK
|
|
|
|
+ callvalue.json OK
|
Refactor interpreter dispatch (#65)
* move forks constants, rename errors
* Move vm/utils to vm/interpreter/utils
* initial opcodes refactoring
* Add refactored Comparison & Bitwise Logic Operations
* Add sha3 and address, simplify macro, support pop 0
* balance, origin, caller, callValue
* fix gas copy opcodes gas costs, add callDataLoad/Size/Copy, CodeSize/Copy and gas price opcode
* Update with 30s, 40s, 50s opcodes + impl of balance + stack improvement
* add push, dup, swap, log, create and call operations
* finish opcode implementation
* Add the new dispatching logic
* Pass the opcode test
* Make test_vm_json compile
* halt execution without exceptions for Return, Revert, selfdestruct (fix #62)
* Properly catch and recover from EVM exceptions (stack underflow ...)
* Fix byte op
* Fix jump regressions
* Update for latest devel, don't import old dispatch code as quasiBoolean macro is broken by latest devel
* Fix sha3 regression on empty memory slice and until end of range slice
* Fix padding / range error on expXY_success (gas computation left)
* update logging procs
* Add tracing - expXY_success is not a regression, sload stub was accidentally passing the test
* Reuse the same stub as OO implementation
* Delete previous opcode implementation
* Delete object oriented fork code
* Delete exceptions that were used as control flows
* delete base.nim :fire:, yet another OO remnants
* Delete opcode table
* Enable omputed gotos and compile-time gas fees
* Revert const gasCosts -> generates SIGSEGV
* inline push, swap and dup opcodes
* loggers are now template again, why does this pass new tests?
* Trigger CI rebuild after rocksdb fix https://github.com/status-im/nim-rocksdb/pull/5
* Address review comment on "push" + VMTests in debug mode (not release)
* Address review comment: don't tag fork by default, make opcode impl grepable
* Static compilation fixes after rebasing
* fix the initialization of the VM database
* add a missing import
* Deactivate balance and sload test following #59
* Reactivate stack check (deactivated in #59, necessary to pass tests)
* Merge remaining opcodes implementation from #59
* Merge callDataLoad and codeCopy fixes, todo simplify see #67
2018-07-06 07:52:31 +00:00
|
|
|
+ codecopy0.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
+ codecopyZeroMemExpansion.json OK
|
|
|
|
- codecopy_DataIndexTooHigh.json Fail
|
|
|
|
+ codesize.json OK
|
|
|
|
- env1.json Fail
|
2018-07-24 00:00:06 +00:00
|
|
|
+ extcodecopy0.json OK
|
|
|
|
+ extcodecopy0AddressTooBigLeft.json OK
|
|
|
|
+ extcodecopy0AddressTooBigRight.json OK
|
|
|
|
+ extcodecopyZeroMemExpansion.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
- extcodecopy_DataIndexTooHigh.json Fail
|
|
|
|
+ extcodesize0.json OK
|
|
|
|
+ extcodesize1.json OK
|
|
|
|
+ extcodesizeUnderFlow.json OK
|
|
|
|
+ gasprice.json OK
|
|
|
|
+ origin.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
```
|
2018-07-24 00:00:06 +00:00
|
|
|
OK: 33/52 Fail: 4/52 Skip: 15/52
|
2018-02-27 18:10:34 +00:00
|
|
|
## vmIOandFlowOperations
|
|
|
|
```diff
|
2018-06-13 17:33:47 +00:00
|
|
|
+ BlockNumberDynamicJump0_AfterJumpdest.json OK
|
|
|
|
+ BlockNumberDynamicJump0_AfterJumpdest3.json OK
|
|
|
|
+ BlockNumberDynamicJump0_foreverOutOfGas.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
+ BlockNumberDynamicJump0_jumpdest0.json OK
|
|
|
|
+ BlockNumberDynamicJump0_jumpdest2.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ BlockNumberDynamicJump0_withoutJumpdest.json OK
|
|
|
|
+ BlockNumberDynamicJump1.json OK
|
|
|
|
+ BlockNumberDynamicJumpInsidePushWithJumpDest.json OK
|
|
|
|
+ BlockNumberDynamicJumpInsidePushWithoutJumpDest.json OK
|
|
|
|
+ BlockNumberDynamicJumpi0.json OK
|
|
|
|
+ BlockNumberDynamicJumpi1.json OK
|
|
|
|
+ BlockNumberDynamicJumpi1_jumpdest.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ BlockNumberDynamicJumpiAfterStop.json OK
|
2018-07-19 13:11:52 +00:00
|
|
|
+ BlockNumberDynamicJumpiOutsideBoundary.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ BlockNumberDynamicJumpifInsidePushWithJumpDest.json OK
|
|
|
|
+ BlockNumberDynamicJumpifInsidePushWithoutJumpDest.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
+ DyanmicJump0_outOfBoundary.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ DynamicJump0_AfterJumpdest.json OK
|
|
|
|
+ DynamicJump0_AfterJumpdest3.json OK
|
|
|
|
+ DynamicJump0_foreverOutOfGas.json OK
|
|
|
|
+ DynamicJump0_jumpdest0.json OK
|
|
|
|
+ DynamicJump0_jumpdest2.json OK
|
|
|
|
+ DynamicJump0_withoutJumpdest.json OK
|
|
|
|
+ DynamicJump1.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ DynamicJumpAfterStop.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ DynamicJumpInsidePushWithJumpDest.json OK
|
|
|
|
+ DynamicJumpInsidePushWithoutJumpDest.json OK
|
|
|
|
+ DynamicJumpJD_DependsOnJumps0.json OK
|
|
|
|
+ DynamicJumpJD_DependsOnJumps1.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
+ DynamicJumpPathologicalTest0.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ DynamicJumpPathologicalTest1.json OK
|
|
|
|
+ DynamicJumpPathologicalTest2.json OK
|
|
|
|
+ DynamicJumpPathologicalTest3.json OK
|
|
|
|
+ DynamicJumpStartWithJumpDest.json OK
|
2018-07-19 18:14:17 +00:00
|
|
|
+ DynamicJump_value1.json OK
|
|
|
|
+ DynamicJump_value2.json OK
|
|
|
|
+ DynamicJump_value3.json OK
|
|
|
|
+ DynamicJump_valueUnderflow.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ DynamicJumpi0.json OK
|
|
|
|
+ DynamicJumpi1.json OK
|
|
|
|
+ DynamicJumpi1_jumpdest.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ DynamicJumpiAfterStop.json OK
|
2018-07-19 13:11:52 +00:00
|
|
|
+ DynamicJumpiOutsideBoundary.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ DynamicJumpifInsidePushWithJumpDest.json OK
|
|
|
|
+ DynamicJumpifInsidePushWithoutJumpDest.json OK
|
2018-07-05 12:41:01 +00:00
|
|
|
+ JDfromStorageDynamicJump0_AfterJumpdest.json OK
|
|
|
|
+ JDfromStorageDynamicJump0_AfterJumpdest3.json OK
|
|
|
|
+ JDfromStorageDynamicJump0_foreverOutOfGas.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
- JDfromStorageDynamicJump0_jumpdest0.json Fail
|
|
|
|
- JDfromStorageDynamicJump0_jumpdest2.json Fail
|
2018-07-05 12:41:01 +00:00
|
|
|
+ JDfromStorageDynamicJump0_withoutJumpdest.json OK
|
|
|
|
+ JDfromStorageDynamicJump1.json OK
|
|
|
|
+ JDfromStorageDynamicJumpInsidePushWithJumpDest.json OK
|
|
|
|
+ JDfromStorageDynamicJumpInsidePushWithoutJumpDest.json OK
|
|
|
|
+ JDfromStorageDynamicJumpi0.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
- JDfromStorageDynamicJumpi1.json Fail
|
2018-07-05 12:41:01 +00:00
|
|
|
+ JDfromStorageDynamicJumpi1_jumpdest.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
- JDfromStorageDynamicJumpiAfterStop.json Fail
|
2018-07-05 12:41:01 +00:00
|
|
|
+ JDfromStorageDynamicJumpiOutsideBoundary.json OK
|
|
|
|
+ JDfromStorageDynamicJumpifInsidePushWithJumpDest.json OK
|
|
|
|
+ JDfromStorageDynamicJumpifInsidePushWithoutJumpDest.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ bad_indirect_jump1.json OK
|
|
|
|
+ bad_indirect_jump2.json OK
|
|
|
|
+ byte1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
calldatacopyMemExp.json Skip
|
2018-06-13 17:33:47 +00:00
|
|
|
- codecopyMemExp.json Fail
|
2018-07-24 19:25:21 +00:00
|
|
|
+ deadCode_1.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ dupAt51becameMload.json OK
|
|
|
|
- extcodecopyMemExp.json Fail
|
|
|
|
- for_loop1.json Fail
|
|
|
|
- for_loop2.json Fail
|
|
|
|
+ gas0.json OK
|
|
|
|
+ gas1.json OK
|
|
|
|
+ gasOverFlow.json OK
|
|
|
|
+ indirect_jump1.json OK
|
|
|
|
+ indirect_jump2.json OK
|
|
|
|
+ indirect_jump3.json OK
|
|
|
|
+ indirect_jump4.json OK
|
|
|
|
+ jump0_AfterJumpdest.json OK
|
|
|
|
+ jump0_AfterJumpdest3.json OK
|
|
|
|
+ jump0_foreverOutOfGas.json OK
|
|
|
|
+ jump0_jumpdest0.json OK
|
|
|
|
+ jump0_jumpdest2.json OK
|
|
|
|
+ jump0_outOfBoundary.json OK
|
|
|
|
+ jump0_withoutJumpdest.json OK
|
|
|
|
+ jump1.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ jumpAfterStop.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ jumpDynamicJumpSameDest.json OK
|
|
|
|
+ jumpHigh.json OK
|
|
|
|
+ jumpInsidePushWithJumpDest.json OK
|
|
|
|
+ jumpInsidePushWithoutJumpDest.json OK
|
|
|
|
+ jumpOntoJump.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ jumpTo1InstructionafterJump.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ jumpTo1InstructionafterJump_jumpdestFirstInstruction.json OK
|
|
|
|
+ jumpTo1InstructionafterJump_noJumpDest.json OK
|
2018-07-19 13:11:52 +00:00
|
|
|
+ jumpToUint64maxPlus1.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ jumpToUintmaxPlus1.json OK
|
|
|
|
+ jumpdestBigList.json OK
|
|
|
|
+ jumpi0.json OK
|
|
|
|
+ jumpi1.json OK
|
|
|
|
+ jumpi1_jumpdest.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ jumpiAfterStop.json OK
|
2018-07-19 13:11:52 +00:00
|
|
|
+ jumpiOutsideBoundary.json OK
|
|
|
|
+ jumpiToUint64maxPlus1.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ jumpiToUintmaxPlus1.json OK
|
|
|
|
+ jumpi_at_the_end.json OK
|
|
|
|
+ jumpifInsidePushWithJumpDest.json OK
|
|
|
|
+ jumpifInsidePushWithoutJumpDest.json OK
|
Refactor interpreter dispatch (#65)
* move forks constants, rename errors
* Move vm/utils to vm/interpreter/utils
* initial opcodes refactoring
* Add refactored Comparison & Bitwise Logic Operations
* Add sha3 and address, simplify macro, support pop 0
* balance, origin, caller, callValue
* fix gas copy opcodes gas costs, add callDataLoad/Size/Copy, CodeSize/Copy and gas price opcode
* Update with 30s, 40s, 50s opcodes + impl of balance + stack improvement
* add push, dup, swap, log, create and call operations
* finish opcode implementation
* Add the new dispatching logic
* Pass the opcode test
* Make test_vm_json compile
* halt execution without exceptions for Return, Revert, selfdestruct (fix #62)
* Properly catch and recover from EVM exceptions (stack underflow ...)
* Fix byte op
* Fix jump regressions
* Update for latest devel, don't import old dispatch code as quasiBoolean macro is broken by latest devel
* Fix sha3 regression on empty memory slice and until end of range slice
* Fix padding / range error on expXY_success (gas computation left)
* update logging procs
* Add tracing - expXY_success is not a regression, sload stub was accidentally passing the test
* Reuse the same stub as OO implementation
* Delete previous opcode implementation
* Delete object oriented fork code
* Delete exceptions that were used as control flows
* delete base.nim :fire:, yet another OO remnants
* Delete opcode table
* Enable omputed gotos and compile-time gas fees
* Revert const gasCosts -> generates SIGSEGV
* inline push, swap and dup opcodes
* loggers are now template again, why does this pass new tests?
* Trigger CI rebuild after rocksdb fix https://github.com/status-im/nim-rocksdb/pull/5
* Address review comment on "push" + VMTests in debug mode (not release)
* Address review comment: don't tag fork by default, make opcode impl grepable
* Static compilation fixes after rebasing
* fix the initialization of the VM database
* add a missing import
* Deactivate balance and sload test following #59
* Reactivate stack check (deactivated in #59, necessary to pass tests)
* Merge remaining opcodes implementation from #59
* Merge callDataLoad and codeCopy fixes, todo simplify see #67
2018-07-06 07:52:31 +00:00
|
|
|
+ kv1.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ log1MemExp.json OK
|
|
|
|
+ loop_stacklimit_1020.json OK
|
|
|
|
+ loop_stacklimit_1021.json OK
|
2018-07-24 19:25:21 +00:00
|
|
|
+ memory1.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ mloadError0.json OK
|
|
|
|
- mloadError1.json Fail
|
|
|
|
+ mloadMemExp.json OK
|
|
|
|
+ mloadOutOfGasError2.json OK
|
|
|
|
+ msize0.json OK
|
|
|
|
+ msize1.json OK
|
|
|
|
+ msize2.json OK
|
|
|
|
+ msize3.json OK
|
|
|
|
+ mstore0.json OK
|
|
|
|
+ mstore1.json OK
|
|
|
|
+ mstore8MemExp.json OK
|
Refactor interpreter dispatch (#65)
* move forks constants, rename errors
* Move vm/utils to vm/interpreter/utils
* initial opcodes refactoring
* Add refactored Comparison & Bitwise Logic Operations
* Add sha3 and address, simplify macro, support pop 0
* balance, origin, caller, callValue
* fix gas copy opcodes gas costs, add callDataLoad/Size/Copy, CodeSize/Copy and gas price opcode
* Update with 30s, 40s, 50s opcodes + impl of balance + stack improvement
* add push, dup, swap, log, create and call operations
* finish opcode implementation
* Add the new dispatching logic
* Pass the opcode test
* Make test_vm_json compile
* halt execution without exceptions for Return, Revert, selfdestruct (fix #62)
* Properly catch and recover from EVM exceptions (stack underflow ...)
* Fix byte op
* Fix jump regressions
* Update for latest devel, don't import old dispatch code as quasiBoolean macro is broken by latest devel
* Fix sha3 regression on empty memory slice and until end of range slice
* Fix padding / range error on expXY_success (gas computation left)
* update logging procs
* Add tracing - expXY_success is not a regression, sload stub was accidentally passing the test
* Reuse the same stub as OO implementation
* Delete previous opcode implementation
* Delete object oriented fork code
* Delete exceptions that were used as control flows
* delete base.nim :fire:, yet another OO remnants
* Delete opcode table
* Enable omputed gotos and compile-time gas fees
* Revert const gasCosts -> generates SIGSEGV
* inline push, swap and dup opcodes
* loggers are now template again, why does this pass new tests?
* Trigger CI rebuild after rocksdb fix https://github.com/status-im/nim-rocksdb/pull/5
* Address review comment on "push" + VMTests in debug mode (not release)
* Address review comment: don't tag fork by default, make opcode impl grepable
* Static compilation fixes after rebasing
* fix the initialization of the VM database
* add a missing import
* Deactivate balance and sload test following #59
* Reactivate stack check (deactivated in #59, necessary to pass tests)
* Merge remaining opcodes implementation from #59
* Merge callDataLoad and codeCopy fixes, todo simplify see #67
2018-07-06 07:52:31 +00:00
|
|
|
+ mstore8WordToBigError.json OK
|
|
|
|
+ mstore8_0.json OK
|
2018-07-24 19:25:21 +00:00
|
|
|
+ mstore8_1.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ mstoreMemExp.json OK
|
|
|
|
+ mstoreWordToBigError.json OK
|
|
|
|
+ mstore_mload0.json OK
|
|
|
|
+ pc0.json OK
|
|
|
|
+ pc1.json OK
|
|
|
|
+ pop0.json OK
|
|
|
|
+ pop1.json OK
|
|
|
|
+ return1.json OK
|
|
|
|
- return2.json Fail
|
|
|
|
+ sha3MemExp.json OK
|
|
|
|
+ sstore_load_0.json OK
|
2018-07-19 13:11:52 +00:00
|
|
|
+ sstore_load_1.json OK
|
2018-07-18 09:14:28 +00:00
|
|
|
+ sstore_load_2.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ sstore_underflow.json OK
|
2018-07-19 18:14:17 +00:00
|
|
|
+ stack_loop.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ stackjump1.json OK
|
|
|
|
+ swapAt52becameMstore.json OK
|
|
|
|
+ when.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
```
|
2018-07-24 19:25:21 +00:00
|
|
|
OK: 134/145 Fail: 10/145 Skip: 1/145
|
2018-02-27 18:10:34 +00:00
|
|
|
## vmLogTest
|
|
|
|
```diff
|
2018-06-13 17:33:47 +00:00
|
|
|
+ log0_emptyMem.json OK
|
2018-07-13 15:54:33 +00:00
|
|
|
+ log0_logMemStartTooHigh.json OK
|
|
|
|
+ log0_logMemsizeTooHigh.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ log0_logMemsizeZero.json OK
|
|
|
|
+ log0_nonEmptyMem.json OK
|
|
|
|
+ log0_nonEmptyMem_logMemSize1.json OK
|
|
|
|
+ log0_nonEmptyMem_logMemSize1_logMemStart31.json OK
|
|
|
|
+ log1_Caller.json OK
|
|
|
|
+ log1_MaxTopic.json OK
|
|
|
|
+ log1_emptyMem.json OK
|
2018-07-13 15:54:33 +00:00
|
|
|
+ log1_logMemStartTooHigh.json OK
|
|
|
|
+ log1_logMemsizeTooHigh.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ log1_logMemsizeZero.json OK
|
|
|
|
+ log1_nonEmptyMem.json OK
|
|
|
|
+ log1_nonEmptyMem_logMemSize1.json OK
|
|
|
|
+ log1_nonEmptyMem_logMemSize1_logMemStart31.json OK
|
|
|
|
+ log2_Caller.json OK
|
|
|
|
+ log2_MaxTopic.json OK
|
|
|
|
+ log2_emptyMem.json OK
|
2018-07-13 15:54:33 +00:00
|
|
|
+ log2_logMemStartTooHigh.json OK
|
|
|
|
+ log2_logMemsizeTooHigh.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ log2_logMemsizeZero.json OK
|
|
|
|
+ log2_nonEmptyMem.json OK
|
|
|
|
+ log2_nonEmptyMem_logMemSize1.json OK
|
|
|
|
+ log2_nonEmptyMem_logMemSize1_logMemStart31.json OK
|
|
|
|
+ log3_Caller.json OK
|
|
|
|
+ log3_MaxTopic.json OK
|
|
|
|
+ log3_PC.json OK
|
|
|
|
+ log3_emptyMem.json OK
|
2018-07-13 15:54:33 +00:00
|
|
|
+ log3_logMemStartTooHigh.json OK
|
|
|
|
+ log3_logMemsizeTooHigh.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ log3_logMemsizeZero.json OK
|
|
|
|
+ log3_nonEmptyMem.json OK
|
|
|
|
+ log3_nonEmptyMem_logMemSize1.json OK
|
|
|
|
+ log3_nonEmptyMem_logMemSize1_logMemStart31.json OK
|
|
|
|
+ log4_Caller.json OK
|
|
|
|
+ log4_MaxTopic.json OK
|
|
|
|
+ log4_PC.json OK
|
|
|
|
+ log4_emptyMem.json OK
|
2018-07-13 15:54:33 +00:00
|
|
|
+ log4_logMemStartTooHigh.json OK
|
|
|
|
+ log4_logMemsizeTooHigh.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ log4_logMemsizeZero.json OK
|
|
|
|
+ log4_nonEmptyMem.json OK
|
|
|
|
+ log4_nonEmptyMem_logMemSize1.json OK
|
|
|
|
+ log4_nonEmptyMem_logMemSize1_logMemStart31.json OK
|
|
|
|
+ log_2logs.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
```
|
2018-07-13 15:54:33 +00:00
|
|
|
OK: 46/46 Fail: 0/46 Skip: 0/46
|
2018-02-27 18:10:34 +00:00
|
|
|
## vmPerformance
|
|
|
|
```diff
|
|
|
|
ackermann31.json Skip
|
|
|
|
ackermann32.json Skip
|
|
|
|
ackermann33.json Skip
|
|
|
|
fibonacci10.json Skip
|
|
|
|
fibonacci16.json Skip
|
|
|
|
loop-add-10M.json Skip
|
|
|
|
loop-divadd-10M.json Skip
|
|
|
|
loop-divadd-unr100-10M.json Skip
|
|
|
|
loop-exp-16b-100k.json Skip
|
|
|
|
loop-exp-1b-1M.json Skip
|
|
|
|
loop-exp-2b-100k.json Skip
|
|
|
|
loop-exp-32b-100k.json Skip
|
|
|
|
loop-exp-4b-100k.json Skip
|
|
|
|
loop-exp-8b-100k.json Skip
|
|
|
|
loop-exp-nop-1M.json Skip
|
|
|
|
loop-mul.json Skip
|
|
|
|
loop-mulmod-2M.json Skip
|
|
|
|
manyFunctions100.json Skip
|
|
|
|
```
|
|
|
|
OK: 0/18 Fail: 0/18 Skip: 18/18
|
|
|
|
## vmPushDupSwapTest
|
|
|
|
```diff
|
2018-05-14 20:13:13 +00:00
|
|
|
+ dup1.json OK
|
|
|
|
+ dup10.json OK
|
|
|
|
+ dup11.json OK
|
|
|
|
+ dup12.json OK
|
|
|
|
+ dup13.json OK
|
|
|
|
+ dup14.json OK
|
|
|
|
+ dup15.json OK
|
|
|
|
+ dup16.json OK
|
|
|
|
+ dup2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ dup2error.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ dup3.json OK
|
|
|
|
+ dup4.json OK
|
|
|
|
+ dup5.json OK
|
|
|
|
+ dup6.json OK
|
|
|
|
+ dup7.json OK
|
|
|
|
+ dup8.json OK
|
|
|
|
+ dup9.json OK
|
|
|
|
+ push1.json OK
|
|
|
|
+ push10.json OK
|
|
|
|
+ push11.json OK
|
|
|
|
+ push12.json OK
|
|
|
|
+ push13.json OK
|
|
|
|
+ push14.json OK
|
|
|
|
+ push15.json OK
|
|
|
|
+ push16.json OK
|
|
|
|
+ push17.json OK
|
|
|
|
+ push18.json OK
|
|
|
|
+ push19.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ push1_missingStack.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ push2.json OK
|
|
|
|
+ push20.json OK
|
|
|
|
+ push21.json OK
|
|
|
|
+ push22.json OK
|
|
|
|
+ push23.json OK
|
|
|
|
+ push24.json OK
|
|
|
|
+ push25.json OK
|
|
|
|
+ push26.json OK
|
|
|
|
+ push27.json OK
|
|
|
|
+ push28.json OK
|
|
|
|
+ push29.json OK
|
|
|
|
+ push3.json OK
|
|
|
|
+ push30.json OK
|
|
|
|
+ push31.json OK
|
|
|
|
+ push32.json OK
|
2018-07-17 08:57:14 +00:00
|
|
|
- push32AndSuicide.json Fail
|
2018-02-27 18:10:34 +00:00
|
|
|
+ push32FillUpInputWithZerosAtTheEnd.json OK
|
|
|
|
+ push32Undefined.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ push32Undefined2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ push32Undefined3.json OK
|
|
|
|
+ push33.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ push4.json OK
|
|
|
|
+ push5.json OK
|
|
|
|
+ push6.json OK
|
|
|
|
+ push7.json OK
|
|
|
|
+ push8.json OK
|
|
|
|
+ push9.json OK
|
2018-07-17 08:57:14 +00:00
|
|
|
+ swap1.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ swap10.json OK
|
|
|
|
+ swap11.json OK
|
|
|
|
+ swap12.json OK
|
|
|
|
+ swap13.json OK
|
|
|
|
+ swap14.json OK
|
|
|
|
+ swap15.json OK
|
|
|
|
+ swap16.json OK
|
|
|
|
+ swap2.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
+ swap2error.json OK
|
2018-05-14 20:13:13 +00:00
|
|
|
+ swap3.json OK
|
|
|
|
+ swap4.json OK
|
|
|
|
+ swap5.json OK
|
|
|
|
+ swap6.json OK
|
|
|
|
+ swap7.json OK
|
|
|
|
+ swap8.json OK
|
|
|
|
+ swap9.json OK
|
2018-07-19 18:14:17 +00:00
|
|
|
+ swapjump1.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
```
|
2018-07-19 18:14:17 +00:00
|
|
|
OK: 73/74 Fail: 1/74 Skip: 0/74
|
2018-02-27 18:10:34 +00:00
|
|
|
## vmRandomTest
|
|
|
|
```diff
|
|
|
|
201503102037PYTHON.json Skip
|
|
|
|
201503102148PYTHON.json Skip
|
|
|
|
201503102300PYTHON.json Skip
|
|
|
|
201503102320PYTHON.json Skip
|
|
|
|
201503110050PYTHON.json Skip
|
|
|
|
201503110206PYTHON.json Skip
|
|
|
|
201503110219PYTHON.json Skip
|
|
|
|
201503110226PYTHON_DUP6.json Skip
|
|
|
|
201503110346PYTHON_PUSH24.json Skip
|
|
|
|
201503110526PYTHON.json Skip
|
|
|
|
201503111844PYTHON.json Skip
|
|
|
|
201503112218PYTHON.json Skip
|
|
|
|
201503120317PYTHON.json Skip
|
|
|
|
201503120525PYTHON.json Skip
|
|
|
|
201503120547PYTHON.json Skip
|
|
|
|
201503120909PYTHON.json Skip
|
|
|
|
randomTest.json Skip
|
|
|
|
```
|
|
|
|
OK: 0/17 Fail: 0/17 Skip: 17/17
|
|
|
|
## vmSha3Test
|
|
|
|
```diff
|
2018-06-13 17:33:47 +00:00
|
|
|
+ sha3_0.json OK
|
2018-07-17 08:57:14 +00:00
|
|
|
+ sha3_1.json OK
|
|
|
|
+ sha3_2.json OK
|
2018-06-13 17:33:47 +00:00
|
|
|
+ sha3_3.json OK
|
|
|
|
+ sha3_4.json OK
|
|
|
|
+ sha3_5.json OK
|
2018-07-17 08:57:14 +00:00
|
|
|
+ sha3_6.json OK
|
|
|
|
+ sha3_bigOffset.json OK
|
|
|
|
+ sha3_bigOffset2.json OK
|
|
|
|
+ sha3_bigSize.json OK
|
|
|
|
+ sha3_memSizeNoQuadraticCost31.json OK
|
|
|
|
+ sha3_memSizeQuadraticCost32.json OK
|
2018-07-23 21:00:49 +00:00
|
|
|
+ sha3_memSizeQuadraticCost32_zeroSize.json OK
|
2018-07-17 08:57:14 +00:00
|
|
|
+ sha3_memSizeQuadraticCost33.json OK
|
|
|
|
+ sha3_memSizeQuadraticCost63.json OK
|
|
|
|
+ sha3_memSizeQuadraticCost64.json OK
|
Refactor interpreter dispatch (#65)
* move forks constants, rename errors
* Move vm/utils to vm/interpreter/utils
* initial opcodes refactoring
* Add refactored Comparison & Bitwise Logic Operations
* Add sha3 and address, simplify macro, support pop 0
* balance, origin, caller, callValue
* fix gas copy opcodes gas costs, add callDataLoad/Size/Copy, CodeSize/Copy and gas price opcode
* Update with 30s, 40s, 50s opcodes + impl of balance + stack improvement
* add push, dup, swap, log, create and call operations
* finish opcode implementation
* Add the new dispatching logic
* Pass the opcode test
* Make test_vm_json compile
* halt execution without exceptions for Return, Revert, selfdestruct (fix #62)
* Properly catch and recover from EVM exceptions (stack underflow ...)
* Fix byte op
* Fix jump regressions
* Update for latest devel, don't import old dispatch code as quasiBoolean macro is broken by latest devel
* Fix sha3 regression on empty memory slice and until end of range slice
* Fix padding / range error on expXY_success (gas computation left)
* update logging procs
* Add tracing - expXY_success is not a regression, sload stub was accidentally passing the test
* Reuse the same stub as OO implementation
* Delete previous opcode implementation
* Delete object oriented fork code
* Delete exceptions that were used as control flows
* delete base.nim :fire:, yet another OO remnants
* Delete opcode table
* Enable omputed gotos and compile-time gas fees
* Revert const gasCosts -> generates SIGSEGV
* inline push, swap and dup opcodes
* loggers are now template again, why does this pass new tests?
* Trigger CI rebuild after rocksdb fix https://github.com/status-im/nim-rocksdb/pull/5
* Address review comment on "push" + VMTests in debug mode (not release)
* Address review comment: don't tag fork by default, make opcode impl grepable
* Static compilation fixes after rebasing
* fix the initialization of the VM database
* add a missing import
* Deactivate balance and sload test following #59
* Reactivate stack check (deactivated in #59, necessary to pass tests)
* Merge remaining opcodes implementation from #59
* Merge callDataLoad and codeCopy fixes, todo simplify see #67
2018-07-06 07:52:31 +00:00
|
|
|
+ sha3_memSizeQuadraticCost64_2.json OK
|
2018-07-17 08:57:14 +00:00
|
|
|
+ sha3_memSizeQuadraticCost65.json OK
|
2018-02-27 18:10:34 +00:00
|
|
|
```
|
2018-07-23 21:00:49 +00:00
|
|
|
OK: 18/18 Fail: 0/18 Skip: 0/18
|
2018-02-27 18:10:34 +00:00
|
|
|
## vmSystemOperations
|
|
|
|
```diff
|
|
|
|
ABAcalls0.json Skip
|
|
|
|
ABAcalls1.json Skip
|
|
|
|
ABAcalls2.json Skip
|
|
|
|
ABAcalls3.json Skip
|
|
|
|
ABAcallsSuicide0.json Skip
|
|
|
|
ABAcallsSuicide1.json Skip
|
|
|
|
CallRecursiveBomb0.json Skip
|
|
|
|
CallRecursiveBomb1.json Skip
|
|
|
|
CallRecursiveBomb2.json Skip
|
|
|
|
CallRecursiveBomb3.json Skip
|
|
|
|
CallToNameRegistrator0.json Skip
|
|
|
|
CallToNameRegistratorNotMuchMemory0.json Skip
|
|
|
|
CallToNameRegistratorNotMuchMemory1.json Skip
|
|
|
|
CallToNameRegistratorOutOfGas.json Skip
|
|
|
|
CallToNameRegistratorTooMuchMemory0.json Skip
|
|
|
|
CallToNameRegistratorTooMuchMemory1.json Skip
|
|
|
|
CallToNameRegistratorTooMuchMemory2.json Skip
|
|
|
|
CallToPrecompiledContract.json Skip
|
|
|
|
CallToReturn1.json Skip
|
|
|
|
PostToNameRegistrator0.json Skip
|
|
|
|
PostToReturn1.json Skip
|
|
|
|
TestNameRegistrator.json Skip
|
|
|
|
callcodeToNameRegistrator0.json Skip
|
|
|
|
callcodeToReturn1.json Skip
|
|
|
|
callstatelessToNameRegistrator0.json Skip
|
|
|
|
callstatelessToReturn1.json Skip
|
|
|
|
createNameRegistrator.json Skip
|
|
|
|
createNameRegistratorOutOfMemoryBonds0.json Skip
|
|
|
|
createNameRegistratorOutOfMemoryBonds1.json Skip
|
|
|
|
createNameRegistratorValueTooHigh.json Skip
|
|
|
|
return0.json Skip
|
|
|
|
return1.json Skip
|
|
|
|
return2.json Skip
|
|
|
|
suicide0.json Skip
|
|
|
|
suicideNotExistingAccount.json Skip
|
|
|
|
suicideSendEtherToMe.json Skip
|
|
|
|
```
|
|
|
|
OK: 0/36 Fail: 0/36 Skip: 36/36
|
|
|
|
## vmTests
|
|
|
|
```diff
|
Refactor interpreter dispatch (#65)
* move forks constants, rename errors
* Move vm/utils to vm/interpreter/utils
* initial opcodes refactoring
* Add refactored Comparison & Bitwise Logic Operations
* Add sha3 and address, simplify macro, support pop 0
* balance, origin, caller, callValue
* fix gas copy opcodes gas costs, add callDataLoad/Size/Copy, CodeSize/Copy and gas price opcode
* Update with 30s, 40s, 50s opcodes + impl of balance + stack improvement
* add push, dup, swap, log, create and call operations
* finish opcode implementation
* Add the new dispatching logic
* Pass the opcode test
* Make test_vm_json compile
* halt execution without exceptions for Return, Revert, selfdestruct (fix #62)
* Properly catch and recover from EVM exceptions (stack underflow ...)
* Fix byte op
* Fix jump regressions
* Update for latest devel, don't import old dispatch code as quasiBoolean macro is broken by latest devel
* Fix sha3 regression on empty memory slice and until end of range slice
* Fix padding / range error on expXY_success (gas computation left)
* update logging procs
* Add tracing - expXY_success is not a regression, sload stub was accidentally passing the test
* Reuse the same stub as OO implementation
* Delete previous opcode implementation
* Delete object oriented fork code
* Delete exceptions that were used as control flows
* delete base.nim :fire:, yet another OO remnants
* Delete opcode table
* Enable omputed gotos and compile-time gas fees
* Revert const gasCosts -> generates SIGSEGV
* inline push, swap and dup opcodes
* loggers are now template again, why does this pass new tests?
* Trigger CI rebuild after rocksdb fix https://github.com/status-im/nim-rocksdb/pull/5
* Address review comment on "push" + VMTests in debug mode (not release)
* Address review comment: don't tag fork by default, make opcode impl grepable
* Static compilation fixes after rebasing
* fix the initialization of the VM database
* add a missing import
* Deactivate balance and sload test following #59
* Reactivate stack check (deactivated in #59, necessary to pass tests)
* Merge remaining opcodes implementation from #59
* Merge callDataLoad and codeCopy fixes, todo simplify see #67
2018-07-06 07:52:31 +00:00
|
|
|
- arith.json Fail
|
|
|
|
- boolean.json Fail
|
|
|
|
- mktx.json Fail
|
2018-07-17 08:57:14 +00:00
|
|
|
- suicide.json Fail
|
2018-02-27 18:10:34 +00:00
|
|
|
```
|
2018-07-17 08:57:14 +00:00
|
|
|
OK: 0/4 Fail: 4/4 Skip: 0/4
|