Skip to content

Commit bace498

Browse files
committed
e2e-tests:rust-server:fix
1 parent 125f55b commit bace498

3 files changed

Lines changed: 37 additions & 42 deletions

File tree

e2e-tests/rust-server/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ libgql = { path = "../../rust/libgql" }
88
serde = { version = "1.0.228", features = ["derive", "serde_derive"], default-features = false }
99
libgqlcodegen = { path = "../../rust/gqlcodegen" }
1010
hyper = { version = "1", features = ["server", "http1"], default-features = false }
11-
tokio = { version = "1", features = ["net", "macros"], default-features = false }
11+
tokio = { version = "1", features = ["net", "macros", "rt-multi-thread"], default-features = false }
1212
http-body-util = "0.1"
1313
hyper-util = { version = "0.1", features = ["server", "http1", "tokio"], default-features = false }
1414
serde_json = { version = "1.0.149", default-features = false }

e2e-tests/rust-server/src/api/state.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
pub struct APIState {
2-
pub graphql_registry: libgql::parsers::schema::type_registry::TypeRegistry,
2+
pub graphql_registry: libgql::parsers::schema::server::type_registry::TypeRegistry,
33
pub graphql_resolvers_map:
44
libgql::executor::Resolvers<'static, super::scalar::Scalar, super::context::Context>,
55
pub graphql_parse_registry: libgql::executor::HashMapRegistry<super::scalar::Scalar>,

e2e-tests/rust-server/src/main.rs

Lines changed: 35 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,48 +4,43 @@ mod api;
44

55
const GRAPHQL_SERVER_SCHEMA: &str = include_str!("../../graphql/server-schema.json");
66

7-
#[tokio::main(flavor = "current_thread")]
7+
#[tokio::main]
88
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
9-
let local = tokio::task::LocalSet::new();
10-
local
11-
.run_until(async {
12-
let port = std::env::var("PORT").unwrap().parse().unwrap();
13-
let addr = std::net::SocketAddr::from(([0, 0, 0, 0], port));
14-
let listener = tokio::net::TcpListener::bind(addr).await?;
15-
let state = Arc::new(api::state::APIState {
16-
graphql_resolvers_map: api::generated::create_resolvers_map(),
17-
graphql_parse_registry: api::generated::create_parse_registry(),
18-
graphql_registry: {
19-
let mut registry = libgql::parsers::schema::type_registry::TypeRegistry::new();
20-
libgql::json::parsers::schema::parse_server_schema(
21-
&mut registry,
22-
serde_json::from_str::<serde_json::Value>(GRAPHQL_SERVER_SCHEMA).unwrap(),
23-
)
24-
.unwrap();
25-
registry
26-
},
27-
});
28-
loop {
29-
let (stream, _) = listener.accept().await?;
9+
let port = std::env::var("PORT").unwrap().parse().unwrap();
10+
let addr = std::net::SocketAddr::from(([0, 0, 0, 0], port));
11+
let listener = tokio::net::TcpListener::bind(addr).await?;
12+
let state = Arc::new(api::state::APIState {
13+
graphql_resolvers_map: api::generated::create_resolvers_map(),
14+
graphql_parse_registry: api::generated::create_parse_registry(),
15+
graphql_registry: {
16+
let mut registry = libgql::parsers::schema::server::type_registry::TypeRegistry::new();
17+
libgql::json::parsers::schema::parse_server_schema(
18+
&mut registry,
19+
serde_json::from_str::<serde_json::Value>(GRAPHQL_SERVER_SCHEMA).unwrap(),
20+
)
21+
.unwrap();
22+
registry
23+
},
24+
});
25+
loop {
26+
let (stream, _) = listener.accept().await?;
3027

31-
let io = hyper_util::rt::TokioIo::new(stream);
32-
let local_state = state.clone();
28+
let io = hyper_util::rt::TokioIo::new(stream);
29+
let local_state = state.clone();
3330

34-
tokio::task::spawn_local(async move {
35-
let s = local_state;
36-
if let Err(err) = hyper::server::conn::http1::Builder::new()
37-
.serve_connection(
38-
io,
39-
hyper::service::service_fn(async |request| {
40-
api::root_handler(&s, request).await
41-
}),
42-
)
43-
.await
44-
{
45-
eprintln!("Error serving connection: {:?}", err);
46-
}
47-
});
31+
tokio::task::spawn(async move {
32+
let s = local_state;
33+
if let Err(err) = hyper::server::conn::http1::Builder::new()
34+
.serve_connection(
35+
io,
36+
hyper::service::service_fn(async |request| {
37+
api::root_handler(&s, request).await
38+
}),
39+
)
40+
.await
41+
{
42+
eprintln!("Error serving connection: {:?}", err);
4843
}
49-
})
50-
.await
44+
});
45+
}
5146
}

0 commit comments

Comments
 (0)