diff --git a/ethcore/src/tests/rpc.rs b/ethcore/src/tests/rpc.rs index a25928cf8..786389905 100644 --- a/ethcore/src/tests/rpc.rs +++ b/ethcore/src/tests/rpc.rs @@ -19,7 +19,7 @@ use nanoipc; use std::sync::Arc; use std::sync::atomic::{Ordering, AtomicBool}; -use client::{Client, ClientConfig, RemoteClient}; +use client::{Client, BlockChainClient, ClientConfig, RemoteClient, BlockID}; use tests::helpers::*; use devtools::*; use miner::Miner; @@ -55,3 +55,17 @@ fn can_handshake() { assert!(remote_client.handshake().is_ok()); }) } + +#[test] +fn can_query_block() { + crossbeam::scope(|scope| { + let stop_guard = StopGuard::new(); + let socket_path = "ipc:///tmp/parity-client-rpc-20.ipc"; + run_test_worker(scope, stop_guard.share(), socket_path); + let remote_client = nanoipc::init_client::>(socket_path).unwrap(); + + let non_existant_block = remote_client.block_header(BlockID::Number(999)); + + assert!(non_existant_block.is_none()); + }) +} diff --git a/ipc/codegen/src/serialization.rs b/ipc/codegen/src/serialization.rs index 9c58e198e..0ab70f93a 100644 --- a/ipc/codegen/src/serialization.rs +++ b/ipc/codegen/src/serialization.rs @@ -707,7 +707,12 @@ fn binary_expr_variant( let buffer = &mut buffer[1..]; $write_expr }), - read: quote_arm!(cx, $variant_index_ident => { $read_expr } ), + read: quote_arm!(cx, + $variant_index_ident => { + let buffer = &buffer[1..]; + $read_expr + } + ), }) }, ast::VariantData::Struct(ref fields, _) => { @@ -742,7 +747,12 @@ fn binary_expr_variant( let buffer = &mut buffer[1..]; $write_expr }), - read: quote_arm!(cx, $variant_index_ident => { $read_expr } ), + read: quote_arm!(cx, + $variant_index_ident => { + let buffer = &buffer[1..]; + $read_expr + } + ), }) }, }