From 1e01c13d8aee4e90a8a4f42cb3d225df21ce3b92 Mon Sep 17 00:00:00 2001 From: Federico De Felici <fdf8210@gmail.com> Date: Tue, 18 Mar 2025 13:11:09 +0100 Subject: [PATCH 1/5] fix: test compilation on windows ends successfully, #5930 --- stackslib/src/config/chain_data.rs | 82 ++++++++++++++++++++++++++ stackslib/src/net/tests/convergence.rs | 8 ++- 2 files changed, 89 insertions(+), 1 deletion(-) diff --git a/stackslib/src/config/chain_data.rs b/stackslib/src/config/chain_data.rs index 78957fac97..29ac8c009d 100644 --- a/stackslib/src/config/chain_data.rs +++ b/stackslib/src/config/chain_data.rs @@ -722,6 +722,7 @@ pub mod tests { } #[test] + #[cfg(unix)] fn test_get_unconfirmed_commits() { use std::os::unix::fs::PermissionsExt; let shell_code = r#"#!/bin/bash @@ -808,6 +809,87 @@ EOF ); } + #[test] + #[cfg(windows)] + fn test_get_unconfirmed_commits() { + let shell_code = r#"@echo off +( +echo [ +echo { +echo "txid": "73c318be8cd272a73200b9630089d77a44342d84b2c0d81c937da714152cf402", +echo "burn": 555000, +echo "address": "1FCcoFSKWvNyhjazNvVdLLw8mGkGdcRMux", +echo "input_txid": "ef0dbf0fc4755de5e94843a4da7c1d943571299afb15f32b76bac5d18d8668ce", +echo "input_index": 3, +echo "pox_addrs": [ +echo "0014db14133a9dbb1d0e16b60513453e48b6ff2847a9", +echo "a91418c42080a1e87fd02dd3fca94c4513f9ecfe741487" +echo ] +echo } +echo ] +) +"#; + let path = "/tmp/test-get-unconfirmed-commits.bat"; + if fs::metadata(path).is_ok() { + fs::remove_file(path).unwrap(); + } + { + let mut f = fs::File::create(path).unwrap(); + f.write_all(shell_code.as_bytes()).unwrap(); + } + + let ms = MinerStats { + unconfirmed_commits_helper: path.to_string(), + }; + + let mut commits = ms.get_unconfirmed_commits(123, &[]).unwrap(); + assert_eq!(commits.len(), 1); + let commit = commits.pop().unwrap(); + + assert_eq!( + commit.txid, + Txid::from_hex("73c318be8cd272a73200b9630089d77a44342d84b2c0d81c937da714152cf402") + .unwrap() + ); + assert_eq!(commit.burn_fee, 555000); + assert_eq!( + commit.apparent_sender.0, + "1FCcoFSKWvNyhjazNvVdLLw8mGkGdcRMux".to_string() + ); + assert_eq!( + commit.input.0, + Txid::from_hex("ef0dbf0fc4755de5e94843a4da7c1d943571299afb15f32b76bac5d18d8668ce") + .unwrap() + ); + assert_eq!(commit.input.1, 3); + assert_eq!(commit.block_height, 123); + + assert_eq!( + commit.commit_outs, + vec![ + PoxAddress::Addr20( + true, + PoxAddressType20::P2WPKH, + [ + 219, 20, 19, 58, 157, 187, 29, 14, 22, 182, 5, 19, 69, 62, 72, 182, 255, + 40, 71, 169 + ] + ), + PoxAddress::Standard( + StacksAddress::new( + 20, + Hash160([ + 0x18, 0xc4, 0x20, 0x80, 0xa1, 0xe8, 0x7f, 0xd0, 0x2d, 0xd3, 0xfc, 0xa9, + 0x4c, 0x45, 0x13, 0xf9, 0xec, 0xfe, 0x74, 0x14 + ]) + ) + .unwrap(), + None + ) + ] + ); + } + #[test] fn test_get_spend_and_win_distribution() { let active_miners_and_commits = vec![ diff --git a/stackslib/src/net/tests/convergence.rs b/stackslib/src/net/tests/convergence.rs index 6d9031deae..04b426ee75 100644 --- a/stackslib/src/net/tests/convergence.rs +++ b/stackslib/src/net/tests/convergence.rs @@ -21,7 +21,6 @@ use std::collections::{HashMap, HashSet}; use clarity::vm::types::{QualifiedContractIdentifier, StandardPrincipalData}; use rand::prelude::*; use rand::thread_rng; -use rlimit; use crate::core::PEER_VERSION_TESTNET; use crate::net::db::*; @@ -29,7 +28,9 @@ use crate::net::test::*; use crate::net::*; use crate::util_lib::test::*; +#[cfg(unix)] fn setup_rlimit_nofiles() { + use rlimit; info!("Attempt to set nofile rlimit to 4096 (required for these tests to run)"); assert!(rlimit::Resource::NOFILE.get().is_ok()); let (slimit, hlimit) = rlimit::getrlimit(rlimit::Resource::NOFILE).unwrap(); @@ -37,6 +38,11 @@ fn setup_rlimit_nofiles() { info!("Successfully set nofile rlimit to 4096"); } +#[cfg(windows)] +fn setup_rlimit_nofiles() { + //rlimit stub for windows +} + fn stacker_db_id(i: usize) -> QualifiedContractIdentifier { QualifiedContractIdentifier::new( StandardPrincipalData::new(0x01, [i as u8; 20]).unwrap(), From 00aa571df4674ecff15589433390881639272501 Mon Sep 17 00:00:00 2001 From: Federico De Felici <fdf8210@gmail.com> Date: Tue, 18 Mar 2025 14:49:29 +0100 Subject: [PATCH 2/5] fix: coordinator lock_info_primary_testnet and lock_info_other_testnet run on windows. Now 'cargo test testnet' ends succesfully on windows os, #5930 --- stackslib/src/net/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stackslib/src/net/mod.rs b/stackslib/src/net/mod.rs index 616ea8f81f..34e5b24a7a 100644 --- a/stackslib/src/net/mod.rs +++ b/stackslib/src/net/mod.rs @@ -2877,9 +2877,10 @@ pub mod test { pub fn test_path(config: &TestPeerConfig) -> String { let random = thread_rng().gen::<u64>(); let random_bytes = to_hex(&random.to_be_bytes()); + let multi_os_friendly_name = config.test_name.replace("::", "."); format!( "/tmp/stacks-node-tests/units-test-peer/{}-{}", - &config.test_name, random_bytes + &multi_os_friendly_name, random_bytes ) } From 6388c0b586334afa04cf9f202bdcff73f3ddf82e Mon Sep 17 00:00:00 2001 From: Federico De Felici <fdf8210@gmail.com> Date: Tue, 25 Mar 2025 12:52:08 +0100 Subject: [PATCH 3/5] fix: use underscore as separator and renaming variable, #5930 --- stackslib/src/net/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stackslib/src/net/mod.rs b/stackslib/src/net/mod.rs index 34e5b24a7a..e1bd4c12cb 100644 --- a/stackslib/src/net/mod.rs +++ b/stackslib/src/net/mod.rs @@ -2877,10 +2877,10 @@ pub mod test { pub fn test_path(config: &TestPeerConfig) -> String { let random = thread_rng().gen::<u64>(); let random_bytes = to_hex(&random.to_be_bytes()); - let multi_os_friendly_name = config.test_name.replace("::", "."); + let cleaned_config_test_name = config.test_name.replace("::", "_"); format!( "/tmp/stacks-node-tests/units-test-peer/{}-{}", - &multi_os_friendly_name, random_bytes + &cleaned_config_test_name, random_bytes ) } From 7c5cdeb2da48d55790d507435a8306754629173b Mon Sep 17 00:00:00 2001 From: Federico De Felici <fdf8210@gmail.com> Date: Thu, 27 Mar 2025 09:21:54 +0100 Subject: [PATCH 4/5] chore: improve comment about rlimit empty stub for windows, #5930 --- stackslib/src/net/tests/convergence.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stackslib/src/net/tests/convergence.rs b/stackslib/src/net/tests/convergence.rs index 04b426ee75..7bc4d643ed 100644 --- a/stackslib/src/net/tests/convergence.rs +++ b/stackslib/src/net/tests/convergence.rs @@ -40,7 +40,8 @@ fn setup_rlimit_nofiles() { #[cfg(windows)] fn setup_rlimit_nofiles() { - //rlimit stub for windows + // rlimit empty stub, since windows hasn't a hard file descriptor limit + // PR: https://github.com/stacks-network/stacks-core/pull/5937 } fn stacker_db_id(i: usize) -> QualifiedContractIdentifier { From bbd5236c7e9909ad86ee23db441179873f8bd4b0 Mon Sep 17 00:00:00 2001 From: Federico De Felici <fdf8210@gmail.com> Date: Fri, 28 Mar 2025 08:57:42 +0100 Subject: [PATCH 5/5] chore: remove pr reference from comment, #5930 --- stackslib/src/net/tests/convergence.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/stackslib/src/net/tests/convergence.rs b/stackslib/src/net/tests/convergence.rs index 7bc4d643ed..4e1f3a064c 100644 --- a/stackslib/src/net/tests/convergence.rs +++ b/stackslib/src/net/tests/convergence.rs @@ -41,7 +41,6 @@ fn setup_rlimit_nofiles() { #[cfg(windows)] fn setup_rlimit_nofiles() { // rlimit empty stub, since windows hasn't a hard file descriptor limit - // PR: https://github.com/stacks-network/stacks-core/pull/5937 } fn stacker_db_id(i: usize) -> QualifiedContractIdentifier {