Skip to content

Commit 5bd806c

Browse files
Merge pull request #3 from bytesonus/develop
Test cargo test with parallel reads and writes
2 parents e1860d2 + 0cea5e8 commit 5bd806c

File tree

3 files changed

+49
-26
lines changed

3 files changed

+49
-26
lines changed

.github/workflows/build.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,15 @@ jobs:
7171
tagFormat: v${version}-beta
7272
id: version_check
7373

74+
- name: Find and Replace
75+
uses: shitiomatic/str-replace@master
76+
with:
77+
find: "${version}"
78+
replace: "${version}-beta"
79+
include: "Cargo.toml"
80+
7481
- name: Publish Release
7582
uses: actions-rs/cargo@v1
7683
with:
77-
command: sed -i -e 's/${version}/${version}-beta/g' /tmp/file.txt && cargo publish --token ${{ secrets.CRATES_IO_TOKEN }} --allow-dirty --dry-run
84+
command: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }} --allow-dirty --dry-run
7885

.github/workflows/pr.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,11 @@ jobs:
5757
args: --release --all
5858

5959
# - name: Cargo test
60+
# if: matrix.rust == 'stable'
6061
# uses: actions-rs/cargo@v1
6162
# with:
6263
# command: test
63-
# args: --release --all
64+
# args: --release --all -- --test-threads=1
6465

6566
- name: Cargo fmt
6667
uses: actions-rs/cargo@v1

tests/connection/unix_socket_connection.rs

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use async_std::{fs::remove_file, io::Result, os::unix::net::UnixListener, prelude::*, task};
2+
use futures::future;
23
use futures_util::sink::SinkExt;
34
use juno::connection::{BaseConnection, UnixSocketConnection};
45

@@ -21,8 +22,9 @@ async fn should_connect_async() -> Result<()> {
2122
let mut incoming = socket.incoming();
2223
let connection_listener = incoming.next();
2324

24-
let (..) = futures::future::join(connection_listener, connection.setup_connection()).await;
25+
let (..) = future::join(connection_listener, connection.setup_connection()).await;
2526

27+
drop(socket);
2628
remove_file("./temp-1.sock").await?;
2729

2830
Ok(())
@@ -42,16 +44,19 @@ async fn should_connect_and_send_data_async() -> Result<()> {
4244
let mut incoming = socket.incoming();
4345
let connection_listener = incoming.next();
4446

45-
let (stream, _) =
46-
futures::future::join(connection_listener, connection.setup_connection()).await;
47-
48-
connection.send(vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0]).await;
47+
let (stream, _) = future::join(connection_listener, connection.setup_connection()).await;
4948

5049
let mut read_buffer = [0; 10];
51-
stream.unwrap()?.read(&mut read_buffer).await?;
50+
let (_, read_result) = futures::future::join(
51+
connection.send(vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0]),
52+
stream.unwrap()?.read(&mut read_buffer),
53+
)
54+
.await;
55+
read_result?;
5256

5357
assert_eq!(read_buffer.to_vec(), vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0]);
5458

59+
drop(socket);
5560
remove_file("./temp-2.sock").await?;
5661

5762
Ok(())
@@ -71,16 +76,21 @@ async fn should_connect_and_read_data_async() -> Result<()> {
7176
let mut incoming = socket.incoming();
7277
let connection_listener = incoming.next();
7378

74-
let (stream, _) =
75-
futures::future::join(connection_listener, connection.setup_connection()).await;
79+
let (stream, _) = future::join(connection_listener, connection.setup_connection()).await;
80+
81+
let write_data = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0, b'\n'];
82+
let mut stream = stream.unwrap()?;
7683

77-
let write_data = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
78-
stream.unwrap()?.write_all(write_data.as_slice()).await?;
84+
let write_result = stream.write_all(write_data.as_slice()).await;
85+
write_result?;
7986

80-
let read_buffer = connection.get_data_receiver().next().await.unwrap();
87+
let mut receiver = connection.get_data_receiver();
88+
let read_result = receiver.next().await;
89+
let read_buffer = read_result.unwrap();
8190

8291
assert_eq!(read_buffer, vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0]);
8392

93+
drop(socket);
8494
remove_file("./temp-3.sock").await?;
8595

8696
Ok(())
@@ -100,20 +110,22 @@ async fn should_connect_and_send_data_from_cloned_sender_async() -> Result<()> {
100110
let mut incoming = socket.incoming();
101111
let connection_listener = incoming.next();
102112

103-
let (stream, _) =
104-
futures::future::join(connection_listener, connection.setup_connection()).await;
105-
106-
connection
107-
.clone_write_sender()
108-
.send(vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
109-
.await
110-
.unwrap();
113+
let (stream, _) = future::join(connection_listener, connection.setup_connection()).await;
111114

112115
let mut read_buffer = [0; 10];
113-
stream.unwrap()?.read(&mut read_buffer).await?;
116+
let (write_result, read_result) = futures::future::join(
117+
connection
118+
.clone_write_sender()
119+
.send(vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0]),
120+
stream.unwrap()?.read(&mut read_buffer),
121+
)
122+
.await;
123+
write_result.unwrap();
124+
read_result?;
114125

115126
assert_eq!(read_buffer.to_vec(), vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 0]);
116127

128+
drop(socket);
117129
remove_file("./temp-4.sock").await?;
118130

119131
Ok(())
@@ -147,6 +159,7 @@ fn should_clone_write_sender_without_setup_and_panic() {
147159
connection.clone_write_sender();
148160
}
149161

162+
/*
150163
#[test]
151164
#[should_panic]
152165
fn should_setup_connection_twice_and_panic() {
@@ -165,10 +178,12 @@ async fn should_setup_connection_twice_and_panic_async() -> Result<()> {
165178
// Listen for unix socket connections
166179
let socket = UnixListener::bind("./temp-5.sock").await?;
167180
let mut incoming = socket.incoming();
168-
let _ = incoming.next();
169-
170-
connection.setup_connection().await.unwrap();
171-
connection.setup_connection().await.unwrap();
181+
let (_stream, result) = future::join(incoming.next(), connection.setup_connection()).await;
182+
result.unwrap();
183+
let (_, result) = future::join(incoming.next(), connection.setup_connection()).await;
184+
result.unwrap();
185+
drop(socket);
172186
173187
Ok(())
174188
}
189+
*/

0 commit comments

Comments
 (0)