diff --git a/ethcore/evm/src/lib.rs b/ethcore/evm/src/lib.rs index ca101fcb4..5c073add6 100644 --- a/ethcore/evm/src/lib.rs +++ b/ethcore/evm/src/lib.rs @@ -28,7 +28,7 @@ extern crate memory_cache; #[macro_use] extern crate lazy_static; -#[macro_use] +#[cfg_attr(feature = "evm-debug", macro_use)] extern crate log; #[cfg(feature = "jit")] diff --git a/parity/cli/mod.rs b/parity/cli/mod.rs index 445e75d1b..66fe2fcb0 100644 --- a/parity/cli/mod.rs +++ b/parity/cli/mod.rs @@ -994,6 +994,7 @@ struct Config { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Operating { mode: Option, mode_timeout: Option, @@ -1013,6 +1014,7 @@ struct Operating { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Account { unlock: Option>, password: Option>, @@ -1023,6 +1025,7 @@ struct Account { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Ui { force: Option, disable: Option, @@ -1033,6 +1036,7 @@ struct Ui { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Network { warp: Option, port: Option, @@ -1052,6 +1056,7 @@ struct Network { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Rpc { disable: Option, port: Option, @@ -1064,6 +1069,7 @@ struct Rpc { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Ws { disable: Option, port: Option, @@ -1074,6 +1080,7 @@ struct Ws { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Ipc { disable: Option, path: Option, @@ -1081,6 +1088,7 @@ struct Ipc { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Dapps { disable: Option, port: Option, @@ -1093,6 +1101,7 @@ struct Dapps { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct SecretStore { disable: Option, disable_http: Option, @@ -1109,6 +1118,7 @@ struct SecretStore { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Ipfs { enable: Option, port: Option, @@ -1118,6 +1128,7 @@ struct Ipfs { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Mining { author: Option, engine_signer: Option, @@ -1150,6 +1161,7 @@ struct Mining { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Stratum { interface: Option, port: Option, @@ -1157,6 +1169,7 @@ struct Stratum { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Footprint { tracing: Option, pruning: Option, @@ -1175,16 +1188,19 @@ struct Footprint { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Snapshots { disable_periodic: Option, } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct VM { jit: Option, } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Misc { ntp_servers: Option>, logging: Option, @@ -1195,6 +1211,7 @@ struct Misc { } #[derive(Default, Debug, PartialEq, Deserialize)] +#[serde(deny_unknown_fields)] struct Whisper { enabled: Option, pool_size: Option, @@ -1642,11 +1659,17 @@ mod tests { let config1 = Args::parse_config(include_str!("./tests/config.invalid1.toml")); let config2 = Args::parse_config(include_str!("./tests/config.invalid2.toml")); let config3 = Args::parse_config(include_str!("./tests/config.invalid3.toml")); + let config4 = Args::parse_config(include_str!("./tests/config.invalid4.toml")); - match (config1, config2, config3) { - (Err(ArgsError::Decode(_)), Err(ArgsError::Decode(_)), Err(ArgsError::Decode(_))) => {}, - (a, b, c) => { - assert!(false, "Got invalid error types: {:?}, {:?}, {:?}", a, b, c); + match (config1, config2, config3, config4) { + ( + Err(ArgsError::Decode(_)), + Err(ArgsError::Decode(_)), + Err(ArgsError::Decode(_)), + Err(ArgsError::Decode(_)), + ) => {}, + (a, b, c, d) => { + assert!(false, "Got invalid error types: {:?}, {:?}, {:?}, {:?}", a, b, c, d); } } } diff --git a/parity/cli/tests/config.invalid4.toml b/parity/cli/tests/config.invalid4.toml new file mode 100644 index 000000000..a5429b2ba --- /dev/null +++ b/parity/cli/tests/config.invalid4.toml @@ -0,0 +1,2 @@ +[account] +invalid = 5