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
|
|
|
|
2020-10-23 17:22:10 -07:00
|
|
|
extern crate solana_program;
|
2020-12-01 07:52:20 -08:00
|
|
|
use solana_program::{custom_panic_default, entrypoint::SUCCESS, msg};
|
2019-05-21 11:22:33 -07:00
|
|
|
|
|
|
|
#[no_mangle]
|
2020-01-31 10:58:07 -08:00
|
|
|
pub extern "C" fn entrypoint(_input: *mut u8) -> u64 {
|
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;
|
|
|
|
}
|
2020-11-30 13:28:58 -08:00
|
|
|
msg!(0xff, 0, 0, 0, sum);
|
2019-05-21 11:22:33 -07:00
|
|
|
assert_eq!(sum, ITERS as u64);
|
|
|
|
|
2019-09-06 16:05:01 -07:00
|
|
|
SUCCESS
|
2019-05-21 11:22:33 -07:00
|
|
|
}
|
2019-09-18 19:54:10 -07:00
|
|
|
|
2020-12-01 07:52:20 -08:00
|
|
|
custom_panic_default!();
|
|
|
|
|
2019-09-18 19:54:10 -07:00
|
|
|
#[cfg(test)]
|
|
|
|
mod test {
|
|
|
|
use super::*;
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_entrypoint() {
|
|
|
|
assert_eq!(SUCCESS, entrypoint(std::ptr::null_mut()));
|
|
|
|
}
|
|
|
|
}
|