ethereumproject / evm-rs

Ethereum Virtual Machine implementation in Rust. Fork of the SputnikVM.
Apache License 2.0
14 stars 5 forks source link

JIT: External declaration manager tests sometimes receive incorrect argument count #26

Closed jakelang closed 5 years ago

jakelang commented 5 years ago

Repro info:

jakelang commented 5 years ago
---- evmjit::compiler::external_declarations::tests::test_get_realloc_decl stdout ----
thread 'evmjit::compiler::external_declarations::tests::test_get_realloc_decl' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `2`', src/evmjit/compiler/external_declarations.rs:203:9
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:59
             at src/libstd/panicking.rs:211
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:221
   4: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:491
   5: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:398
   6: std::panicking::begin_panic_fmt
             at src/libstd/panicking.rs:353
   7: evm::evmjit::compiler::external_declarations::tests::test_get_realloc_decl
             at src/evmjit/compiler/external_declarations.rs:203
   8: evm::evmjit::compiler::external_declarations::tests::test_get_realloc_decl::{{closure}}
             at src/evmjit/compiler/external_declarations.rs:190
   9: core::ops::function::FnOnce::call_once
             at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libcore/ops/function.rs:238
  10: <F as alloc::boxed::FnBox<A>>::call_box
             at src/libtest/lib.rs:1471
             at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libcore/ops/function.rs:238
             at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/liballoc/boxed.rs:673
  11: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:102
jakelang commented 5 years ago
---- evmjit::compiler::external_declarations::tests::test_get_free_decl stdout ----
thread 'evmjit::compiler::external_declarations::tests::test_get_free_decl' panicked at 'assertion failed: `(left == right)`
  left: `2`,
 right: `1`', src/evmjit/compiler/external_declarations.rs:162:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.
jakelang commented 5 years ago

Discussed on call: Possible cause:

Possible solution:

jakelang commented 5 years ago

Refactor has fixed this. See #28