diff --git a/serde_tests/Cargo.toml b/serde_tests/Cargo.toml index 6b75f35d..b2d430e2 100644 --- a/serde_tests/Cargo.toml +++ b/serde_tests/Cargo.toml @@ -16,3 +16,11 @@ num = "*" rustc-serialize = "*" serde = { version = "*", path = "../serde" } serde_macros = { version = "*", path = "../serde_macros" } + +[[test]] +name = "test" +path = "tests/test.rs" + +[[bench]] +name = "bench" +path = "benches/bench.rs" diff --git a/serde_tests/benches/bench.rs b/serde_tests/benches/bench.rs new file mode 100644 index 00000000..02bf6e9f --- /dev/null +++ b/serde_tests/benches/bench.rs @@ -0,0 +1,9 @@ +#![feature(custom_attribute, custom_derive, plugin, test)] +#![plugin(serde_macros)] + +extern crate serde; +extern crate test; + +mod syntax { + include!("bench.rs.in"); +} diff --git a/serde_tests/benches/bench.rs.in b/serde_tests/benches/bench.rs.in new file mode 100644 index 00000000..70caf460 --- /dev/null +++ b/serde_tests/benches/bench.rs.in @@ -0,0 +1,5 @@ +mod bench_enum; +mod bench_log; +mod bench_map; +mod bench_struct; +mod bench_vec; diff --git a/serde_tests/benches/bench_enum.rs b/serde_tests/benches/bench_enum.rs index 190b862a..2b83507b 100644 --- a/serde_tests/benches/bench_enum.rs +++ b/serde_tests/benches/bench_enum.rs @@ -1,18 +1,8 @@ -#![feature(custom_derive, plugin, test)] -#![plugin(serde_macros)] - -extern crate serde; -extern crate rustc_serialize; -extern crate test; - use test::Bencher; - use rustc_serialize::{Decoder, Decodable}; - +use serde; use serde::de::{Deserializer, Deserialize}; -use Animal::{Dog, Frog}; - ////////////////////////////////////////////////////////////////////////////// #[derive(Clone, PartialEq, Debug, RustcDecodable, Deserialize)] @@ -408,7 +398,7 @@ mod deserializer { #[bench] fn bench_decoder_dog(b: &mut Bencher) { b.iter(|| { - let animal = Dog; + let animal = Animal::Dog; let mut d = decoder::AnimalDecoder::new(animal.clone()); let value: Animal = Decodable::decode(&mut d).unwrap(); @@ -420,7 +410,7 @@ fn bench_decoder_dog(b: &mut Bencher) { #[bench] fn bench_decoder_frog(b: &mut Bencher) { b.iter(|| { - let animal = Frog("Henry".to_string(), 349); + let animal = Animal::Frog("Henry".to_string(), 349); let mut d = decoder::AnimalDecoder::new(animal.clone()); let value: Animal = Decodable::decode(&mut d).unwrap(); @@ -432,7 +422,7 @@ fn bench_decoder_frog(b: &mut Bencher) { #[bench] fn bench_deserializer_dog(b: &mut Bencher) { b.iter(|| { - let animal = Dog; + let animal = Animal::Dog; let mut d = deserializer::AnimalDeserializer::new(animal.clone()); let value: Animal = Deserialize::deserialize(&mut d).unwrap(); @@ -444,7 +434,7 @@ fn bench_deserializer_dog(b: &mut Bencher) { #[bench] fn bench_deserializer_frog(b: &mut Bencher) { b.iter(|| { - let animal = Frog("Henry".to_string(), 349); + let animal = Animal::Frog("Henry".to_string(), 349); let mut d = deserializer::AnimalDeserializer::new(animal.clone()); let value: Animal = Deserialize::deserialize(&mut d).unwrap(); diff --git a/serde_tests/benches/bench_log.rs b/serde_tests/benches/bench_log.rs index 24afe2d1..c2f51fd3 100644 --- a/serde_tests/benches/bench_log.rs +++ b/serde_tests/benches/bench_log.rs @@ -1,16 +1,9 @@ -#![feature(custom_derive, collections, plugin, test)] -#![allow(non_camel_case_types)] -#![plugin(serde_macros)] - -extern crate num; -extern crate rustc_serialize; -extern crate serde; -extern crate test; - use std::io::{self, Read, Write}; use num::FromPrimitive; use test::Bencher; +use rustc_serialize; + use serde::de::{self, Deserialize, Deserializer}; use serde::json::ser::escape_str; use serde::json; @@ -32,6 +25,7 @@ struct Http { request_uri: String, } +#[allow(non_camel_case_types)] #[derive(Copy, Clone, Debug, PartialEq)] enum HttpProtocol { HTTP_PROTOCOL_UNKNOWN, @@ -92,6 +86,7 @@ impl de::Deserialize for HttpProtocol { } } +#[allow(non_camel_case_types)] #[derive(Copy, Clone, Debug, PartialEq)] enum HttpMethod { METHOD_UNKNOWN, @@ -168,6 +163,7 @@ impl de::Deserialize for HttpMethod { } } +#[allow(non_camel_case_types)] #[derive(Copy, Clone, Debug, PartialEq)] enum CacheStatus { CACHESTATUS_UNKNOWN, @@ -238,6 +234,7 @@ struct Origin { protocol: OriginProtocol, } +#[allow(non_camel_case_types)] #[derive(Copy, Clone, Debug, PartialEq)] enum OriginProtocol { ORIGIN_PROTOCOL_UNKNOWN, @@ -298,6 +295,7 @@ impl de::Deserialize for OriginProtocol { } } +#[allow(non_camel_case_types)] #[derive(Copy, Clone, Debug, PartialEq)] enum ZonePlan { ZONEPLAN_UNKNOWN, @@ -1018,12 +1016,20 @@ impl MyMemWriter0 { impl Write for MyMemWriter0 { + #[cfg(feature = "nightly")] #[inline] fn write(&mut self, buf: &[u8]) -> io::Result { self.buf.push_all(buf); Ok(buf.len()) } + #[cfg(not(feature = "nightly"))] + #[inline] + fn write(&mut self, buf: &[u8]) -> io::Result { + self.buf.extend(buf.iter().cloned()); + Ok(buf.len()) + } + #[inline] fn flush(&mut self) -> io::Result<()> { Ok(()) diff --git a/serde_tests/benches/bench_map.rs b/serde_tests/benches/bench_map.rs index 125fe2d0..d8c7c285 100644 --- a/serde_tests/benches/bench_map.rs +++ b/serde_tests/benches/bench_map.rs @@ -1,16 +1,10 @@ -#![feature(custom_derive, plugin, test)] -#![plugin(serde_macros)] - -extern crate serde; -extern crate rustc_serialize; -extern crate test; - use std::fmt::Debug; use std::collections::HashMap; use test::Bencher; use rustc_serialize::{Decoder, Decodable}; +use serde; use serde::de::{Deserializer, Deserialize}; ////////////////////////////////////////////////////////////////////////////// diff --git a/serde_tests/benches/bench_struct.rs b/serde_tests/benches/bench_struct.rs index be794d9f..fd52097b 100644 --- a/serde_tests/benches/bench_struct.rs +++ b/serde_tests/benches/bench_struct.rs @@ -1,15 +1,9 @@ -#![feature(custom_derive, plugin, test)] -#![plugin(serde_macros)] - -extern crate serde; -extern crate rustc_serialize; -extern crate test; - use std::collections::HashMap; use test::Bencher; use rustc_serialize::{Decoder, Decodable}; +use serde; use serde::de::{Deserializer, Deserialize}; ////////////////////////////////////////////////////////////////////////////// @@ -34,8 +28,6 @@ pub struct Outer { pub enum Error { EndOfStream, SyntaxError, - UnexpectedName, - ConversionError, MissingField, OtherError, } diff --git a/serde_tests/benches/bench_vec.rs b/serde_tests/benches/bench_vec.rs index aed9adaa..9a16d9dd 100644 --- a/serde_tests/benches/bench_vec.rs +++ b/serde_tests/benches/bench_vec.rs @@ -1,15 +1,9 @@ -#![feature(plugin, test)] -#![plugin(serde_macros)] - -extern crate serde; -extern crate rustc_serialize; -extern crate test; - use std::fmt::Debug; use test::Bencher; use rustc_serialize::{Decoder, Decodable}; +use serde; use serde::de::{Deserializer, Deserialize}; ////////////////////////////////////////////////////////////////////////////// diff --git a/serde_tests/tests/test.rs b/serde_tests/tests/test.rs new file mode 100644 index 00000000..b3cb3492 --- /dev/null +++ b/serde_tests/tests/test.rs @@ -0,0 +1,7 @@ +#![feature(custom_attribute, custom_derive, plugin, test)] +#![plugin(serde_macros)] + +extern crate serde; +extern crate test; + +include!("test.rs.in"); diff --git a/serde_tests/tests/test.rs.in b/serde_tests/tests/test.rs.in new file mode 100644 index 00000000..e6c552f3 --- /dev/null +++ b/serde_tests/tests/test.rs.in @@ -0,0 +1,7 @@ +mod test_annotations; +mod test_bytes; +mod test_de; +mod test_json; +mod test_json_builder; +mod test_macros; +mod test_ser; diff --git a/serde_tests/tests/test_annotations.rs b/serde_tests/tests/test_annotations.rs index 0333d352..37746ae5 100644 --- a/serde_tests/tests/test_annotations.rs +++ b/serde_tests/tests/test_annotations.rs @@ -1,9 +1,3 @@ -#![feature(custom_attribute, custom_derive, plugin, test)] -#![plugin(serde_macros)] - -extern crate test; -extern crate serde; - use serde::json; #[derive(Debug, PartialEq, Serialize, Deserialize)] diff --git a/serde_tests/tests/test_bytes.rs b/serde_tests/tests/test_bytes.rs index ef96e281..a72cf1ae 100644 --- a/serde_tests/tests/test_bytes.rs +++ b/serde_tests/tests/test_bytes.rs @@ -1,9 +1,4 @@ -#![feature(custom_derive, plugin, test)] -#![plugin(serde_macros)] - -extern crate test; -extern crate serde; - +use serde; use serde::Serialize; use serde::bytes::{ByteBuf, Bytes}; use serde::json; diff --git a/serde_tests/tests/test_de.rs b/serde_tests/tests/test_de.rs index 0fb6732b..7e1f2d98 100644 --- a/serde_tests/tests/test_de.rs +++ b/serde_tests/tests/test_de.rs @@ -1,9 +1,3 @@ -#![feature(custom_derive, plugin, test)] -#![plugin(serde_macros)] - -extern crate test; -extern crate serde; - use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet}; use std::iter; use std::vec; diff --git a/serde_tests/tests/test_json.rs b/serde_tests/tests/test_json.rs index 007afdad..58f118da 100644 --- a/serde_tests/tests/test_json.rs +++ b/serde_tests/tests/test_json.rs @@ -1,9 +1,3 @@ -#![feature(custom_derive, plugin, test, custom_attribute)] -#![plugin(serde_macros)] - -extern crate test; -extern crate serde; - use std::fmt::Debug; use std::collections::BTreeMap; diff --git a/serde_tests/tests/test_json_builder.rs b/serde_tests/tests/test_json_builder.rs index 66547fb8..f17dd70a 100644 --- a/serde_tests/tests/test_json_builder.rs +++ b/serde_tests/tests/test_json_builder.rs @@ -1,5 +1,3 @@ -extern crate serde; - use std::collections::BTreeMap; use serde::json::value::Value; diff --git a/serde_tests/tests/test_macros.rs b/serde_tests/tests/test_macros.rs index cb6d56ac..e0fbe2ad 100644 --- a/serde_tests/tests/test_macros.rs +++ b/serde_tests/tests/test_macros.rs @@ -1,8 +1,3 @@ -#![feature(custom_derive, plugin)] -#![plugin(serde_macros)] - -extern crate serde; - use std::collections::BTreeMap; use serde::json::{self, Value}; diff --git a/serde_tests/tests/test_ser.rs b/serde_tests/tests/test_ser.rs index 60296f12..27644f45 100644 --- a/serde_tests/tests/test_ser.rs +++ b/serde_tests/tests/test_ser.rs @@ -1,9 +1,3 @@ -#![feature(custom_derive, plugin, test)] -#![plugin(serde_macros)] - -extern crate test; -extern crate serde; - use std::vec; use std::collections::BTreeMap;