Skip to content

Commit

Permalink
fix for serde feature
Browse files Browse the repository at this point in the history
  • Loading branch information
rnbguy committed May 9, 2024
1 parent 6398fe0 commit ca6cd6b
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 72 deletions.
6 changes: 4 additions & 2 deletions ibc-testkit/src/relayer/context.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use ibc::apps::transfer::handler::send_transfer;
use ibc::apps::transfer::types::msgs::transfer::MsgTransfer;

Check failure on line 1 in ibc-testkit/src/relayer/context.rs

View workflow job for this annotation

GitHub Actions / test-stable

unused import: `ibc::apps::transfer::types::msgs::transfer::MsgTransfer`

Check failure on line 1 in ibc-testkit/src/relayer/context.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `ibc::apps::transfer::types::msgs::transfer::MsgTransfer`

error: unused import: `ibc::apps::transfer::types::msgs::transfer::MsgTransfer` --> ibc-testkit/src/relayer/context.rs:1:5 | 1 | use ibc::apps::transfer::types::msgs::transfer::MsgTransfer; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: the lint level is defined here --> ibc-testkit/src/lib.rs:5:5 | 5 | warnings, | ^^^^^^^^ = note: `#[deny(unused_imports)]` implied by `#[deny(warnings)]`
use ibc::apps::transfer::types::packet::PacketData;

Check failure on line 2 in ibc-testkit/src/relayer/context.rs

View workflow job for this annotation

GitHub Actions / test-stable

unused import: `ibc::apps::transfer::types::packet::PacketData`

Check failure on line 2 in ibc-testkit/src/relayer/context.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `ibc::apps::transfer::types::packet::PacketData`

error: unused import: `ibc::apps::transfer::types::packet::PacketData` --> ibc-testkit/src/relayer/context.rs:2:5 | 2 | use ibc::apps::transfer::types::packet::PacketData; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
use ibc::core::channel::types::packet::Packet;
Expand Down Expand Up @@ -465,6 +464,9 @@ where
}

/// Submit a packet via [`DummyTransferModule`] on the first context.
///
/// Requires `serde` feature because of [`ibc::apps::transfer::handler::send_transfer`].
#[cfg(feature = "serde")]
pub fn send_packet_via_dummy_transfer_module_on_a(
&mut self,
chan_id_on_a: ChannelId,
Expand All @@ -491,7 +493,7 @@ where
};

// module creates the send_packet
send_transfer(
ibc::apps::transfer::handler::send_transfer(
self.get_ctx_a_mut().ibc_store_mut(),
&mut DummyTransferModule,
msg,
Expand Down
143 changes: 77 additions & 66 deletions ibc-testkit/src/relayer/integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ use crate::relayer::context::RelayerContext;
use crate::testapp::ibc::core::types::DefaultIbcStore;

/// Integration test for IBC implementation. This test creates clients,
/// connections, channels, and sends packets between two [`TestHost`]s. This uses
/// connections, channels between two [`TestHost`]s.
///
/// If `serde` feature is enabled, this also exercises packet relay between [`TestHost`]s. This uses
/// [`DummyTransferModule`](crate::testapp::ibc::applications::transfer::types::DummyTransferModule)
/// to simulate the transfer of tokens between two contexts.
pub fn ibc_integration_test<A, B>()
Expand Down Expand Up @@ -83,71 +85,80 @@ where
assert_eq!(chan_id_on_a, ChannelId::new(1));
assert_eq!(chan_id_on_b, ChannelId::new(1));

// ------------------------
// send packet from A to B
// ------------------------

let packet =
relayer.send_packet_via_dummy_transfer_module_on_a(chan_id_on_a.clone(), signer.clone());

// continue packet relay starting from recv_packet at B
relayer.send_packet_on_a(packet, signer.clone());

// retrieve the ack_packet event
let Some(IbcEvent::AcknowledgePacket(_)) = relayer
.get_ctx_a()
.ibc_store()
.events
.lock()
.last()
.cloned()
else {
panic!("unexpected event")
};

// --------------------------
// timeout packet from A to B
// --------------------------

let packet =
relayer.send_packet_via_dummy_transfer_module_on_a(chan_id_on_a.clone(), signer.clone());

// timeout the packet on A; never relay the packet to B
relayer.timeout_packet_on_a(packet.clone(), signer.clone());

// retrieve the timeout_packet event
let Some(IbcEvent::TimeoutPacket(_)) = relayer
.get_ctx_a()
.ibc_store()
.events
.lock()
.last()
.cloned()
else {
panic!("unexpected event")
};

// ------------------------------------------------
// timeout packet from A to B; using closed channel
// ------------------------------------------------

let packet =
relayer.send_packet_via_dummy_transfer_module_on_a(chan_id_on_a.clone(), signer.clone());

// timeout the packet on A; never relay the packet to B
relayer.timeout_packet_on_channel_close_on_a(packet.clone(), signer.clone());

// retrieve the timeout_packet event
let Some(IbcEvent::TimeoutPacket(_)) = relayer
.get_ctx_a()
.ibc_store()
.events
.lock()
.last()
.cloned()
else {
panic!("unexpected event")
};
#[cfg(feature = "serde")]
{
{
// ------------------------
// send packet from A to B
// ------------------------

let packet = relayer
.send_packet_via_dummy_transfer_module_on_a(chan_id_on_a.clone(), signer.clone());

// continue packet relay starting from recv_packet at B
relayer.send_packet_on_a(packet, signer.clone());

// retrieve the ack_packet event
let Some(IbcEvent::AcknowledgePacket(_)) = relayer
.get_ctx_a()
.ibc_store()
.events
.lock()
.last()
.cloned()
else {
panic!("unexpected event")

Check warning on line 110 in ibc-testkit/src/relayer/integration.rs

View check run for this annotation

Codecov / codecov/patch

ibc-testkit/src/relayer/integration.rs#L110

Added line #L110 was not covered by tests
};
}

{
// --------------------------
// timeout packet from A to B
// --------------------------

let packet = relayer
.send_packet_via_dummy_transfer_module_on_a(chan_id_on_a.clone(), signer.clone());

// timeout the packet on A; never relay the packet to B
relayer.timeout_packet_on_a(packet.clone(), signer.clone());

// retrieve the timeout_packet event
let Some(IbcEvent::TimeoutPacket(_)) = relayer
.get_ctx_a()
.ibc_store()
.events
.lock()
.last()
.cloned()
else {
panic!("unexpected event")

Check warning on line 134 in ibc-testkit/src/relayer/integration.rs

View check run for this annotation

Codecov / codecov/patch

ibc-testkit/src/relayer/integration.rs#L134

Added line #L134 was not covered by tests
};
}

{
// ------------------------------------------------
// timeout packet from A to B; using closed channel
// ------------------------------------------------

let packet = relayer
.send_packet_via_dummy_transfer_module_on_a(chan_id_on_a.clone(), signer.clone());

// timeout the packet on A; never relay the packet to B
relayer.timeout_packet_on_channel_close_on_a(packet.clone(), signer.clone());

// retrieve the timeout_packet event
let Some(IbcEvent::TimeoutPacket(_)) = relayer
.get_ctx_a()
.ibc_store()
.events
.lock()
.last()
.cloned()
else {
panic!("unexpected event")

Check warning on line 158 in ibc-testkit/src/relayer/integration.rs

View check run for this annotation

Codecov / codecov/patch

ibc-testkit/src/relayer/integration.rs#L158

Added line #L158 was not covered by tests
};
}
}
}

#[cfg(test)]
Expand Down
5 changes: 1 addition & 4 deletions ibc-testkit/src/relayer/mod.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
pub mod context;
pub mod error;
pub mod utils;

// `ibc::apps::transfer::handler::send_transfer` requires `serde`
#[cfg(feature = "serde")]
pub mod integration;
pub mod utils;

0 comments on commit ca6cd6b

Please sign in to comment.