We should test the VM returns the correct system exit codes in certain scenarios. Following is the list of system error codes, scenarios and tests that invoke them. For each exit code we need to define at least one scenario that invokes it and write a corresponding test.
Good news is that we have at least one test for each exit code. I'm going through the lotus code now and cross referencing with what we have to see if there's scenarios that still need to be tested for.
We should test the VM returns the correct system exit codes in certain scenarios. Following is the list of system error codes, scenarios and tests that invoke them. For each exit code we need to define at least one scenario that invokes it and write a corresponding test.
SysErrInvalidParameters (4)deprecated in https://github.com/filecoin-project/specs-actors/pull/1018, now SysErrReserved1Transfer to system actor https://github.com/filecoin-project/test-vectors/pull/32runtime.Send()
disallowed https://github.com/filecoin-project/lotus/blob/932ab61c2df0c0d4a6cf8628f0c0db267f2cae2a/chain/vm/runtime.go#L336-L339nil
toruntime.Transaction()
https://github.com/filecoin-project/lotus/blob/932ab61c2df0c0d4a6cf8628f0c0db267f2cae2a/chain/vm/runtime.go#L426-L429SysErrSerialization (11)deprecated in https://github.com/filecoin-project/specs-actors/pull/1018, now SysErrReserved2(From https://github.com/filecoin-project/specs-actors/blob/a73a22a48b668c2f5a1cc6a31caef03bcaec5f70/actors/runtime/exitcode/reserved.go#L3-L58)
Note: coverage screenshots above are from the conformance test coverage data, these paths may be exercised in other tests.