@@ -11,6 +11,19 @@ use tokio::time::{sleep, Duration, Instant};
11
11
12
12
use futures:: future:: join_all;
13
13
14
+ /// Returns config with fast timeouts.
15
+ fn get_fast_config ( ) -> BPConConfig {
16
+ BPConConfig {
17
+ launch1a_timeout : Duration :: from_millis ( 0 ) ,
18
+ launch1b_timeout : Duration :: from_millis ( 50 ) ,
19
+ launch2a_timeout : Duration :: from_millis ( 100 ) ,
20
+ launch2av_timeout : Duration :: from_millis ( 150 ) ,
21
+ launch2b_timeout : Duration :: from_millis ( 200 ) ,
22
+ finalize_timeout : Duration :: from_millis ( 250 ) ,
23
+ ..Default :: default ( )
24
+ }
25
+ }
26
+
14
27
/// Here each party/receiver/sender shall correspond at equal indexes.
15
28
type PartiesWithChannels = (
16
29
Vec < MockParty > ,
@@ -81,8 +94,8 @@ fn propagate_p2p(
81
94
let messages = collect_messages ( receivers. as_mut_slice ( ) ) ;
82
95
broadcast_messages ( messages, & senders) ;
83
96
84
- // Delay to simulate network latency and reduce processor load.
85
- sleep ( Duration :: from_millis ( 100 ) ) . await ;
97
+ // Reduce processor load.
98
+ sleep ( Duration :: from_millis ( 1 ) ) . await ;
86
99
}
87
100
} )
88
101
}
@@ -152,7 +165,7 @@ async fn run_ballot_faulty_party(
152
165
153
166
#[ tokio:: test]
154
167
async fn test_ballot_happy_case ( ) {
155
- let ( parties, receivers, senders) = create_parties ( BPConConfig :: default ( ) ) ;
168
+ let ( parties, receivers, senders) = create_parties ( get_fast_config ( ) ) ;
156
169
let ballot_tasks = launch_parties ( parties) ;
157
170
let p2p_task = propagate_p2p ( receivers, senders) ;
158
171
let results = await_results ( ballot_tasks) . await ;
@@ -163,7 +176,7 @@ async fn test_ballot_happy_case() {
163
176
164
177
#[ tokio:: test]
165
178
async fn test_ballot_faulty_party_common ( ) {
166
- let parties = create_parties ( BPConConfig :: default ( ) ) ;
179
+ let parties = create_parties ( get_fast_config ( ) ) ;
167
180
let elector = DefaultLeaderElector :: new ( ) ;
168
181
let leader = elector. elect_leader ( & parties. 0 [ 0 ] ) . unwrap ( ) ;
169
182
let faulty_ids: Vec < usize > = vec ! [ 3 ] ;
@@ -180,7 +193,7 @@ async fn test_ballot_faulty_party_common() {
180
193
181
194
#[ tokio:: test]
182
195
async fn test_ballot_faulty_party_leader ( ) {
183
- let parties = create_parties ( BPConConfig :: default ( ) ) ;
196
+ let parties = create_parties ( get_fast_config ( ) ) ;
184
197
let elector = DefaultLeaderElector :: new ( ) ;
185
198
let leader = elector. elect_leader ( & parties. 0 [ 0 ] ) . unwrap ( ) ;
186
199
let faulty_ids = vec ! [ leader as usize ] ;
@@ -223,7 +236,7 @@ async fn test_ballot_malicious_party() {
223
236
// actors would be able to DDoS ballot, bloating all the channel with malicious ones.
224
237
// For this test to pass, we will send malicious messages once in a while.
225
238
let mut last_malicious_message_time = Instant :: now ( ) ;
226
- let malicious_message_interval = Duration :: from_secs ( 3 ) ;
239
+ let malicious_message_interval = Duration :: from_millis ( 100 ) ;
227
240
loop {
228
241
// Collect all messages first.
229
242
let mut messages: Vec < _ > = receivers
0 commit comments