Skip to content

Commit 771f6a2

Browse files
committed
fix dual target build
1 parent 2f996f7 commit 771f6a2

File tree

7 files changed

+292
-261
lines changed

7 files changed

+292
-261
lines changed

cmd/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "cmd"
3-
version = "0.1.0"
3+
version = "0.1.1"
44
description = "continuous test"
55
repository = "https://github.com/basjoofan/core"
66
license = "MIT OR Apache-2.0"

lib/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lib"
3-
version = "0.1.0"
3+
version = "0.1.1"
44
description = "basjoofan library"
55
repository = "https://github.com/basjoofan/core"
66
license = "MIT OR Apache-2.0"
@@ -15,12 +15,12 @@ regex = "1.12.2"
1515
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
1616
tokio = { version = "1.48.0", features = ["net", "io-util", "time", "fs"] }
1717
tokio-rustls = { version = "0.26.4", default-features = false, features = ["tls12", "ring"] }
18-
rustls-platform-verifier = { version = "0.6.2" }
18+
rustls-platform-verifier = "0.6.2"
1919
rand = { version = "0.9.2", default-features = false, features = ["thread_rng"] }
2020

2121
[target.'cfg(target_arch = "wasm32")'.dependencies]
22-
wasm-bindgen = { version = "0.2.106" }
23-
wasm-bindgen-futures = { version = "0.4.56" }
22+
wasm-bindgen = "0.2.106"
23+
wasm-bindgen-futures = "0.4.56"
2424
js-sys = { version = "0.3.83" }
2525
web-sys = { version = "0.3.83", features = [
2626
"Headers",

lib/src/http/univ/client.rs

Lines changed: 88 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -52,98 +52,102 @@ impl Client {
5252
}
5353
}
5454

55-
#[tokio::test]
56-
async fn test_send_message_get() {
57-
crate::tests::start_server(30001).await;
58-
let message = r#"
55+
#[cfg(test)]
56+
pub mod tests {
57+
use super::Client;
58+
59+
#[tokio::test]
60+
async fn test_send_message_get() {
61+
crate::tests::start_server(30001).await;
62+
let message = r#"
5963
GET http://127.0.0.1:30001/get
6064
Host: 127.0.0.1"#;
61-
let client = Client::new();
62-
let (request, response, time, error) = client.send(message).await;
63-
assert_eq!("GET", request.method.as_ref());
64-
assert_eq!(200, response.status);
65-
assert_eq!(
66-
time.total,
67-
time.resolve + time.connect + time.write + time.delay + time.read
68-
);
69-
println!("error: {error}");
70-
println!("time.total: {:?}", time.total);
71-
println!("response.body:{:?}", response.body);
72-
}
65+
let client = Client::new();
66+
let (request, response, time, error) = client.send(message).await;
67+
assert_eq!("GET", request.method.as_ref());
68+
assert_eq!(200, response.status);
69+
assert_eq!(
70+
time.total,
71+
time.resolve + time.connect + time.write + time.delay + time.read
72+
);
73+
println!("error: {error}");
74+
println!("time.total: {:?}", time.total);
75+
println!("response.body:{:?}", response.body);
76+
}
7377

74-
#[tokio::test]
75-
async fn test_send_message_post() {
76-
crate::tests::start_server(30002).await;
77-
let message = r#"
78+
#[tokio::test]
79+
async fn test_send_message_post() {
80+
crate::tests::start_server(30002).await;
81+
let message = r#"
7882
POST http://127.0.0.1:30002/text
7983
Host: 127.0.0.1
8084
Accept-Encoding: gzip, deflate"#;
81-
let client = Client::new();
82-
let (request, response, time, error) = client.send(message).await;
83-
println!("error: {error}");
84-
println!("request: {request:?}");
85-
assert_eq!("POST", request.method.as_ref());
86-
assert_eq!(200, response.status);
87-
assert_eq!(
88-
time.total,
89-
time.resolve + time.connect + time.write + time.delay + time.read
90-
);
91-
println!("{:?}", time.total);
92-
println!("{:?}", response.body);
93-
}
85+
let client = Client::new();
86+
let (request, response, time, error) = client.send(message).await;
87+
println!("error: {error}");
88+
println!("request: {request:?}");
89+
assert_eq!("POST", request.method.as_ref());
90+
assert_eq!(200, response.status);
91+
assert_eq!(
92+
time.total,
93+
time.resolve + time.connect + time.write + time.delay + time.read
94+
);
95+
println!("{:?}", time.total);
96+
println!("{:?}", response.body);
97+
}
9498

95-
#[tokio::test]
96-
async fn test_send_message_post_form() {
97-
crate::tests::start_server(30003).await;
98-
let message = r#"
99+
#[tokio::test]
100+
async fn test_send_message_post_form() {
101+
crate::tests::start_server(30003).await;
102+
let message = r#"
99103
POST http://127.0.0.1:30003/form
100104
Host: 127.0.0.1
101105
Content-Type: application/x-www-form-urlencoded
102106
103107
a: b"#;
104-
let client = Client::new();
105-
let (request, response, time, error) = client.send(message).await;
106-
println!("error: {error}");
107-
println!("request: {request:?}");
108-
assert_eq!("POST", request.method.as_ref());
109-
assert_eq!(200, response.status);
110-
assert_eq!(
111-
time.total,
112-
time.resolve + time.connect + time.write + time.delay + time.read
113-
);
114-
println!("{:?}", time.total);
115-
println!("{:?}", response.body);
116-
}
108+
let client = Client::new();
109+
let (request, response, time, error) = client.send(message).await;
110+
println!("error: {error}");
111+
println!("request: {request:?}");
112+
assert_eq!("POST", request.method.as_ref());
113+
assert_eq!(200, response.status);
114+
assert_eq!(
115+
time.total,
116+
time.resolve + time.connect + time.write + time.delay + time.read
117+
);
118+
println!("{:?}", time.total);
119+
println!("{:?}", response.body);
120+
}
117121

118-
#[tokio::test]
119-
async fn test_send_message_post_multipart() {
120-
crate::tests::start_server(30004).await;
121-
let message = r#"
122+
#[tokio::test]
123+
async fn test_send_message_post_multipart() {
124+
crate::tests::start_server(30004).await;
125+
let message = r#"
122126
POST http://127.0.0.1:30004/multipart
123127
Host: 127.0.0.1
124128
Content-Type: multipart/form-data
125129
126130
a: b
127131
f: @src/lib.rs"#;
128-
let client = Client::new();
129-
let (request, response, time, error) = client.send(message).await;
130-
println!("error: {error}");
131-
println!("request: {request:?}");
132-
println!("response: {response:?}");
133-
assert_eq!("POST", request.method.as_ref());
134-
assert_eq!(200, response.status);
135-
assert_eq!(
136-
time.total,
137-
time.resolve + time.connect + time.write + time.delay + time.read
138-
);
139-
println!("{:?}", time.total);
140-
println!("{:?}", response.body);
141-
}
132+
let client = Client::new();
133+
let (request, response, time, error) = client.send(message).await;
134+
println!("error: {error}");
135+
println!("request: {request:?}");
136+
println!("response: {response:?}");
137+
assert_eq!("POST", request.method.as_ref());
138+
assert_eq!(200, response.status);
139+
assert_eq!(
140+
time.total,
141+
time.resolve + time.connect + time.write + time.delay + time.read
142+
);
143+
println!("{:?}", time.total);
144+
println!("{:?}", response.body);
145+
}
142146

143-
#[tokio::test]
144-
async fn test_send_message_post_json() {
145-
crate::tests::start_server(30005).await;
146-
let message = r#"
147+
#[tokio::test]
148+
async fn test_send_message_post_json() {
149+
crate::tests::start_server(30005).await;
150+
let message = r#"
147151
POST http://127.0.0.1:30005/json
148152
Host: 127.0.0.1
149153
Content-Type: application/json
@@ -161,15 +165,16 @@ async fn test_send_message_post_json() {
161165
]
162166
}
163167
"#;
164-
let client = Client::new();
165-
let (request, response, time, error) = client.send(message).await;
166-
println!("error: {error}");
167-
assert_eq!("POST", request.method.as_ref());
168-
assert_eq!(200, response.status);
169-
assert_eq!(
170-
time.total,
171-
time.resolve + time.connect + time.write + time.delay + time.read
172-
);
173-
println!("{:?}", time.total);
174-
println!("{:?}", response.body);
168+
let client = Client::new();
169+
let (request, response, time, error) = client.send(message).await;
170+
println!("error: {error}");
171+
assert_eq!("POST", request.method.as_ref());
172+
assert_eq!(200, response.status);
173+
assert_eq!(
174+
time.total,
175+
time.resolve + time.connect + time.write + time.delay + time.read
176+
);
177+
println!("{:?}", time.total);
178+
println!("{:?}", response.body);
179+
}
175180
}

lib/src/http/univ/request.rs

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -151,30 +151,36 @@ impl Request {
151151
}
152152
}
153153

154-
#[tokio::test]
155-
async fn test_from_message_get() {
156-
let message = r#"
154+
#[cfg(test)]
155+
pub mod tests {
156+
use super::AsyncWriteExt;
157+
use super::Request;
158+
159+
#[tokio::test]
160+
async fn test_from_message_get() {
161+
let message = r#"
157162
GET http://domain/get
158163
Host: domain"#;
159-
let (mut request, content) = Request::from(message).await.unwrap();
160-
let mut writer = tokio::io::stdout();
161-
request.write(&mut writer, content).await.unwrap();
162-
writer.write_all("\r\n".as_bytes()).await.unwrap();
163-
assert_eq!("GET", request.method.as_ref());
164-
}
164+
let (mut request, content) = Request::from(message).await.unwrap();
165+
let mut writer = tokio::io::stdout();
166+
request.write(&mut writer, content).await.unwrap();
167+
writer.write_all("\r\n".as_bytes()).await.unwrap();
168+
assert_eq!("GET", request.method.as_ref());
169+
}
165170

166-
#[tokio::test]
167-
async fn test_from_message_post_multipart() {
168-
let message = r#"
171+
#[tokio::test]
172+
async fn test_from_message_post_multipart() {
173+
let message = r#"
169174
POST https://domain/post
170175
Host: domain
171176
Content-Type: multipart/form-data
172177
173178
a: b
174179
f: @src/lib.rs"#;
175-
let (mut request, content) = Request::from(message).await.unwrap();
176-
let mut writer = tokio::io::stdout();
177-
request.write(&mut writer, content).await.unwrap();
178-
writer.write_all("\r\n".as_bytes()).await.unwrap();
179-
assert_eq!("POST", request.method.as_ref());
180+
let (mut request, content) = Request::from(message).await.unwrap();
181+
let mut writer = tokio::io::stdout();
182+
request.write(&mut writer, content).await.unwrap();
183+
writer.write_all("\r\n".as_bytes()).await.unwrap();
184+
assert_eq!("POST", request.method.as_ref());
185+
}
180186
}

lib/src/http/univ/response.rs

Lines changed: 47 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,14 @@ fn parse<T: std::str::FromStr + std::default::Default>(str: Option<&str>) -> T {
6969
}
7070
}
7171

72-
#[tokio::test]
73-
async fn test_from_message_read_exact() {
74-
let message = r#"HTTP/1.1 200 OK
72+
#[cfg(test)]
73+
pub mod tests {
74+
use super::Response;
75+
use super::Stream;
76+
77+
#[tokio::test]
78+
async fn test_from_message_read_exact() {
79+
let message = r#"HTTP/1.1 200 OK
7580
Date: Sun, 17 Feb 2025 07:22:38 GMT
7681
Content-Type: application/json
7782
Content-Length: 30
@@ -84,28 +89,28 @@ Access-Control-Allow-Credentials: true
8489
"origin": "122.9.3.166"
8590
}
8691
"#;
87-
let stream = Stream::Mock(std::io::Cursor::new(message.as_bytes().to_owned()));
88-
let (mut reader, _) = tokio::io::split(stream);
89-
let response = Response::from(&mut reader, None::<Box<dyn FnMut()>>)
90-
.await
91-
.unwrap();
92-
assert_eq!(200, response.status);
93-
assert_eq!(7, response.headers.len());
94-
assert_eq!("{\n \"origin\": \"122.9.3.166\"\n}\n", response.body);
95-
assert_eq!(
96-
Some(&super::super::Value::Map(
97-
std::collections::HashMap::from_iter(vec![(
98-
String::from("origin"),
99-
super::super::Value::String(String::from("122.9.3.166"))
100-
)])
101-
)),
102-
response.to_map().get("json")
103-
)
104-
}
92+
let stream = Stream::Mock(std::io::Cursor::new(message.as_bytes().to_owned()));
93+
let (mut reader, _) = tokio::io::split(stream);
94+
let response = Response::from(&mut reader, None::<Box<dyn FnMut()>>)
95+
.await
96+
.unwrap();
97+
assert_eq!(200, response.status);
98+
assert_eq!(7, response.headers.len());
99+
assert_eq!("{\n \"origin\": \"122.9.3.166\"\n}\n", response.body);
100+
assert_eq!(
101+
Some(&crate::Value::Map(std::collections::HashMap::from_iter(
102+
vec![(
103+
String::from("origin"),
104+
crate::Value::String(String::from("122.9.3.166"))
105+
)]
106+
))),
107+
response.to_map().get("json")
108+
)
109+
}
105110

106-
#[tokio::test]
107-
async fn test_from_message_read_to_end() {
108-
let message = r#"HTTP/1.1 200 OK
111+
#[tokio::test]
112+
async fn test_from_message_read_to_end() {
113+
let message = r#"HTTP/1.1 200 OK
109114
Date: Sun, 17 Feb 2025 07:22:38 GMT
110115
Content-Type: application/json
111116
Content-Length: 3a
@@ -118,21 +123,22 @@ Access-Control-Allow-Credentials: true
118123
"origin": "122.9.3.166"
119124
}
120125
"#;
121-
let stream = Stream::Mock(std::io::Cursor::new(message.as_bytes().to_owned()));
122-
let (mut reader, _) = tokio::io::split(stream);
123-
let response = Response::from(&mut reader, None::<Box<dyn FnMut()>>)
124-
.await
125-
.unwrap();
126-
assert_eq!(200, response.status);
127-
assert_eq!(7, response.headers.len());
128-
assert_eq!("{\n \"origin\": \"122.9.3.166\"\n}\n", response.body);
129-
assert_eq!(
130-
Some(&super::super::Value::Map(
131-
std::collections::HashMap::from_iter(vec![(
132-
String::from("origin"),
133-
super::super::Value::String(String::from("122.9.3.166"))
134-
)])
135-
)),
136-
response.to_map().get("json")
137-
)
126+
let stream = Stream::Mock(std::io::Cursor::new(message.as_bytes().to_owned()));
127+
let (mut reader, _) = tokio::io::split(stream);
128+
let response = Response::from(&mut reader, None::<Box<dyn FnMut()>>)
129+
.await
130+
.unwrap();
131+
assert_eq!(200, response.status);
132+
assert_eq!(7, response.headers.len());
133+
assert_eq!("{\n \"origin\": \"122.9.3.166\"\n}\n", response.body);
134+
assert_eq!(
135+
Some(&crate::Value::Map(std::collections::HashMap::from_iter(
136+
vec![(
137+
String::from("origin"),
138+
crate::Value::String(String::from("122.9.3.166"))
139+
)]
140+
))),
141+
response.to_map().get("json")
142+
)
143+
}
138144
}

0 commit comments

Comments
 (0)