From 7008bcf39833602f8afc4d590144036b9d122cad Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Fri, 30 Oct 2020 22:05:04 -0700 Subject: [PATCH] Update token/perf-monitor to latest solana-program/solana-sdk --- token/perf-monitor/Cargo.lock | 197 +++++++++++++----- token/perf-monitor/build.rs | 2 +- .../tests/assert_instruction_count.rs | 93 +-------- 3 files changed, 154 insertions(+), 138 deletions(-) diff --git a/token/perf-monitor/Cargo.lock b/token/perf-monitor/Cargo.lock index e00e0027..2754801e 100644 --- a/token/perf-monitor/Cargo.lock +++ b/token/perf-monitor/Cargo.lock @@ -1,5 +1,15 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + [[package]] name = "addr2line" version = "0.12.1" @@ -15,6 +25,15 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +dependencies = [ + "const-random", +] + [[package]] name = "aho-corasick" version = "0.7.10" @@ -272,6 +291,26 @@ dependencies = [ "byteorder", ] +[[package]] +name = "const-random" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02dc82c12dc2ee6e1ded861cf7d582b46f66f796d1b6c93fa28b911ead95da02" +dependencies = [ + "const-random-macro", + "proc-macro-hack", +] + +[[package]] +name = "const-random-macro" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc757bbb9544aa296c2ae00c679e81f886b37e28e59097defe0cf524306f6685" +dependencies = [ + "getrandom 0.2.0", + "proc-macro-hack", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -396,6 +435,17 @@ dependencies = [ "zeroize", ] +[[package]] +name = "dashmap" +version = "3.11.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f260e2fc850179ef410018660006951c1b55b79e8087e87111a2c388994b9b5" +dependencies = [ + "ahash", + "cfg-if", + "num_cpus", +] + [[package]] name = "derivative" version = "2.1.1" @@ -669,6 +719,17 @@ dependencies = [ "wasi", ] +[[package]] +name = "getrandom" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + [[package]] name = "gimli" version = "0.21.0" @@ -1208,6 +1269,28 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "ouroboros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c35968fa888f477f8836421c4d8f2ef243f4684334f0803b260abecc24235b" +dependencies = [ + "ouroboros_macro", + "stable_deref_trait", +] + +[[package]] +name = "ouroboros_macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77cb63e282343037499f6fd51c1e1964b6c40113b422f076632d0d192a4180de" +dependencies = [ + "Inflector", + "proc-macro2 1.0.19", + "quote 1.0.6", + "syn 1.0.39", +] + [[package]] name = "parking_lot" version = "0.9.0" @@ -1388,7 +1471,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.14", "libc", "rand_chacha", "rand_core", @@ -1411,7 +1494,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.14", ] [[package]] @@ -1755,9 +1838,7 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe0627cc4ef87bb00a8691fe7c6bb7eec9efde660c5b02257daf20ccef8286a" +version = "1.4.4" dependencies = [ "bincode", "byteorder", @@ -1772,9 +1853,7 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be3dddd5b85283625f92e1bfa4b100e13c3941ecb472584b29afb5c5382ac09c" +version = "1.4.4" dependencies = [ "bincode", "chrono", @@ -1786,9 +1865,7 @@ dependencies = [ [[package]] name = "solana-crate-features" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beeada39ad2aecfee8795d90ca7150389e7f958236f2630825273b9b900a7f19" +version = "1.4.4" dependencies = [ "backtrace", "bytes 0.4.12", @@ -1810,9 +1887,7 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63bbbf3bf442bc7e4e76b57af858030fdcb8953cdbcbc6bf3ddd4819aa38e982" +version = "1.4.4" dependencies = [ "bs58", "bv", @@ -1830,9 +1905,7 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb4a177d5f46025b619c83d0562e6ea302a871f98148bd7edbc82416ac76949" +version = "1.4.4" dependencies = [ "lazy_static", "proc-macro2 1.0.19", @@ -1843,9 +1916,7 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f251c26d46a55bf5c3f6ef5e999e8949909eab952e19a9261e6434ebd31041" +version = "1.4.4" dependencies = [ "env_logger", "lazy_static", @@ -1854,9 +1925,7 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bacc5ec88bb53610986d49199526fd42dcad7c8b3fc795f3de5740ebff982f4" +version = "1.4.4" dependencies = [ "jemalloc-ctl", "jemallocator", @@ -1867,9 +1936,7 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11d2f59d87ff29d369394654dcff3c66a898b32a351bb67a9ae9de0db2b82f2" +version = "1.4.4" dependencies = [ "env_logger", "gethostname", @@ -1881,9 +1948,7 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4621f2d8ca6d7ac09c0138a02d21def0a736b70feab1f2516f5a74f1ee642f" +version = "1.4.4" dependencies = [ "bincode", "bs58", @@ -1911,9 +1976,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84bac623c15acb44f571ec177b67a6434c6aa7637bdb26fe5d776aeb7f4d61ae" +version = "1.4.4" dependencies = [ "lazy_static", "num_cpus", @@ -1921,9 +1984,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8242a732a6db6227854f9bb0c2958c1f219be85989d7ca66d934033d32043c4f" +version = "1.4.4" dependencies = [ "bincode", "blake3", @@ -1931,6 +1992,7 @@ dependencies = [ "byteorder", "bzip2", "crossbeam-channel", + "dashmap", "dir-diff", "flate2", "fnv", @@ -1944,6 +2006,7 @@ dependencies = [ "num-derive", "num-traits", "num_cpus", + "ouroboros", "rand", "rayon", "regex", @@ -1970,9 +2033,7 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "096751fdd2ec2dc3ed7146b1b14245a5b562a21b5046bf3677810a96037aff96" +version = "1.4.4" dependencies = [ "assert_matches", "bincode", @@ -1986,6 +2047,7 @@ dependencies = [ "hex", "hmac", "itertools", + "lazy_static", "libsecp256k1", "log", "memmap", @@ -2013,9 +2075,7 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a02d89c5d8c3c098552e39ad716f8e25b1b9ce95905ad0c770c78d36e1ebcc39" +version = "1.4.4" dependencies = [ "bs58", "proc-macro2 1.0.19", @@ -2026,9 +2086,7 @@ dependencies = [ [[package]] name = "solana-secp256k1-program" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa9c6d939374dc10aadb4f5d918134d3388411f8bb975386cd6769afe127268" +version = "1.4.4" dependencies = [ "bincode", "digest 0.9.0", @@ -2041,9 +2099,7 @@ dependencies = [ [[package]] name = "solana-stake-program" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1decea030cb64647c3bee685d804344c10de071ec03f0331436c8c90b500ca27" +version = "1.4.4" dependencies = [ "bincode", "log", @@ -2063,9 +2119,7 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b44aeb9a4169443ce3d2ee417fe61abc1067d6d842e609f3ec30e462b98fae45" +version = "1.4.4" dependencies = [ "bincode", "log", @@ -2114,7 +2168,6 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "remove_dir_all", "solana-program", "thiserror", ] @@ -2131,6 +2184,12 @@ dependencies = [ "spl-token", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "subtle" version = "1.0.0" @@ -2818,3 +2877,39 @@ dependencies = [ "itertools", "libc", ] + +[[patch.unused]] +name = "solana-account-decoder" +version = "1.4.4" + +[[patch.unused]] +name = "solana-banks-client" +version = "1.4.4" + +[[patch.unused]] +name = "solana-banks-server" +version = "1.4.4" + +[[patch.unused]] +name = "solana-clap-utils" +version = "1.4.4" + +[[patch.unused]] +name = "solana-cli-config" +version = "1.4.4" + +[[patch.unused]] +name = "solana-cli-output" +version = "1.4.4" + +[[patch.unused]] +name = "solana-client" +version = "1.4.4" + +[[patch.unused]] +name = "solana-core" +version = "1.4.4" + +[[patch.unused]] +name = "solana-remote-wallet" +version = "1.4.4" diff --git a/token/perf-monitor/build.rs b/token/perf-monitor/build.rs index e24ba228..3386012f 100644 --- a/token/perf-monitor/build.rs +++ b/token/perf-monitor/build.rs @@ -3,7 +3,7 @@ use std::process::Command; fn main() { println!("cargo:warning=(not a warning) Building BPF token program"); Command::new("cargo") - .arg("build-bpf") + .args(&["build-bpf", "--manifest-path", "../program/Cargo.toml"]) .status() .expect("Failed to build BPF token program") .success(); diff --git a/token/perf-monitor/tests/assert_instruction_count.rs b/token/perf-monitor/tests/assert_instruction_count.rs index ad6c08a8..095110a1 100644 --- a/token/perf-monitor/tests/assert_instruction_count.rs +++ b/token/perf-monitor/tests/assert_instruction_count.rs @@ -2,16 +2,14 @@ use solana_bpf_loader_program::{ create_vm, serialization::{deserialize_parameters, serialize_parameters}, }; -use solana_rbpf::vm::{EbpfVm, InstructionMeter}; -use solana_runtime::process_instruction::{ - ComputeBudget, ComputeMeter, Executor, InvokeContext, Logger, ProcessInstruction, -}; +use solana_rbpf::vm::EbpfVm; use solana_sdk::{ - account::{Account as SolanaAccount, KeyedAccount}, + account::{create_account, Account as SolanaAccount}, bpf_loader, entrypoint::SUCCESS, - instruction::{CompiledInstruction, Instruction, InstructionError}, - message::Message, + instruction::InstructionError, + keyed_account::KeyedAccount, + process_instruction::MockInvokeContext, program_option::COption, program_pack::Pack, pubkey::Pubkey, @@ -21,11 +19,10 @@ use spl_token::{ instruction::TokenInstruction, state::{Account, Mint}, }; -use std::{cell::RefCell, fs::File, io::Read, path::PathBuf, rc::Rc, sync::Arc}; +use std::{cell::RefCell, fs::File, io::Read, path::PathBuf}; fn load_program(name: &str) -> Vec { let mut path = PathBuf::new(); - path.push("../../target/bpfel-unknown-unknown/release"); path.push(name); path.set_extension("so"); let mut file = File::open(path).unwrap(); @@ -85,7 +82,7 @@ fn assert_instruction_count() { let mint_key = Pubkey::new_unique(); let mint_account = SolanaAccount::new_ref(0, Mint::get_packed_len(), &program_id); let rent_key = rent::id(); - let rent_account = RefCell::new(rent::create_account(42, &Rent::default())); + let rent_account = RefCell::new(create_account(&Rent::default(), 42)); // Create new mint let instruction_data = TokenInstruction::InitializeMint { @@ -170,79 +167,3 @@ fn assert_instruction_count() { assert!(initialize_mint_count <= BASELINE_NEW_MINT_COUNT); assert!(transfer_count <= BASELINE_TRANSFER_COUNT); } - -// Mock InvokeContext - -#[derive(Debug, Default)] -struct MockInvokeContext { - pub key: Pubkey, - pub logger: MockLogger, - pub compute_budget: ComputeBudget, - pub compute_meter: MockComputeMeter, -} -impl InvokeContext for MockInvokeContext { - fn push(&mut self, _key: &Pubkey) -> Result<(), InstructionError> { - Ok(()) - } - fn pop(&mut self) {} - fn verify_and_update( - &mut self, - _message: &Message, - _instruction: &CompiledInstruction, - _accounts: &[Rc>], - ) -> Result<(), InstructionError> { - Ok(()) - } - fn get_caller(&self) -> Result<&Pubkey, InstructionError> { - Ok(&self.key) - } - fn get_programs(&self) -> &[(Pubkey, ProcessInstruction)] { - &[] - } - fn get_logger(&self) -> Rc> { - Rc::new(RefCell::new(self.logger.clone())) - } - fn get_compute_budget(&self) -> &ComputeBudget { - &self.compute_budget - } - fn get_compute_meter(&self) -> Rc> { - Rc::new(RefCell::new(self.compute_meter.clone())) - } - fn add_executor(&mut self, _pubkey: &Pubkey, _executor: Arc) {} - fn get_executor(&mut self, _pubkey: &Pubkey) -> Option> { - None - } - fn record_instruction(&self, _instruction: &Instruction) {} - fn is_feature_active(&self, _feature_id: &Pubkey) -> bool { - true - } -} - -#[derive(Debug, Default, Clone)] -struct MockComputeMeter {} -impl ComputeMeter for MockComputeMeter { - fn consume(&mut self, _amount: u64) -> Result<(), InstructionError> { - Ok(()) - } - fn get_remaining(&self) -> u64 { - u64::MAX - } -} -#[derive(Debug, Default, Clone)] -struct MockLogger {} -impl Logger for MockLogger { - fn log_enabled(&self) -> bool { - true - } - fn log(&mut self, message: &str) { - println!("{}", message); - } -} - -struct TestInstructionMeter {} -impl InstructionMeter for TestInstructionMeter { - fn consume(&mut self, _amount: u64) {} - fn get_remaining(&self) -> u64 { - u64::MAX - } -}