Skip to content

Commit 22f7d13

Browse files
committed
add integration test to test multiple tproxy sessions
1 parent 4166706 commit 22f7d13

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

integration-tests/tests/translator_integration.rs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1950,3 +1950,60 @@ async fn tproxy_sends_single_open_extended_mining_channel_in_aggregated_mode() {
19501950

19511951
shutdown_all!(pool, tproxy);
19521952
}
1953+
1954+
// This test verifies whether we can spawn multiple tproxy in the
1955+
// same process.
1956+
//
1957+
// More info here: https://github.com/stratum-mining/sv2-apps/issues/430
1958+
#[tokio::test]
1959+
async fn multiple_tproxy_sessions() {
1960+
start_tracing();
1961+
let (_tp, tp_addr) = start_template_provider(None, DifficultyLevel::High);
1962+
let (pool, pool_addr, _) = start_pool(sv2_tp_config(tp_addr), vec![], vec![], false).await;
1963+
1964+
let (pool_translator_sniffer_1, pool_translator_sniffer_addr_1) =
1965+
start_sniffer("0", pool_addr, false, vec![], None);
1966+
let (tproxy_1, _, _) = start_sv2_translator(
1967+
&[pool_translator_sniffer_addr_1],
1968+
true,
1969+
vec![],
1970+
vec![],
1971+
None,
1972+
false,
1973+
)
1974+
.await;
1975+
1976+
let (pool_translator_sniffer_2, pool_translator_sniffer_addr_2) =
1977+
start_sniffer("0", pool_addr, false, vec![], None);
1978+
let (tproxy_2, _, _) = start_sv2_translator(
1979+
&[pool_translator_sniffer_addr_2],
1980+
true,
1981+
vec![],
1982+
vec![],
1983+
None,
1984+
false,
1985+
)
1986+
.await;
1987+
1988+
pool_translator_sniffer_1
1989+
.wait_for_message_type(MessageDirection::ToUpstream, MESSAGE_TYPE_SETUP_CONNECTION)
1990+
.await;
1991+
pool_translator_sniffer_1
1992+
.wait_for_message_type(
1993+
MessageDirection::ToDownstream,
1994+
MESSAGE_TYPE_SETUP_CONNECTION_SUCCESS,
1995+
)
1996+
.await;
1997+
1998+
pool_translator_sniffer_2
1999+
.wait_for_message_type(MessageDirection::ToUpstream, MESSAGE_TYPE_SETUP_CONNECTION)
2000+
.await;
2001+
pool_translator_sniffer_2
2002+
.wait_for_message_type(
2003+
MessageDirection::ToDownstream,
2004+
MESSAGE_TYPE_SETUP_CONNECTION_SUCCESS,
2005+
)
2006+
.await;
2007+
2008+
shutdown_all!(pool, tproxy_1, tproxy_2);
2009+
}

0 commit comments

Comments
 (0)