* chore: cargo +nightly clippy --fix -Z unstable-options (cherry picked from commit6514096a67) # Conflicts: # core/src/banking_stage.rs # core/src/cost_model.rs # core/src/cost_tracker.rs # core/src/execute_cost_table.rs # core/src/replay_stage.rs # core/src/tvu.rs # ledger-tool/src/main.rs # programs/bpf_loader/build.rs # rbpf-cli/src/main.rs # sdk/cargo-build-bpf/src/main.rs # sdk/cargo-test-bpf/src/main.rs # sdk/src/secp256k1_instruction.rs * chore: cargo fmt (cherry picked from commit789f33e8db) * Updates BPF program assert_instruction_count tests. (cherry picked from commitc1e03f3410) # Conflicts: # programs/bpf/tests/programs.rs * Resolve conflicts Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net> Co-authored-by: Michael Vines <mvines@gmail.com>
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
use assert_cmd::prelude::*;
 | 
						|
use solana_ledger::create_new_tmp_ledger;
 | 
						|
use solana_ledger::genesis_utils::create_genesis_config;
 | 
						|
use std::process::Command;
 | 
						|
use std::process::Output;
 | 
						|
 | 
						|
fn run_ledger_tool(args: &[&str]) -> Output {
 | 
						|
    Command::cargo_bin(env!("CARGO_PKG_NAME"))
 | 
						|
        .unwrap()
 | 
						|
        .args(args)
 | 
						|
        .output()
 | 
						|
        .unwrap()
 | 
						|
}
 | 
						|
 | 
						|
fn count_newlines(chars: &[u8]) -> usize {
 | 
						|
    bytecount::count(chars, b'\n')
 | 
						|
}
 | 
						|
 | 
						|
#[test]
 | 
						|
fn bad_arguments() {
 | 
						|
    // At least a ledger path is required
 | 
						|
    assert!(!run_ledger_tool(&[]).status.success());
 | 
						|
 | 
						|
    // Invalid ledger path should fail
 | 
						|
    assert!(!run_ledger_tool(&["-l", "invalid_ledger", "verify"])
 | 
						|
        .status
 | 
						|
        .success());
 | 
						|
}
 | 
						|
 | 
						|
#[test]
 | 
						|
fn nominal() {
 | 
						|
    let genesis_config = create_genesis_config(100).genesis_config;
 | 
						|
    let ticks_per_slot = genesis_config.ticks_per_slot;
 | 
						|
    let meta_lines = 2;
 | 
						|
 | 
						|
    let (ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_config);
 | 
						|
    let ticks = ticks_per_slot as usize;
 | 
						|
 | 
						|
    let ledger_path = ledger_path.to_str().unwrap();
 | 
						|
 | 
						|
    // Basic validation
 | 
						|
    let output = run_ledger_tool(&["-l", ledger_path, "verify"]);
 | 
						|
    assert!(output.status.success());
 | 
						|
 | 
						|
    // Print everything
 | 
						|
    let output = run_ledger_tool(&["-l", ledger_path, "print", "-vvv"]);
 | 
						|
    assert!(output.status.success());
 | 
						|
    assert_eq!(count_newlines(&output.stdout), ticks + meta_lines);
 | 
						|
}
 |