solana/programs/bpf/rust/iter/src/lib.rs

32 lines
662 B
Rust
Raw Normal View History

2019-06-10 11:00:15 -07:00
//! @brief Example Rust-based BPF program tests loop iteration
2019-05-21 11:22:33 -07:00
extern crate solana_sdk;
2020-01-27 18:27:44 -08:00
use solana_sdk::{entrypoint::SUCCESS, info};
2019-05-21 11:22:33 -07:00
#[no_mangle]
pub extern "C" fn entrypoint(_input: *mut u8) -> u32 {
2019-05-21 11:22:33 -07:00
const ITERS: usize = 100;
let ones = [1_u64; ITERS];
let mut sum: u64 = 0;
for v in ones.iter() {
sum += *v;
}
2019-06-20 16:07:12 -07:00
info!(0xff, 0, 0, 0, sum);
2019-05-21 11:22:33 -07:00
assert_eq!(sum, ITERS as u64);
SUCCESS
2019-05-21 11:22:33 -07:00
}
#[cfg(test)]
mod test {
use super::*;
2020-01-27 18:27:44 -08:00
// Pulls in the stubs required for `info!()`
solana_sdk_bpf_test::stubs!();
#[test]
fn test_entrypoint() {
assert_eq!(SUCCESS, entrypoint(std::ptr::null_mut()));
}
}