Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions Cargo-minimal.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1353,6 +1353,15 @@ version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"

[[package]]
name = "memoffset"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
dependencies = [
"autocfg",
]

[[package]]
name = "mime"
version = "0.3.17"
Expand Down Expand Up @@ -1409,6 +1418,19 @@ dependencies = [
"windows-sys 0.48.0",
]

[[package]]
name = "nix"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [
"bitflags 1.3.2",
"cfg-if",
"libc",
"memoffset",
"pin-utils",
]

[[package]]
name = "nom"
version = "7.1.3"
Expand Down Expand Up @@ -1620,6 +1642,7 @@ dependencies = [
"hyper-rustls",
"hyper-util",
"log",
"nix",
"ohttp-relay",
"once_cell",
"payjoin",
Expand Down
23 changes: 23 additions & 0 deletions Cargo-recent.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1353,6 +1353,15 @@ version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"

[[package]]
name = "memoffset"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
dependencies = [
"autocfg",
]

[[package]]
name = "mime"
version = "0.3.17"
Expand Down Expand Up @@ -1409,6 +1418,19 @@ dependencies = [
"windows-sys 0.48.0",
]

[[package]]
name = "nix"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [
"bitflags 1.3.2",
"cfg-if",
"libc",
"memoffset",
"pin-utils",
]

[[package]]
name = "nom"
version = "7.1.3"
Expand Down Expand Up @@ -1620,6 +1642,7 @@ dependencies = [
"hyper-rustls",
"hyper-util",
"log",
"nix",
"ohttp-relay",
"once_cell",
"payjoin",
Expand Down
1 change: 1 addition & 0 deletions payjoin-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ url = { version = "2.3.1", features = ["serde"] }
[dev-dependencies]
bitcoind = { version = "0.36.0", features = ["0_21_2"] }
http = "1"
nix = "0.26.4"
ohttp-relay = { version = "0.0.9", features = ["_test-util"] }
once_cell = "1"
payjoin-directory = { path = "../payjoin-directory", features = ["_danger-local-https"] }
Expand Down
19 changes: 13 additions & 6 deletions payjoin-cli/tests/e2e.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,18 @@ mod e2e {
use bitcoincore_rpc::json::AddressType;
use bitcoind::bitcoincore_rpc::RpcApi;
use log::{log_enabled, Level};
use nix::sys::signal::{kill, Signal};
use nix::unistd::Pid;
use payjoin::bitcoin::Amount;
use tokio::fs;
use tokio::io::{AsyncBufReadExt, AsyncWriteExt, BufReader};
use tokio::process::Command;

fn sigint(child: &tokio::process::Child) -> nix::Result<()> {
let pid = child.id().expect("Failed to get child PID");
kill(Pid::from_raw(pid as i32), Signal::SIGINT)
}

const RECEIVE_SATS: &str = "54321";

#[cfg(not(feature = "v2"))]
Expand Down Expand Up @@ -139,8 +146,8 @@ mod e2e {
let timeout = tokio::time::Duration::from_secs(10);
let payjoin_sent = tokio::time::timeout(timeout, rx.recv()).await;

cli_receiver.kill().await.expect("Failed to kill payjoin-cli");
cli_sender.kill().await.expect("Failed to kill payjoin-cli");
sigint(&cli_receiver).expect("Failed to kill payjoin-cli");
sigint(&cli_sender).expect("Failed to kill payjoin-cli");
payjoin_sent
})
.await;
Expand Down Expand Up @@ -373,7 +380,7 @@ mod e2e {
}
log::debug!("Got bip21 {}", &bip21);

cli_receiver.kill().await.expect("Failed to kill payjoin-cli");
sigint(&cli_receiver).expect("Failed to kill payjoin-cli");
bip21
}

Expand Down Expand Up @@ -402,7 +409,7 @@ mod e2e {
let timeout = tokio::time::Duration::from_secs(35);
let fallback_sent = tokio::time::timeout(timeout, rx.recv()).await?;

cli_sender.kill().await.expect("Failed to kill payjoin-cli initial sender");
sigint(&cli_sender).expect("Failed to kill payjoin-cli initial sender");

assert!(fallback_sent.unwrap_or(false), "Fallback send was not detected");
Ok(())
Expand Down Expand Up @@ -434,7 +441,7 @@ mod e2e {
let timeout = tokio::time::Duration::from_secs(10);
let response_successful = tokio::time::timeout(timeout, rx.recv()).await?;

cli_receive_resumer.kill().await.expect("Failed to kill payjoin-cli");
sigint(&cli_receive_resumer).expect("Failed to kill payjoin-cli");

assert!(response_successful.unwrap_or(false), "Did not respond with Payjoin PSBT");
Ok(())
Expand Down Expand Up @@ -466,7 +473,7 @@ mod e2e {
let timeout = tokio::time::Duration::from_secs(10);
let payjoin_sent = tokio::time::timeout(timeout, rx.recv()).await?;

cli_send_resumer.kill().await.expect("Failed to kill payjoin-cli");
sigint(&cli_send_resumer).expect("Failed to kill payjoin-cli");

assert!(payjoin_sent.unwrap_or(false), "Payjoin send was not detected");
Ok(())
Expand Down