use crate::Client; use keyforkd::test_util::{run_test, Infallible}; use keyfork_derive_util::{request::*, DerivationPath}; use keyfork_slip10_test_data::test_data; use std::{os::unix::net::UnixStream, str::FromStr}; #[test] fn secp256k1_test_suite() { let tests = test_data() .unwrap() .remove(&"secp256k1".to_string()) .unwrap(); for seed_test in tests { let seed = seed_test.seed; run_test(&seed, move |socket_path| { for test in seed_test.tests { let socket = UnixStream::connect(&socket_path).unwrap(); let mut client = Client::new(socket); let chain = DerivationPath::from_str(test.chain).unwrap(); if chain.len() < 2 { continue; } let req = DerivationRequest::new( DerivationAlgorithm::Secp256k1, &DerivationPath::from_str(test.chain).unwrap(), ); let response = DerivationResponse::try_from(client.request(&req.into()).unwrap()).unwrap(); assert_eq!(&response.data, test.private_key.as_slice()); } Infallible::Ok(()) }).unwrap(); } } #[test] fn ed25519_test_suite() { let tests = test_data() .unwrap() .remove(&"ed25519".to_string()) .unwrap(); for seed_test in tests { let seed = seed_test.seed; run_test(&seed, move |socket_path| { for test in seed_test.tests { let socket = UnixStream::connect(&socket_path).unwrap(); let mut client = Client::new(socket); let chain = DerivationPath::from_str(test.chain).unwrap(); if chain.len() < 2 { continue; } let req = DerivationRequest::new( DerivationAlgorithm::Ed25519, &DerivationPath::from_str(test.chain).unwrap(), ); let response = DerivationResponse::try_from(client.request(&req.into()).unwrap()).unwrap(); assert_eq!(&response.data, test.private_key.as_slice()); } Infallible::Ok(()) }).unwrap(); } }