juniper/src/tests/bench.rs
2016-09-11 18:41:29 +02:00

125 lines
2.1 KiB
Rust

use test::Bencher;
use std::collections::{HashMap};
use schema::model::RootNode;
use tests::model::Database;
#[bench]
fn query_type_name(b: &mut Bencher) {
let database = Database::new();
let schema = RootNode::new(&database, ());
let doc = r#"
query IntrospectionQueryTypeQuery {
__schema {
queryType {
name
}
}
}"#;
b.iter(|| ::execute(doc, None, &schema, &HashMap::new(), &database));
}
#[bench]
fn introspection_query(b: &mut Bencher) {
let database = Database::new();
let schema = RootNode::new(&database, ());
let doc = r#"
query IntrospectionQuery {
__schema {
queryType { name }
mutationType { name }
subscriptionType { name }
types {
...FullType
}
directives {
name
description
locations
args {
...InputValue
}
}
}
}
fragment FullType on __Type {
kind
name
description
fields(includeDeprecated: true) {
name
description
args {
...InputValue
}
type {
...TypeRef
}
isDeprecated
deprecationReason
}
inputFields {
...InputValue
}
interfaces {
...TypeRef
}
enumValues(includeDeprecated: true) {
name
description
isDeprecated
deprecationReason
}
possibleTypes {
...TypeRef
}
}
fragment InputValue on __InputValue {
name
description
type { ...TypeRef }
defaultValue
}
fragment TypeRef on __Type {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
}
}
}
}
}
}
}
}
"#;
b.iter(|| ::execute(doc, None, &schema, &HashMap::new(), &database));
}