2019-06-12 13:04:53 -07:00
|
|
|
//! @brief Example Rust-based BPF program tests loop iteration
|
|
|
|
|
|
|
|
mod helper;
|
2019-09-06 09:20:14 -07:00
|
|
|
extern crate solana_sdk;
|
2019-09-06 16:05:01 -07:00
|
|
|
use solana_sdk::entrypoint::SUCCESS;
|
2019-09-06 09:20:14 -07:00
|
|
|
use solana_sdk::info;
|
2019-06-12 13:04:53 -07:00
|
|
|
|
|
|
|
#[no_mangle]
|
2019-09-06 16:05:01 -07:00
|
|
|
pub extern "C" fn entrypoint(_input: *mut u8) -> u32 {
|
2019-07-08 22:24:57 -08:00
|
|
|
info!("Call same package");
|
2019-06-12 13:04:53 -07:00
|
|
|
assert_eq!(crate::helper::many_args(1, 2, 3, 4, 5, 6, 7, 8, 9), 45);
|
2019-07-11 14:27:18 -08:00
|
|
|
|
2019-07-08 22:24:57 -08:00
|
|
|
info!("Call another package");
|
2019-06-12 13:04:53 -07:00
|
|
|
assert_eq!(
|
|
|
|
solana_bpf_rust_many_args_dep::many_args(1, 2, 3, 4, 5, 6, 7, 8, 9),
|
|
|
|
45
|
|
|
|
);
|
2019-07-11 14:27:18 -08:00
|
|
|
assert_eq!(
|
|
|
|
solana_bpf_rust_many_args_dep::many_args_sret(1, 2, 3, 4, 5, 6, 7, 8, 9),
|
|
|
|
solana_bpf_rust_many_args_dep::Ret {
|
|
|
|
group1: 6,
|
|
|
|
group2: 15,
|
|
|
|
group3: 24
|
|
|
|
}
|
|
|
|
);
|
2019-06-12 13:04:53 -07:00
|
|
|
|
2019-09-06 16:05:01 -07:00
|
|
|
SUCCESS
|
2019-06-12 13:04:53 -07:00
|
|
|
}
|
2019-09-18 19:54:10 -07:00
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
mod test {
|
|
|
|
use super::*;
|
|
|
|
// Pulls in the stubs requried for `info!()`
|
|
|
|
solana_sdk_bpf_test::stubs!();
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_entrypoint() {
|
|
|
|
assert_eq!(SUCCESS, entrypoint(std::ptr::null_mut()));
|
|
|
|
}
|
|
|
|
}
|