mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-15 10:51:01 +00:00
Add a single driver for tests and benchmarks
This commit is contained in:
@@ -16,3 +16,11 @@ num = "*"
|
|||||||
rustc-serialize = "*"
|
rustc-serialize = "*"
|
||||||
serde = { version = "*", path = "../serde" }
|
serde = { version = "*", path = "../serde" }
|
||||||
serde_macros = { version = "*", path = "../serde_macros" }
|
serde_macros = { version = "*", path = "../serde_macros" }
|
||||||
|
|
||||||
|
[[test]]
|
||||||
|
name = "test"
|
||||||
|
path = "tests/test.rs"
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "bench"
|
||||||
|
path = "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");
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
mod bench_enum;
|
||||||
|
mod bench_log;
|
||||||
|
mod bench_map;
|
||||||
|
mod bench_struct;
|
||||||
|
mod bench_vec;
|
||||||
@@ -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 test::Bencher;
|
||||||
|
|
||||||
use rustc_serialize::{Decoder, Decodable};
|
use rustc_serialize::{Decoder, Decodable};
|
||||||
|
use serde;
|
||||||
use serde::de::{Deserializer, Deserialize};
|
use serde::de::{Deserializer, Deserialize};
|
||||||
|
|
||||||
use Animal::{Dog, Frog};
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Debug, RustcDecodable, Deserialize)]
|
#[derive(Clone, PartialEq, Debug, RustcDecodable, Deserialize)]
|
||||||
@@ -408,7 +398,7 @@ mod deserializer {
|
|||||||
#[bench]
|
#[bench]
|
||||||
fn bench_decoder_dog(b: &mut Bencher) {
|
fn bench_decoder_dog(b: &mut Bencher) {
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let animal = Dog;
|
let animal = Animal::Dog;
|
||||||
|
|
||||||
let mut d = decoder::AnimalDecoder::new(animal.clone());
|
let mut d = decoder::AnimalDecoder::new(animal.clone());
|
||||||
let value: Animal = Decodable::decode(&mut d).unwrap();
|
let value: Animal = Decodable::decode(&mut d).unwrap();
|
||||||
@@ -420,7 +410,7 @@ fn bench_decoder_dog(b: &mut Bencher) {
|
|||||||
#[bench]
|
#[bench]
|
||||||
fn bench_decoder_frog(b: &mut Bencher) {
|
fn bench_decoder_frog(b: &mut Bencher) {
|
||||||
b.iter(|| {
|
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 mut d = decoder::AnimalDecoder::new(animal.clone());
|
||||||
let value: Animal = Decodable::decode(&mut d).unwrap();
|
let value: Animal = Decodable::decode(&mut d).unwrap();
|
||||||
@@ -432,7 +422,7 @@ fn bench_decoder_frog(b: &mut Bencher) {
|
|||||||
#[bench]
|
#[bench]
|
||||||
fn bench_deserializer_dog(b: &mut Bencher) {
|
fn bench_deserializer_dog(b: &mut Bencher) {
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let animal = Dog;
|
let animal = Animal::Dog;
|
||||||
|
|
||||||
let mut d = deserializer::AnimalDeserializer::new(animal.clone());
|
let mut d = deserializer::AnimalDeserializer::new(animal.clone());
|
||||||
let value: Animal = Deserialize::deserialize(&mut d).unwrap();
|
let value: Animal = Deserialize::deserialize(&mut d).unwrap();
|
||||||
@@ -444,7 +434,7 @@ fn bench_deserializer_dog(b: &mut Bencher) {
|
|||||||
#[bench]
|
#[bench]
|
||||||
fn bench_deserializer_frog(b: &mut Bencher) {
|
fn bench_deserializer_frog(b: &mut Bencher) {
|
||||||
b.iter(|| {
|
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 mut d = deserializer::AnimalDeserializer::new(animal.clone());
|
||||||
let value: Animal = Deserialize::deserialize(&mut d).unwrap();
|
let value: Animal = Deserialize::deserialize(&mut d).unwrap();
|
||||||
|
|||||||
@@ -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 std::io::{self, Read, Write};
|
||||||
use num::FromPrimitive;
|
use num::FromPrimitive;
|
||||||
use test::Bencher;
|
use test::Bencher;
|
||||||
|
|
||||||
|
use rustc_serialize;
|
||||||
|
|
||||||
use serde::de::{self, Deserialize, Deserializer};
|
use serde::de::{self, Deserialize, Deserializer};
|
||||||
use serde::json::ser::escape_str;
|
use serde::json::ser::escape_str;
|
||||||
use serde::json;
|
use serde::json;
|
||||||
@@ -32,6 +25,7 @@ struct Http {
|
|||||||
request_uri: String,
|
request_uri: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||||
enum HttpProtocol {
|
enum HttpProtocol {
|
||||||
HTTP_PROTOCOL_UNKNOWN,
|
HTTP_PROTOCOL_UNKNOWN,
|
||||||
@@ -92,6 +86,7 @@ impl de::Deserialize for HttpProtocol {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||||
enum HttpMethod {
|
enum HttpMethod {
|
||||||
METHOD_UNKNOWN,
|
METHOD_UNKNOWN,
|
||||||
@@ -168,6 +163,7 @@ impl de::Deserialize for HttpMethod {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||||
enum CacheStatus {
|
enum CacheStatus {
|
||||||
CACHESTATUS_UNKNOWN,
|
CACHESTATUS_UNKNOWN,
|
||||||
@@ -238,6 +234,7 @@ struct Origin {
|
|||||||
protocol: OriginProtocol,
|
protocol: OriginProtocol,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||||
enum OriginProtocol {
|
enum OriginProtocol {
|
||||||
ORIGIN_PROTOCOL_UNKNOWN,
|
ORIGIN_PROTOCOL_UNKNOWN,
|
||||||
@@ -298,6 +295,7 @@ impl de::Deserialize for OriginProtocol {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||||
enum ZonePlan {
|
enum ZonePlan {
|
||||||
ZONEPLAN_UNKNOWN,
|
ZONEPLAN_UNKNOWN,
|
||||||
@@ -1018,12 +1016,20 @@ impl MyMemWriter0 {
|
|||||||
|
|
||||||
|
|
||||||
impl Write for MyMemWriter0 {
|
impl Write for MyMemWriter0 {
|
||||||
|
#[cfg(feature = "nightly")]
|
||||||
#[inline]
|
#[inline]
|
||||||
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
||||||
self.buf.push_all(buf);
|
self.buf.push_all(buf);
|
||||||
Ok(buf.len())
|
Ok(buf.len())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(feature = "nightly"))]
|
||||||
|
#[inline]
|
||||||
|
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
||||||
|
self.buf.extend(buf.iter().cloned());
|
||||||
|
Ok(buf.len())
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn flush(&mut self) -> io::Result<()> {
|
fn flush(&mut self) -> io::Result<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@@ -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::fmt::Debug;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use test::Bencher;
|
use test::Bencher;
|
||||||
|
|
||||||
use rustc_serialize::{Decoder, Decodable};
|
use rustc_serialize::{Decoder, Decodable};
|
||||||
|
|
||||||
|
use serde;
|
||||||
use serde::de::{Deserializer, Deserialize};
|
use serde::de::{Deserializer, Deserialize};
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -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 std::collections::HashMap;
|
||||||
use test::Bencher;
|
use test::Bencher;
|
||||||
|
|
||||||
use rustc_serialize::{Decoder, Decodable};
|
use rustc_serialize::{Decoder, Decodable};
|
||||||
|
|
||||||
|
use serde;
|
||||||
use serde::de::{Deserializer, Deserialize};
|
use serde::de::{Deserializer, Deserialize};
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -34,8 +28,6 @@ pub struct Outer {
|
|||||||
pub enum Error {
|
pub enum Error {
|
||||||
EndOfStream,
|
EndOfStream,
|
||||||
SyntaxError,
|
SyntaxError,
|
||||||
UnexpectedName,
|
|
||||||
ConversionError,
|
|
||||||
MissingField,
|
MissingField,
|
||||||
OtherError,
|
OtherError,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 std::fmt::Debug;
|
||||||
use test::Bencher;
|
use test::Bencher;
|
||||||
|
|
||||||
use rustc_serialize::{Decoder, Decodable};
|
use rustc_serialize::{Decoder, Decodable};
|
||||||
|
|
||||||
|
use serde;
|
||||||
use serde::de::{Deserializer, Deserialize};
|
use serde::de::{Deserializer, Deserialize};
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#![feature(custom_attribute, custom_derive, plugin, test)]
|
||||||
|
#![plugin(serde_macros)]
|
||||||
|
|
||||||
|
extern crate serde;
|
||||||
|
extern crate test;
|
||||||
|
|
||||||
|
include!("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;
|
||||||
@@ -1,9 +1,3 @@
|
|||||||
#![feature(custom_attribute, custom_derive, plugin, test)]
|
|
||||||
#![plugin(serde_macros)]
|
|
||||||
|
|
||||||
extern crate test;
|
|
||||||
extern crate serde;
|
|
||||||
|
|
||||||
use serde::json;
|
use serde::json;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
#![feature(custom_derive, plugin, test)]
|
use serde;
|
||||||
#![plugin(serde_macros)]
|
|
||||||
|
|
||||||
extern crate test;
|
|
||||||
extern crate serde;
|
|
||||||
|
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use serde::bytes::{ByteBuf, Bytes};
|
use serde::bytes::{ByteBuf, Bytes};
|
||||||
use serde::json;
|
use serde::json;
|
||||||
|
|||||||
@@ -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::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
|
||||||
use std::iter;
|
use std::iter;
|
||||||
use std::vec;
|
use std::vec;
|
||||||
|
|||||||
@@ -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::fmt::Debug;
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
extern crate serde;
|
|
||||||
|
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
use serde::json::value::Value;
|
use serde::json::value::Value;
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
#![feature(custom_derive, plugin)]
|
|
||||||
#![plugin(serde_macros)]
|
|
||||||
|
|
||||||
extern crate serde;
|
|
||||||
|
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
use serde::json::{self, Value};
|
use serde::json::{self, Value};
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,3 @@
|
|||||||
#![feature(custom_derive, plugin, test)]
|
|
||||||
#![plugin(serde_macros)]
|
|
||||||
|
|
||||||
extern crate test;
|
|
||||||
extern crate serde;
|
|
||||||
|
|
||||||
use std::vec;
|
use std::vec;
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user