Skip to content

Commit bdec124

Browse files
committed
Unit and multinode tests pass
1 parent 814bdef commit bdec124

File tree

16 files changed

+497
-458
lines changed

16 files changed

+497
-458
lines changed

multinode_integration_tests/tests/connection_termination_test.rs

Lines changed: 30 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,12 @@ fn reported_server_drop() {
8686
let (_, _, lcp) = mock_node
8787
.wait_for_package(&masquerader, Duration::from_secs(2))
8888
.unwrap();
89-
let (stream_key, return_route_id) =
90-
context_from_request_lcp(lcp, real_node.main_cryptde_null().unwrap(), &exit_cryptde);
89+
let stream_key = stream_key_from_request_lcp(lcp, &exit_cryptde);
9190

9291
mock_node
9392
.transmit_package(
9493
mock_node.port_list()[0],
95-
create_server_drop_report(&mock_node, &real_node, stream_key, return_route_id),
94+
create_server_drop_report(&mock_node, &real_node, stream_key),
9695
&masquerader,
9796
real_node.main_public_key(),
9897
real_node.socket_addr(PortSelector::First),
@@ -115,7 +114,7 @@ fn actual_server_drop() {
115114
let server_port = find_free_port();
116115
let mut server = real_node.make_server(server_port);
117116
let masquerader = JsonMasquerader::new();
118-
let (stream_key, return_route_id) = arbitrary_context();
117+
let stream_key = arbitrary_stream_key();
119118
let index: u64 = 0;
120119
request_server_payload(
121120
index,
@@ -125,7 +124,6 @@ fn actual_server_drop() {
125124
&mut server,
126125
&masquerader,
127126
stream_key,
128-
return_route_id,
129127
);
130128
let index: u64 = 1;
131129
request_server_payload(
@@ -136,7 +134,6 @@ fn actual_server_drop() {
136134
&mut server,
137135
&masquerader,
138136
stream_key,
139-
return_route_id,
140137
);
141138

142139
server.shutdown();
@@ -174,7 +171,6 @@ fn request_server_payload(
174171
server: &mut MASQNodeServer,
175172
masquerader: &JsonMasquerader,
176173
stream_key: StreamKey,
177-
return_route_id: u32,
178174
) {
179175
mock_node
180176
.transmit_package(
@@ -184,7 +180,6 @@ fn request_server_payload(
184180
&mock_node,
185181
&real_node,
186182
stream_key,
187-
return_route_id,
188183
&server,
189184
cluster.chain,
190185
),
@@ -212,7 +207,7 @@ fn reported_client_drop() {
212207
let server_port = find_free_port();
213208
let mut server = real_node.make_server(server_port);
214209
let masquerader = JsonMasquerader::new();
215-
let (stream_key, return_route_id) = arbitrary_context();
210+
let stream_key = arbitrary_stream_key();
216211
let index: u64 = 0;
217212
mock_node
218213
.transmit_package(
@@ -222,7 +217,6 @@ fn reported_client_drop() {
222217
&mock_node,
223218
&real_node,
224219
stream_key,
225-
return_route_id,
226220
&server,
227221
cluster.chain,
228222
),
@@ -240,7 +234,7 @@ fn reported_client_drop() {
240234
mock_node
241235
.transmit_package(
242236
mock_node.port_list()[0],
243-
create_client_drop_report(&mock_node, &real_node, stream_key, return_route_id),
237+
create_client_drop_report(&mock_node, &real_node, stream_key),
244238
&masquerader,
245239
real_node.main_public_key(),
246240
real_node.socket_addr(PortSelector::First),
@@ -322,40 +316,32 @@ fn full_neighbor(one: &mut NodeRecord, another: &mut NodeRecord) {
322316
.unwrap();
323317
}
324318

325-
fn context_from_request_lcp(
326-
lcp: LiveCoresPackage,
327-
originating_cryptde: &dyn CryptDE,
328-
exit_cryptde: &dyn CryptDE,
329-
) -> (StreamKey, u32) {
319+
fn stream_key_from_request_lcp(lcp: LiveCoresPackage, exit_cryptde: &dyn CryptDE) -> StreamKey {
330320
let payload = match decodex::<MessageType>(exit_cryptde, &lcp.payload).unwrap() {
331321
MessageType::ClientRequest(vd) => vd
332322
.extract(&node_lib::sub_lib::migrations::client_request_payload::MIGRATIONS)
333323
.unwrap(),
334324
mt => panic!("Unexpected: {:?}", mt),
335325
};
336326
let stream_key = payload.stream_key;
337-
let return_route_id = decodex::<u32>(originating_cryptde, &lcp.route.hops[6]).unwrap();
338-
(stream_key, return_route_id)
327+
stream_key
339328
}
340329

341-
fn arbitrary_context() -> (StreamKey, u32) {
342-
(
343-
StreamKey::make_meaningful_stream_key("arbitrary_context"),
344-
12345678,
345-
)
330+
fn arbitrary_stream_key() -> StreamKey {
331+
StreamKey::make_meaningful_stream_key("arbitrary_context")
346332
}
347333

348334
fn create_request_icp(
349335
index: u64,
350336
originating_node: &MASQMockNode,
351337
exit_node: &MASQRealNode,
352338
stream_key: StreamKey,
353-
return_route_id: u32,
354339
server: &MASQNodeServer,
355340
chain: Chain,
356341
) -> IncipientCoresPackage {
342+
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
357343
IncipientCoresPackage::new(
358-
originating_node.main_cryptde_null().unwrap(),
344+
originating_main_cryptde,
359345
Route::round_trip(
360346
RouteSegment::new(
361347
vec![
@@ -371,12 +357,12 @@ fn create_request_icp(
371357
],
372358
Component::ProxyServer,
373359
),
374-
originating_node.main_cryptde_null().unwrap(),
360+
originating_main_cryptde,
375361
originating_node.consuming_wallet(),
376-
return_route_id,
377362
Some(chain.rec().contract),
378363
)
379-
.unwrap(),
364+
.unwrap()
365+
.set_return_route_id(originating_main_cryptde, 0),
380366
MessageType::ClientRequest(VersionedData::new(
381367
&node_lib::sub_lib::migrations::client_request_payload::MIGRATIONS,
382368
&ClientRequestPayload_0v1 {
@@ -400,8 +386,9 @@ fn create_meaningless_icp(
400386
let socket_addr = SocketAddr::from_str("3.2.1.0:7654").unwrap();
401387
let stream_key =
402388
StreamKey::make_meaningful_stream_key("Chancellor on brink of second bailout for banks");
389+
let main_cryptde = originating_node.main_cryptde_null().unwrap();
403390
IncipientCoresPackage::new(
404-
originating_node.main_cryptde_null().unwrap(),
391+
main_cryptde,
405392
Route::round_trip(
406393
RouteSegment::new(
407394
vec![
@@ -417,9 +404,8 @@ fn create_meaningless_icp(
417404
],
418405
Component::ProxyServer,
419406
),
420-
originating_node.main_cryptde_null().unwrap(),
407+
main_cryptde,
421408
originating_node.consuming_wallet(),
422-
1357,
423409
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
424410
)
425411
.unwrap(),
@@ -428,7 +414,7 @@ fn create_meaningless_icp(
428414
&ClientRequestPayload_0v1 {
429415
stream_key,
430416
sequenced_packet: SequencedPacket::new(Vec::from(HTTP_REQUEST), 0, false),
431-
target_hostname: Some(format!("nowhere.com")),
417+
target_hostname: Some("nowhere.com".to_string()),
432418
target_port: socket_addr.port(),
433419
protocol: ProxyProtocol::HTTP,
434420
originator_public_key: originating_node.main_public_key().clone(),
@@ -443,8 +429,9 @@ fn create_server_drop_report(
443429
exit_node: &MASQMockNode,
444430
originating_node: &MASQRealNode,
445431
stream_key: StreamKey,
446-
return_route_id: u32,
447432
) -> IncipientCoresPackage {
433+
let exit_main_cryptde = exit_node.main_cryptde_null().unwrap();
434+
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
448435
let mut route = Route::round_trip(
449436
RouteSegment::new(
450437
vec![
@@ -460,15 +447,13 @@ fn create_server_drop_report(
460447
],
461448
Component::ProxyServer,
462449
),
463-
originating_node.main_cryptde_null().unwrap(),
450+
originating_main_cryptde,
464451
originating_node.consuming_wallet(),
465-
return_route_id,
466452
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
467453
)
468-
.unwrap();
469-
route
470-
.shift(originating_node.main_cryptde_null().unwrap())
471-
.unwrap();
454+
.unwrap()
455+
.set_return_route_id(originating_main_cryptde, 0);
456+
route.shift(originating_main_cryptde).unwrap();
472457
let payload = MessageType::ClientResponse(VersionedData::new(
473458
&node_lib::sub_lib::migrations::client_response_payload::MIGRATIONS,
474459
&ClientResponsePayload_0v1 {
@@ -478,7 +463,7 @@ fn create_server_drop_report(
478463
));
479464

480465
IncipientCoresPackage::new(
481-
exit_node.main_cryptde_null().unwrap(),
466+
exit_main_cryptde,
482467
route,
483468
payload,
484469
originating_node.alias_public_key(),
@@ -490,8 +475,8 @@ fn create_client_drop_report(
490475
originating_node: &MASQMockNode,
491476
exit_node: &MASQRealNode,
492477
stream_key: StreamKey,
493-
return_route_id: u32,
494478
) -> IncipientCoresPackage {
479+
let originating_main_cryptde = originating_node.main_cryptde_null().unwrap();
495480
let route = Route::round_trip(
496481
RouteSegment::new(
497482
vec![
@@ -507,12 +492,12 @@ fn create_client_drop_report(
507492
],
508493
Component::ProxyServer,
509494
),
510-
originating_node.main_cryptde_null().unwrap(),
495+
originating_main_cryptde,
511496
originating_node.consuming_wallet(),
512-
return_route_id,
513497
Some(TEST_DEFAULT_MULTINODE_CHAIN.rec().contract),
514498
)
515-
.unwrap();
499+
.unwrap()
500+
.set_return_route_id(originating_main_cryptde, 0);
516501
let payload = MessageType::ClientRequest(VersionedData::new(
517502
&node_lib::sub_lib::migrations::client_request_payload::MIGRATIONS,
518503
&ClientRequestPayload_0v1 {
@@ -526,7 +511,7 @@ fn create_client_drop_report(
526511
));
527512

528513
IncipientCoresPackage::new(
529-
originating_node.main_cryptde_null().unwrap(),
514+
originating_main_cryptde,
530515
route,
531516
payload,
532517
exit_node.main_public_key(),

multinode_integration_tests/tests/self_test.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use node_lib::sub_lib::dispatcher::Component;
1414
use node_lib::sub_lib::hopper::IncipientCoresPackage;
1515
use node_lib::sub_lib::route::Route;
1616
use node_lib::sub_lib::route::RouteSegment;
17+
use node_lib::sub_lib::stream_key::StreamKey;
1718
use node_lib::test_utils::{main_cryptde, make_meaningless_message_type, make_paying_wallet};
1819
use std::collections::HashSet;
1920
use std::io::ErrorKind;
@@ -66,6 +67,7 @@ fn server_relays_cores_package() {
6667
let masquerader = JsonMasquerader::new();
6768
let server = MASQCoresServer::new(cluster.chain);
6869
let cryptde = server.main_cryptde();
70+
let stream_key = StreamKey::make_meaningless_stream_key();
6971
let mut client = MASQCoresClient::new(server.local_addr(), cryptde);
7072
let mut route = Route::one_way(
7173
RouteSegment::new(
@@ -80,7 +82,7 @@ fn server_relays_cores_package() {
8082
let incipient = IncipientCoresPackage::new(
8183
cryptde,
8284
route.clone(),
83-
make_meaningless_message_type(),
85+
make_meaningless_message_type(stream_key),
8486
&cryptde.public_key(),
8587
)
8688
.unwrap();
@@ -97,7 +99,7 @@ fn server_relays_cores_package() {
9799

98100
route.shift(cryptde).unwrap();
99101
assert_eq!(expired.remaining_route, route);
100-
assert_eq!(expired.payload, make_meaningless_message_type());
102+
assert_eq!(expired.payload, make_meaningless_message_type(stream_key));
101103
}
102104

103105
#[test]
@@ -109,6 +111,7 @@ fn one_mock_node_talks_to_another() {
109111
let mock_node_1 = cluster.get_mock_node_by_name("mock_node_1").unwrap();
110112
let mock_node_2 = cluster.get_mock_node_by_name("mock_node_2").unwrap();
111113
let cryptde = main_cryptde();
114+
let stream_key = StreamKey::make_meaningless_stream_key();
112115
let route = Route::one_way(
113116
RouteSegment::new(
114117
vec![
@@ -125,7 +128,7 @@ fn one_mock_node_talks_to_another() {
125128
let incipient_cores_package = IncipientCoresPackage::new(
126129
cryptde,
127130
route,
128-
make_meaningless_message_type(),
131+
make_meaningless_message_type(stream_key),
129132
&mock_node_2.main_public_key(),
130133
)
131134
.unwrap();
@@ -154,7 +157,7 @@ fn one_mock_node_talks_to_another() {
154157
assert_eq!(package_to, mock_node_2.socket_addr(PortSelector::First));
155158
assert_eq!(
156159
expired_cores_package.payload,
157-
make_meaningless_message_type()
160+
make_meaningless_message_type(stream_key)
158161
);
159162
}
160163

node/src/hopper/consuming_service.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ mod tests {
138138
use crate::sub_lib::node_addr::NodeAddr;
139139
use crate::sub_lib::route::Route;
140140
use crate::sub_lib::route::RouteSegment;
141+
use crate::sub_lib::stream_key::StreamKey;
141142
use crate::test_utils::recorder::make_recorder;
142143
use crate::test_utils::recorder::peer_actors_builder;
143144
use crate::test_utils::{main_cryptde, make_meaningless_message_type, make_paying_wallet};
@@ -158,7 +159,7 @@ mod tests {
158159
main_cryptde(),
159160
&target_key,
160161
&target_node_addr,
161-
make_meaningless_message_type(),
162+
make_meaningless_message_type(StreamKey::make_meaningless_stream_key()),
162163
)
163164
.unwrap();
164165
let system = System::new("");
@@ -228,7 +229,7 @@ mod tests {
228229
Some(TEST_DEFAULT_CHAIN.rec().contract),
229230
)
230231
.unwrap();
231-
let payload = make_meaningless_message_type();
232+
let payload = make_meaningless_message_type(StreamKey::make_meaningless_stream_key());
232233
let incipient_cores_package =
233234
IncipientCoresPackage::new(cryptde, route.clone(), payload, &destination_key).unwrap();
234235
let system = System::new("converts_incipient_message_to_live_and_sends_to_dispatcher");
@@ -275,7 +276,7 @@ mod tests {
275276
Some(TEST_DEFAULT_CHAIN.rec().contract),
276277
)
277278
.unwrap();
278-
let payload = make_meaningless_message_type();
279+
let payload = make_meaningless_message_type(StreamKey::make_meaningless_stream_key());
279280
let incipient_cores_package =
280281
IncipientCoresPackage::new(cryptde, route.clone(), payload, &destination_key).unwrap();
281282
let system = System::new("consume_sends_zero_hop_incipient_directly_to_hopper");
@@ -326,7 +327,7 @@ mod tests {
326327
IncipientCoresPackage::new(
327328
main_cryptde(),
328329
Route { hops: vec![] },
329-
make_meaningless_message_type(),
330+
make_meaningless_message_type(StreamKey::make_meaningless_stream_key()),
330331
&PublicKey::new(&[1, 2]),
331332
)
332333
.unwrap(),

0 commit comments

Comments
 (0)